tools/pcre/testdata/testoutput7
author John Schoenick <john@pointysoftware.net>
Wed Jun 01 20:36:16 2011 -0400 (2011-06-01)
changeset 3292 f428ffc8a3fe
parent 2762 d2d467bf1b5a
child 3831 babd0eee3c5e
permissions -rw-r--r--
Fixed regression in FindEntityByClassname from bug 4899 (bug 4941, r=predcrab).
dvander@2762
     1
/abc/
dvander@2762
     2
    abc
dvander@2762
     3
 0: abc
dvander@2762
     4
    
dvander@2762
     5
/ab*c/
dvander@2762
     6
    abc
dvander@2762
     7
 0: abc
dvander@2762
     8
    abbbbc
dvander@2762
     9
 0: abbbbc
dvander@2762
    10
    ac
dvander@2762
    11
 0: ac
dvander@2762
    12
    
dvander@2762
    13
/ab+c/
dvander@2762
    14
    abc
dvander@2762
    15
 0: abc
dvander@2762
    16
    abbbbbbc
dvander@2762
    17
 0: abbbbbbc
dvander@2762
    18
    *** Failers 
dvander@2762
    19
No match
dvander@2762
    20
    ac
dvander@2762
    21
No match
dvander@2762
    22
    ab
dvander@2762
    23
No match
dvander@2762
    24
    
dvander@2762
    25
/a*/
dvander@2762
    26
    a
dvander@2762
    27
 0: a
dvander@2762
    28
 1: 
dvander@2762
    29
    aaaaaaaaaaaaaaaaa
dvander@2762
    30
 0: aaaaaaaaaaaaaaaaa
dvander@2762
    31
 1: aaaaaaaaaaaaaaaa
dvander@2762
    32
 2: aaaaaaaaaaaaaaa
dvander@2762
    33
 3: aaaaaaaaaaaaaa
dvander@2762
    34
 4: aaaaaaaaaaaaa
dvander@2762
    35
 5: aaaaaaaaaaaa
dvander@2762
    36
 6: aaaaaaaaaaa
dvander@2762
    37
 7: aaaaaaaaaa
dvander@2762
    38
 8: aaaaaaaaa
dvander@2762
    39
 9: aaaaaaaa
dvander@2762
    40
10: aaaaaaa
dvander@2762
    41
11: aaaaaa
dvander@2762
    42
12: aaaaa
dvander@2762
    43
13: aaaa
dvander@2762
    44
14: aaa
dvander@2762
    45
15: aa
dvander@2762
    46
16: a
dvander@2762
    47
17: 
dvander@2762
    48
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
dvander@2762
    49
Matched, but too many subsidiary matches
dvander@2762
    50
 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
dvander@2762
    51
 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
dvander@2762
    52
 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaa
dvander@2762
    53
 3: aaaaaaaaaaaaaaaaaaaaaaaaaaa
dvander@2762
    54
 4: aaaaaaaaaaaaaaaaaaaaaaaaaa
dvander@2762
    55
 5: aaaaaaaaaaaaaaaaaaaaaaaaa
dvander@2762
    56
 6: aaaaaaaaaaaaaaaaaaaaaaaa
dvander@2762
    57
 7: aaaaaaaaaaaaaaaaaaaaaaa
dvander@2762
    58
 8: aaaaaaaaaaaaaaaaaaaaaa
dvander@2762
    59
 9: aaaaaaaaaaaaaaaaaaaaa
dvander@2762
    60
10: aaaaaaaaaaaaaaaaaaaa
dvander@2762
    61
11: aaaaaaaaaaaaaaaaaaa
dvander@2762
    62
12: aaaaaaaaaaaaaaaaaa
dvander@2762
    63
13: aaaaaaaaaaaaaaaaa
dvander@2762
    64
14: aaaaaaaaaaaaaaaa
dvander@2762
    65
15: aaaaaaaaaaaaaaa
dvander@2762
    66
16: aaaaaaaaaaaaaa
dvander@2762
    67
17: aaaaaaaaaaaaa
dvander@2762
    68
18: aaaaaaaaaaaa
dvander@2762
    69
19: aaaaaaaaaaa
dvander@2762
    70
20: aaaaaaaaaa
dvander@2762
    71
21: aaaaaaaaa
dvander@2762
    72
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\F 
dvander@2762
    73
 0: 
dvander@2762
    74
    
dvander@2762
    75
/(a|abcd|african)/
dvander@2762
    76
    a
dvander@2762
    77
 0: a
dvander@2762
    78
    abcd
dvander@2762
    79
 0: abcd
dvander@2762
    80
 1: a
dvander@2762
    81
    african
dvander@2762
    82
 0: african
dvander@2762
    83
 1: a
dvander@2762
    84
    
dvander@2762
    85
/^abc/
dvander@2762
    86
    abcdef
dvander@2762
    87
 0: abc
dvander@2762
    88
    *** Failers
dvander@2762
    89
No match
dvander@2762
    90
    xyzabc
dvander@2762
    91
No match
dvander@2762
    92
    xyz\nabc    
dvander@2762
    93
No match
dvander@2762
    94
    
dvander@2762
    95
/^abc/m
dvander@2762
    96
    abcdef
dvander@2762
    97
 0: abc
dvander@2762
    98
    xyz\nabc    
dvander@2762
    99
 0: abc
dvander@2762
   100
    *** Failers
dvander@2762
   101
No match
dvander@2762
   102
    xyzabc
dvander@2762
   103
No match
dvander@2762
   104
    
dvander@2762
   105
/\Aabc/
dvander@2762
   106
    abcdef
dvander@2762
   107
 0: abc
dvander@2762
   108
    *** Failers
dvander@2762
   109
No match
dvander@2762
   110
    xyzabc
dvander@2762
   111
No match
dvander@2762
   112
    xyz\nabc    
dvander@2762
   113
No match
dvander@2762
   114
    
dvander@2762
   115
/\Aabc/m
dvander@2762
   116
    abcdef
dvander@2762
   117
 0: abc
dvander@2762
   118
    *** Failers
dvander@2762
   119
No match
dvander@2762
   120
    xyzabc
dvander@2762
   121
No match
dvander@2762
   122
    xyz\nabc    
dvander@2762
   123
No match
dvander@2762
   124
    
dvander@2762
   125
/\Gabc/
dvander@2762
   126
    abcdef
dvander@2762
   127
 0: abc
dvander@2762
   128
    xyzabc\>3
dvander@2762
   129
 0: abc
dvander@2762
   130
    *** Failers
dvander@2762
   131
No match
dvander@2762
   132
    xyzabc    
dvander@2762
   133
No match
dvander@2762
   134
    xyzabc\>2 
dvander@2762
   135
No match
dvander@2762
   136
    
dvander@2762
   137
/x\dy\Dz/
dvander@2762
   138
    x9yzz
dvander@2762
   139
 0: x9yzz
dvander@2762
   140
    x0y+z
dvander@2762
   141
 0: x0y+z
dvander@2762
   142
    *** Failers
dvander@2762
   143
No match
dvander@2762
   144
    xyz
dvander@2762
   145
No match
dvander@2762
   146
    xxy0z     
dvander@2762
   147
No match
dvander@2762
   148
    
dvander@2762
   149
/x\sy\Sz/
dvander@2762
   150
    x yzz
dvander@2762
   151
 0: x yzz
dvander@2762
   152
    x y+z
dvander@2762
   153
 0: x y+z
dvander@2762
   154
    *** Failers
dvander@2762
   155
No match
dvander@2762
   156
    xyz
dvander@2762
   157
No match
dvander@2762
   158
    xxyyz
dvander@2762
   159
No match
dvander@2762
   160
    
dvander@2762
   161
/x\wy\Wz/
dvander@2762
   162
    xxy+z
dvander@2762
   163
 0: xxy+z
dvander@2762
   164
    *** Failers
dvander@2762
   165
No match
dvander@2762
   166
    xxy0z
dvander@2762
   167
No match
dvander@2762
   168
    x+y+z         
dvander@2762
   169
No match
dvander@2762
   170
    
dvander@2762
   171
/x.y/
dvander@2762
   172
    x+y
dvander@2762
   173
 0: x+y
dvander@2762
   174
    x-y
dvander@2762
   175
 0: x-y
dvander@2762
   176
    *** Failers
dvander@2762
   177
No match
dvander@2762
   178
    x\ny
dvander@2762
   179
No match
dvander@2762
   180
    
dvander@2762
   181
/x.y/s
dvander@2762
   182
    x+y
dvander@2762
   183
 0: x+y
dvander@2762
   184
    x-y
dvander@2762
   185
 0: x-y
dvander@2762
   186
    x\ny
dvander@2762
   187
 0: x\x0ay
dvander@2762
   188
dvander@2762
   189
/(a.b(?s)c.d|x.y)p.q/
dvander@2762
   190
    a+bc+dp+q
dvander@2762
   191
 0: a+bc+dp+q
dvander@2762
   192
    a+bc\ndp+q
dvander@2762
   193
 0: a+bc\x0adp+q
dvander@2762
   194
    x\nyp+q 
dvander@2762
   195
 0: x\x0ayp+q
dvander@2762
   196
    *** Failers 
dvander@2762
   197
No match
dvander@2762
   198
    a\nbc\ndp+q
dvander@2762
   199
No match
dvander@2762
   200
    a+bc\ndp\nq
dvander@2762
   201
No match
dvander@2762
   202
    x\nyp\nq 
dvander@2762
   203
No match
dvander@2762
   204
dvander@2762
   205
/a\d\z/
dvander@2762
   206
    ba0
dvander@2762
   207
 0: a0
dvander@2762
   208
    *** Failers
dvander@2762
   209
No match
dvander@2762
   210
    ba0\n
dvander@2762
   211
No match
dvander@2762
   212
    ba0\ncd   
dvander@2762
   213
No match
dvander@2762
   214
dvander@2762
   215
/a\d\z/m
dvander@2762
   216
    ba0
dvander@2762
   217
 0: a0
dvander@2762
   218
    *** Failers
dvander@2762
   219
No match
dvander@2762
   220
    ba0\n
dvander@2762
   221
No match
dvander@2762
   222
    ba0\ncd   
dvander@2762
   223
No match
dvander@2762
   224
dvander@2762
   225
/a\d\Z/
dvander@2762
   226
    ba0
dvander@2762
   227
 0: a0
dvander@2762
   228
    ba0\n
dvander@2762
   229
 0: a0
dvander@2762
   230
    *** Failers
dvander@2762
   231
No match
dvander@2762
   232
    ba0\ncd   
dvander@2762
   233
No match
dvander@2762
   234
dvander@2762
   235
/a\d\Z/m
dvander@2762
   236
    ba0
dvander@2762
   237
 0: a0
dvander@2762
   238
    ba0\n
dvander@2762
   239
 0: a0
dvander@2762
   240
    *** Failers
dvander@2762
   241
No match
dvander@2762
   242
    ba0\ncd   
dvander@2762
   243
No match
dvander@2762
   244
dvander@2762
   245
/a\d$/
dvander@2762
   246
    ba0
dvander@2762
   247
 0: a0
dvander@2762
   248
    ba0\n
dvander@2762
   249
 0: a0
dvander@2762
   250
    *** Failers
dvander@2762
   251
No match
dvander@2762
   252
    ba0\ncd   
dvander@2762
   253
No match
dvander@2762
   254
dvander@2762
   255
/a\d$/m
dvander@2762
   256
    ba0
dvander@2762
   257
 0: a0
dvander@2762
   258
    ba0\n
dvander@2762
   259
 0: a0
dvander@2762
   260
    ba0\ncd   
dvander@2762
   261
 0: a0
dvander@2762
   262
    *** Failers
dvander@2762
   263
No match
dvander@2762
   264
dvander@2762
   265
/abc/i
dvander@2762
   266
    abc
dvander@2762
   267
 0: abc
dvander@2762
   268
    aBc
dvander@2762
   269
 0: aBc
dvander@2762
   270
    ABC
dvander@2762
   271
 0: ABC
dvander@2762
   272
    
dvander@2762
   273
/[^a]/
dvander@2762
   274
    abcd
dvander@2762
   275
 0: b
dvander@2762
   276
    
dvander@2762
   277
/ab?\w/
dvander@2762
   278
    abz
dvander@2762
   279
 0: abz
dvander@2762
   280
 1: ab
dvander@2762
   281
    abbz
dvander@2762
   282
 0: abb
dvander@2762
   283
 1: ab
dvander@2762
   284
    azz  
dvander@2762
   285
 0: az
dvander@2762
   286
dvander@2762
   287
/x{0,3}yz/
dvander@2762
   288
    ayzq
dvander@2762
   289
 0: yz
dvander@2762
   290
    axyzq
dvander@2762
   291
 0: xyz
dvander@2762
   292
    axxyz
dvander@2762
   293
 0: xxyz
dvander@2762
   294
    axxxyzq
dvander@2762
   295
 0: xxxyz
dvander@2762
   296
    axxxxyzq
dvander@2762
   297
 0: xxxyz
dvander@2762
   298
    *** Failers
dvander@2762
   299
No match
dvander@2762
   300
    ax
dvander@2762
   301
No match
dvander@2762
   302
    axx     
dvander@2762
   303
No match
dvander@2762
   304
      
dvander@2762
   305
/x{3}yz/
dvander@2762
   306
    axxxyzq
dvander@2762
   307
 0: xxxyz
dvander@2762
   308
    axxxxyzq
dvander@2762
   309
 0: xxxyz
dvander@2762
   310
    *** Failers
dvander@2762
   311
No match
dvander@2762
   312
    ax
dvander@2762
   313
No match
dvander@2762
   314
    axx     
dvander@2762
   315
No match
dvander@2762
   316
    ayzq
dvander@2762
   317
No match
dvander@2762
   318
    axyzq
dvander@2762
   319
No match
dvander@2762
   320
    axxyz
dvander@2762
   321
No match
dvander@2762
   322
      
dvander@2762
   323
/x{2,3}yz/
dvander@2762
   324
    axxyz
dvander@2762
   325
 0: xxyz
dvander@2762
   326
    axxxyzq
dvander@2762
   327
 0: xxxyz
dvander@2762
   328
    axxxxyzq
dvander@2762
   329
 0: xxxyz
dvander@2762
   330
    *** Failers
dvander@2762
   331
No match
dvander@2762
   332
    ax
dvander@2762
   333
No match
dvander@2762
   334
    axx     
dvander@2762
   335
No match
dvander@2762
   336
    ayzq
dvander@2762
   337
No match
dvander@2762
   338
    axyzq
dvander@2762
   339
No match
dvander@2762
   340
      
dvander@2762
   341
/[^a]+/
dvander@2762
   342
    bac
dvander@2762
   343
 0: b
dvander@2762
   344
    bcdefax
dvander@2762
   345
 0: bcdef
dvander@2762
   346
 1: bcde
dvander@2762
   347
 2: bcd
dvander@2762
   348
 3: bc
dvander@2762
   349
 4: b
dvander@2762
   350
    *** Failers
dvander@2762
   351
 0: *** F
dvander@2762
   352
 1: *** 
dvander@2762
   353
 2: ***
dvander@2762
   354
 3: **
dvander@2762
   355
 4: *
dvander@2762
   356
    aaaaa   
dvander@2762
   357
No match
dvander@2762
   358
dvander@2762
   359
/[^a]*/
dvander@2762
   360
    bac
dvander@2762
   361
 0: b
dvander@2762
   362
 1: 
dvander@2762
   363
    bcdefax
dvander@2762
   364
 0: bcdef
dvander@2762
   365
 1: bcde
dvander@2762
   366
 2: bcd
dvander@2762
   367
 3: bc
dvander@2762
   368
 4: b
dvander@2762
   369
 5: 
dvander@2762
   370
    *** Failers
dvander@2762
   371
 0: *** F
dvander@2762
   372
 1: *** 
dvander@2762
   373
 2: ***
dvander@2762
   374
 3: **
dvander@2762
   375
 4: *
dvander@2762
   376
 5: 
dvander@2762
   377
    aaaaa   
dvander@2762
   378
 0: 
dvander@2762
   379
    
dvander@2762
   380
/[^a]{3,5}/
dvander@2762
   381
    xyz
dvander@2762
   382
 0: xyz
dvander@2762
   383
    awxyza
dvander@2762
   384
 0: wxyz
dvander@2762
   385
 1: wxy
dvander@2762
   386
    abcdefa
dvander@2762
   387
 0: bcdef
dvander@2762
   388
 1: bcde
dvander@2762
   389
 2: bcd
dvander@2762
   390
    abcdefghijk
dvander@2762
   391
 0: bcdef
dvander@2762
   392
 1: bcde
dvander@2762
   393
 2: bcd
dvander@2762
   394
    *** Failers
dvander@2762
   395
 0: *** F
dvander@2762
   396
 1: *** 
dvander@2762
   397
 2: ***
dvander@2762
   398
    axya
dvander@2762
   399
No match
dvander@2762
   400
    axa
dvander@2762
   401
No match
dvander@2762
   402
    aaaaa         
dvander@2762
   403
No match
dvander@2762
   404
dvander@2762
   405
/\d*/
dvander@2762
   406
    1234b567
dvander@2762
   407
 0: 1234
dvander@2762
   408
 1: 123
dvander@2762
   409
 2: 12
dvander@2762
   410
 3: 1
dvander@2762
   411
 4: 
dvander@2762
   412
    xyz
dvander@2762
   413
 0: 
dvander@2762
   414
    
dvander@2762
   415
/\D*/
dvander@2762
   416
    a1234b567
dvander@2762
   417
 0: a
dvander@2762
   418
 1: 
dvander@2762
   419
    xyz
dvander@2762
   420
 0: xyz
dvander@2762
   421
 1: xy
dvander@2762
   422
 2: x
dvander@2762
   423
 3: 
dvander@2762
   424
     
dvander@2762
   425
/\d+/
dvander@2762
   426
    ab1234c56
dvander@2762
   427
 0: 1234
dvander@2762
   428
 1: 123
dvander@2762
   429
 2: 12
dvander@2762
   430
 3: 1
dvander@2762
   431
    *** Failers
dvander@2762
   432
No match
dvander@2762
   433
    xyz
dvander@2762
   434
No match
dvander@2762
   435
    
dvander@2762
   436
/\D+/
dvander@2762
   437
    ab123c56
dvander@2762
   438
 0: ab
dvander@2762
   439
 1: a
dvander@2762
   440
    *** Failers
dvander@2762
   441
 0: *** Failers
dvander@2762
   442
 1: *** Failer
dvander@2762
   443
 2: *** Faile
dvander@2762
   444
 3: *** Fail
dvander@2762
   445
 4: *** Fai
dvander@2762
   446
 5: *** Fa
dvander@2762
   447
 6: *** F
dvander@2762
   448
 7: *** 
dvander@2762
   449
 8: ***
dvander@2762
   450
 9: **
dvander@2762
   451
10: *
dvander@2762
   452
    789
dvander@2762
   453
No match
dvander@2762
   454
    
dvander@2762
   455
/\d?A/
dvander@2762
   456
    045ABC
dvander@2762
   457
 0: 5A
dvander@2762
   458
    ABC
dvander@2762
   459
 0: A
dvander@2762
   460
    *** Failers
dvander@2762
   461
No match
dvander@2762
   462
    XYZ
dvander@2762
   463
No match
dvander@2762
   464
    
dvander@2762
   465
/\D?A/
dvander@2762
   466
    ABC
dvander@2762
   467
 0: A
dvander@2762
   468
    BAC
dvander@2762
   469
 0: BA
dvander@2762
   470
    9ABC             
dvander@2762
   471
 0: A
dvander@2762
   472
    *** Failers
dvander@2762
   473
No match
dvander@2762
   474
dvander@2762
   475
/a+/
dvander@2762
   476
    aaaa
dvander@2762
   477
 0: aaaa
dvander@2762
   478
 1: aaa
dvander@2762
   479
 2: aa
dvander@2762
   480
 3: a
dvander@2762
   481
dvander@2762
   482
/^.*xyz/
dvander@2762
   483
    xyz
dvander@2762
   484
 0: xyz
dvander@2762
   485
    ggggggggxyz
dvander@2762
   486
 0: ggggggggxyz
dvander@2762
   487
    
dvander@2762
   488
/^.+xyz/
dvander@2762
   489
    abcdxyz
dvander@2762
   490
 0: abcdxyz
dvander@2762
   491
    axyz
dvander@2762
   492
 0: axyz
dvander@2762
   493
    *** Failers
dvander@2762
   494
No match
dvander@2762
   495
    xyz
dvander@2762
   496
No match
dvander@2762
   497
    
dvander@2762
   498
/^.?xyz/
dvander@2762
   499
    xyz
dvander@2762
   500
 0: xyz
dvander@2762
   501
    cxyz       
dvander@2762
   502
 0: cxyz
dvander@2762
   503
dvander@2762
   504
/^\d{2,3}X/
dvander@2762
   505
    12X
dvander@2762
   506
 0: 12X
dvander@2762
   507
    123X
dvander@2762
   508
 0: 123X
dvander@2762
   509
    *** Failers
dvander@2762
   510
No match
dvander@2762
   511
    X
dvander@2762
   512
No match
dvander@2762
   513
    1X
dvander@2762
   514
No match
dvander@2762
   515
    1234X     
dvander@2762
   516
No match
dvander@2762
   517
dvander@2762
   518
/^[abcd]\d/
dvander@2762
   519
    a45
dvander@2762
   520
 0: a4
dvander@2762
   521
    b93
dvander@2762
   522
 0: b9
dvander@2762
   523
    c99z
dvander@2762
   524
 0: c9
dvander@2762
   525
    d04
dvander@2762
   526
 0: d0
dvander@2762
   527
    *** Failers
dvander@2762
   528
No match
dvander@2762
   529
    e45
dvander@2762
   530
No match
dvander@2762
   531
    abcd      
dvander@2762
   532
No match
dvander@2762
   533
    abcd1234
dvander@2762
   534
No match
dvander@2762
   535
    1234  
dvander@2762
   536
No match
dvander@2762
   537
dvander@2762
   538
/^[abcd]*\d/
dvander@2762
   539
    a45
dvander@2762
   540
 0: a4
dvander@2762
   541
    b93
dvander@2762
   542
 0: b9
dvander@2762
   543
    c99z
dvander@2762
   544
 0: c9
dvander@2762
   545
    d04
dvander@2762
   546
 0: d0
dvander@2762
   547
    abcd1234
dvander@2762
   548
 0: abcd1
dvander@2762
   549
    1234  
dvander@2762
   550
 0: 1
dvander@2762
   551
    *** Failers
dvander@2762
   552
No match
dvander@2762
   553
    e45
dvander@2762
   554
No match
dvander@2762
   555
    abcd      
dvander@2762
   556
No match
dvander@2762
   557
dvander@2762
   558
/^[abcd]+\d/
dvander@2762
   559
    a45
dvander@2762
   560
 0: a4
dvander@2762
   561
    b93
dvander@2762
   562
 0: b9
dvander@2762
   563
    c99z
dvander@2762
   564
 0: c9
dvander@2762
   565
    d04
dvander@2762
   566
 0: d0
dvander@2762
   567
    abcd1234
dvander@2762
   568
 0: abcd1
dvander@2762
   569
    *** Failers
dvander@2762
   570
No match
dvander@2762
   571
    1234  
dvander@2762
   572
No match
dvander@2762
   573
    e45
dvander@2762
   574
No match
dvander@2762
   575
    abcd      
dvander@2762
   576
No match
dvander@2762
   577
dvander@2762
   578
/^a+X/
dvander@2762
   579
    aX
dvander@2762
   580
 0: aX
dvander@2762
   581
    aaX 
dvander@2762
   582
 0: aaX
dvander@2762
   583
dvander@2762
   584
/^[abcd]?\d/
dvander@2762
   585
    a45
dvander@2762
   586
 0: a4
dvander@2762
   587
    b93
dvander@2762
   588
 0: b9
dvander@2762
   589
    c99z
dvander@2762
   590
 0: c9
dvander@2762
   591
    d04
dvander@2762
   592
 0: d0
dvander@2762
   593
    1234  
dvander@2762
   594
 0: 1
dvander@2762
   595
    *** Failers
dvander@2762
   596
No match
dvander@2762
   597
    abcd1234
dvander@2762
   598
No match
dvander@2762
   599
    e45
dvander@2762
   600
No match
dvander@2762
   601
dvander@2762
   602
/^[abcd]{2,3}\d/
dvander@2762
   603
    ab45
dvander@2762
   604
 0: ab4
dvander@2762
   605
    bcd93
dvander@2762
   606
 0: bcd9
dvander@2762
   607
    *** Failers
dvander@2762
   608
No match
dvander@2762
   609
    1234 
dvander@2762
   610
No match
dvander@2762
   611
    a36 
dvander@2762
   612
No match
dvander@2762
   613
    abcd1234
dvander@2762
   614
No match
dvander@2762
   615
    ee45
dvander@2762
   616
No match
dvander@2762
   617
dvander@2762
   618
/^(abc)*\d/
dvander@2762
   619
    abc45
dvander@2762
   620
 0: abc4
dvander@2762
   621
    abcabcabc45
dvander@2762
   622
 0: abcabcabc4
dvander@2762
   623
    42xyz 
dvander@2762
   624
 0: 4
dvander@2762
   625
    *** Failers
dvander@2762
   626
No match
dvander@2762
   627
dvander@2762
   628
/^(abc)+\d/
dvander@2762
   629
    abc45
dvander@2762
   630
 0: abc4
dvander@2762
   631
    abcabcabc45
dvander@2762
   632
 0: abcabcabc4
dvander@2762
   633
    *** Failers
dvander@2762
   634
No match
dvander@2762
   635
    42xyz 
dvander@2762
   636
No match
dvander@2762
   637
dvander@2762
   638
/^(abc)?\d/
dvander@2762
   639
    abc45
dvander@2762
   640
 0: abc4
dvander@2762
   641
    42xyz 
dvander@2762
   642
 0: 4
dvander@2762
   643
    *** Failers
dvander@2762
   644
No match
dvander@2762
   645
    abcabcabc45
dvander@2762
   646
No match
dvander@2762
   647
dvander@2762
   648
/^(abc){2,3}\d/
dvander@2762
   649
    abcabc45
dvander@2762
   650
 0: abcabc4
dvander@2762
   651
    abcabcabc45
dvander@2762
   652
 0: abcabcabc4
dvander@2762
   653
    *** Failers
dvander@2762
   654
No match
dvander@2762
   655
    abcabcabcabc45
dvander@2762
   656
No match
dvander@2762
   657
    abc45
dvander@2762
   658
No match
dvander@2762
   659
    42xyz 
dvander@2762
   660
No match
dvander@2762
   661
dvander@2762
   662
/1(abc|xyz)2(?1)3/
dvander@2762
   663
    1abc2abc3456
dvander@2762
   664
 0: 1abc2abc3
dvander@2762
   665
    1abc2xyz3456 
dvander@2762
   666
 0: 1abc2xyz3
dvander@2762
   667
dvander@2762
   668
/^(a*\w|ab)=(a*\w|ab)/
dvander@2762
   669
    ab=ab
dvander@2762
   670
 0: ab=ab
dvander@2762
   671
 1: ab=a
dvander@2762
   672
dvander@2762
   673
/^(a*\w|ab)=(?1)/
dvander@2762
   674
    ab=ab
dvander@2762
   675
 0: ab=ab
dvander@2762
   676
dvander@2762
   677
/^([^()]|\((?1)*\))*$/
dvander@2762
   678
    abc
dvander@2762
   679
 0: abc
dvander@2762
   680
    a(b)c
dvander@2762
   681
 0: a(b)c
dvander@2762
   682
    a(b(c))d  
dvander@2762
   683
 0: a(b(c))d
dvander@2762
   684
    *** Failers)
dvander@2762
   685
No match
dvander@2762
   686
    a(b(c)d  
dvander@2762
   687
No match
dvander@2762
   688
dvander@2762
   689
/^>abc>([^()]|\((?1)*\))*<xyz<$/
dvander@2762
   690
    >abc>123<xyz<
dvander@2762
   691
 0: >abc>123<xyz<
dvander@2762
   692
    >abc>1(2)3<xyz<
dvander@2762
   693
 0: >abc>1(2)3<xyz<
dvander@2762
   694
    >abc>(1(2)3)<xyz<
dvander@2762
   695
 0: >abc>(1(2)3)<xyz<
dvander@2762
   696
dvander@2762
   697
/^(?>a*)\d/
dvander@2762
   698
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876
dvander@2762
   699
 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9
dvander@2762
   700
    *** Failers 
dvander@2762
   701
No match
dvander@2762
   702
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
dvander@2762
   703
No match
dvander@2762
   704
dvander@2762
   705
/< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x
dvander@2762
   706
    <>
dvander@2762
   707
 0: <>
dvander@2762
   708
    <abcd>
dvander@2762
   709
 0: <abcd>
dvander@2762
   710
    <abc <123> hij>
dvander@2762
   711
 0: <abc <123> hij>
dvander@2762
   712
    <abc <def> hij>
dvander@2762
   713
 0: <def>
dvander@2762
   714
    <abc<>def> 
dvander@2762
   715
 0: <abc<>def>
dvander@2762
   716
    <abc<>      
dvander@2762
   717
 0: <>
dvander@2762
   718
    *** Failers
dvander@2762
   719
No match
dvander@2762
   720
    <abc
dvander@2762
   721
No match
dvander@2762
   722
dvander@2762
   723
/^(?(?=abc)\w{3}:|\d\d)$/        
dvander@2762
   724
    abc:                          
dvander@2762
   725
 0: abc:
dvander@2762
   726
    12                             
dvander@2762
   727
 0: 12
dvander@2762
   728
    *** Failers                     
dvander@2762
   729
No match
dvander@2762
   730
    123                       
dvander@2762
   731
No match
dvander@2762
   732
    xyz                        
dvander@2762
   733
No match
dvander@2762
   734
                                
dvander@2762
   735
/^(?(?!abc)\d\d|\w{3}:)$/      
dvander@2762
   736
    abc:                        
dvander@2762
   737
 0: abc:
dvander@2762
   738
    12         
dvander@2762
   739
 0: 12
dvander@2762
   740
    *** Failers
dvander@2762
   741
No match
dvander@2762
   742
    123
dvander@2762
   743
No match
dvander@2762
   744
    xyz    
dvander@2762
   745
No match
dvander@2762
   746
dvander@2762
   747
/^(?=abc)\w{5}:$/        
dvander@2762
   748
    abcde:                          
dvander@2762
   749
 0: abcde:
dvander@2762
   750
    *** Failers                     
dvander@2762
   751
No match
dvander@2762
   752
    abc.. 
dvander@2762
   753
No match
dvander@2762
   754
    123                       
dvander@2762
   755
No match
dvander@2762
   756
    vwxyz                        
dvander@2762
   757
No match
dvander@2762
   758
                                
dvander@2762
   759
/^(?!abc)\d\d$/      
dvander@2762
   760
    12         
dvander@2762
   761
 0: 12
dvander@2762
   762
    *** Failers
dvander@2762
   763
No match
dvander@2762
   764
    abcde:
dvander@2762
   765
No match
dvander@2762
   766
    abc..  
dvander@2762
   767
No match
dvander@2762
   768
    123
dvander@2762
   769
No match
dvander@2762
   770
    vwxyz    
dvander@2762
   771
No match
dvander@2762
   772
dvander@2762
   773
/(?<=abc|xy)123/
dvander@2762
   774
    abc12345
dvander@2762
   775
 0: 123
dvander@2762
   776
    wxy123z
dvander@2762
   777
 0: 123
dvander@2762
   778
    *** Failers
dvander@2762
   779
No match
dvander@2762
   780
    123abc
dvander@2762
   781
No match
dvander@2762
   782
dvander@2762
   783
/(?<!abc|xy)123/
dvander@2762
   784
    123abc
dvander@2762
   785
 0: 123
dvander@2762
   786
    mno123456 
dvander@2762
   787
 0: 123
dvander@2762
   788
    *** Failers
dvander@2762
   789
No match
dvander@2762
   790
    abc12345
dvander@2762
   791
No match
dvander@2762
   792
    wxy123z
dvander@2762
   793
No match
dvander@2762
   794
dvander@2762
   795
/abc(?C1)xyz/
dvander@2762
   796
    abcxyz
dvander@2762
   797
--->abcxyz
dvander@2762
   798
  1 ^  ^       x
dvander@2762
   799
 0: abcxyz
dvander@2762
   800
    123abcxyz999 
dvander@2762
   801
--->123abcxyz999
dvander@2762
   802
  1    ^  ^          x
dvander@2762
   803
 0: abcxyz
dvander@2762
   804
dvander@2762
   805
/(ab|cd){3,4}/C
dvander@2762
   806
  ababab
dvander@2762
   807
--->ababab
dvander@2762
   808
 +0 ^          (ab|cd){3,4}
dvander@2762
   809
 +1 ^          a
dvander@2762
   810
 +4 ^          c
dvander@2762
   811
 +2 ^^         b
dvander@2762
   812
 +3 ^ ^        |
dvander@2762
   813
 +1 ^ ^        a
dvander@2762
   814
 +4 ^ ^        c
dvander@2762
   815
 +2 ^  ^       b
dvander@2762
   816
 +3 ^   ^      |
dvander@2762
   817
 +1 ^   ^      a
dvander@2762
   818
 +4 ^   ^      c
dvander@2762
   819
 +2 ^    ^     b
dvander@2762
   820
 +3 ^     ^    |
dvander@2762
   821
+12 ^     ^    
dvander@2762
   822
 +1 ^     ^    a
dvander@2762
   823
 +4 ^     ^    c
dvander@2762
   824
 0: ababab
dvander@2762
   825
  abcdabcd
dvander@2762
   826
--->abcdabcd
dvander@2762
   827
 +0 ^            (ab|cd){3,4}
dvander@2762
   828
 +1 ^            a
dvander@2762
   829
 +4 ^            c
dvander@2762
   830
 +2 ^^           b
dvander@2762
   831
 +3 ^ ^          |
dvander@2762
   832
 +1 ^ ^          a
dvander@2762
   833
 +4 ^ ^          c
dvander@2762
   834
 +5 ^  ^         d
dvander@2762
   835
 +6 ^   ^        )
dvander@2762
   836
 +1 ^   ^        a
dvander@2762
   837
 +4 ^   ^        c
dvander@2762
   838
 +2 ^    ^       b
dvander@2762
   839
 +3 ^     ^      |
dvander@2762
   840
+12 ^     ^      
dvander@2762
   841
 +1 ^     ^      a
dvander@2762
   842
 +4 ^     ^      c
dvander@2762
   843
 +5 ^      ^     d
dvander@2762
   844
 +6 ^       ^    )
dvander@2762
   845
+12 ^       ^    
dvander@2762
   846
 0: abcdabcd
dvander@2762
   847
 1: abcdab
dvander@2762
   848
  abcdcdcdcdcd  
dvander@2762
   849
--->abcdcdcdcdcd
dvander@2762
   850
 +0 ^                (ab|cd){3,4}
dvander@2762
   851
 +1 ^                a
dvander@2762
   852
 +4 ^                c
dvander@2762
   853
 +2 ^^               b
dvander@2762
   854
 +3 ^ ^              |
dvander@2762
   855
 +1 ^ ^              a
dvander@2762
   856
 +4 ^ ^              c
dvander@2762
   857
 +5 ^  ^             d
dvander@2762
   858
 +6 ^   ^            )
dvander@2762
   859
 +1 ^   ^            a
dvander@2762
   860
 +4 ^   ^            c
dvander@2762
   861
 +5 ^    ^           d
dvander@2762
   862
 +6 ^     ^          )
dvander@2762
   863
+12 ^     ^          
dvander@2762
   864
 +1 ^     ^          a
dvander@2762
   865
 +4 ^     ^          c
dvander@2762
   866
 +5 ^      ^         d
dvander@2762
   867
 +6 ^       ^        )
dvander@2762
   868
+12 ^       ^        
dvander@2762
   869
 0: abcdcdcd
dvander@2762
   870
 1: abcdcd
dvander@2762
   871
dvander@2762
   872
/^abc/
dvander@2762
   873
    abcdef
dvander@2762
   874
 0: abc
dvander@2762
   875
    *** Failers
dvander@2762
   876
No match
dvander@2762
   877
    abcdef\B  
dvander@2762
   878
No match
dvander@2762
   879
dvander@2762
   880
/^(a*|xyz)/
dvander@2762
   881
    bcd
dvander@2762
   882
 0: 
dvander@2762
   883
    aaabcd
dvander@2762
   884
 0: aaa
dvander@2762
   885
 1: aa
dvander@2762
   886
 2: a
dvander@2762
   887
 3: 
dvander@2762
   888
    xyz
dvander@2762
   889
 0: xyz
dvander@2762
   890
 1: 
dvander@2762
   891
    xyz\N  
dvander@2762
   892
 0: xyz
dvander@2762
   893
    *** Failers
dvander@2762
   894
 0: 
dvander@2762
   895
    bcd\N   
dvander@2762
   896
No match
dvander@2762
   897
    
dvander@2762
   898
/xyz$/
dvander@2762
   899
    xyz
dvander@2762
   900
 0: xyz
dvander@2762
   901
    xyz\n
dvander@2762
   902
 0: xyz
dvander@2762
   903
    *** Failers
dvander@2762
   904
No match
dvander@2762
   905
    xyz\Z
dvander@2762
   906
No match
dvander@2762
   907
    xyz\n\Z    
dvander@2762
   908
No match
dvander@2762
   909
    
dvander@2762
   910
/xyz$/m
dvander@2762
   911
    xyz
dvander@2762
   912
 0: xyz
dvander@2762
   913
    xyz\n 
dvander@2762
   914
 0: xyz
dvander@2762
   915
    abcxyz\npqr 
dvander@2762
   916
 0: xyz
dvander@2762
   917
    abcxyz\npqr\Z 
dvander@2762
   918
 0: xyz
dvander@2762
   919
    xyz\n\Z    
dvander@2762
   920
 0: xyz
dvander@2762
   921
    *** Failers
dvander@2762
   922
No match
dvander@2762
   923
    xyz\Z
dvander@2762
   924
No match
dvander@2762
   925
dvander@2762
   926
/\Gabc/
dvander@2762
   927
    abcdef
dvander@2762
   928
 0: abc
dvander@2762
   929
    defabcxyz\>3 
dvander@2762
   930
 0: abc
dvander@2762
   931
    *** Failers 
dvander@2762
   932
No match
dvander@2762
   933
    defabcxyz
dvander@2762
   934
No match
dvander@2762
   935
dvander@2762
   936
/^abcdef/
dvander@2762
   937
    ab\P
dvander@2762
   938
Partial match: ab
dvander@2762
   939
    abcde\P
dvander@2762
   940
Partial match: abcde
dvander@2762
   941
    abcdef\P
dvander@2762
   942
 0: abcdef
dvander@2762
   943
    *** Failers
dvander@2762
   944
No match
dvander@2762
   945
    abx\P    
dvander@2762
   946
No match
dvander@2762
   947
dvander@2762
   948
/^a{2,4}\d+z/
dvander@2762
   949
    a\P
dvander@2762
   950
Partial match: a
dvander@2762
   951
    aa\P
dvander@2762
   952
Partial match: aa
dvander@2762
   953
    aa2\P 
dvander@2762
   954
Partial match: aa2
dvander@2762
   955
    aaa\P
dvander@2762
   956
Partial match: aaa
dvander@2762
   957
    aaa23\P 
dvander@2762
   958
Partial match: aaa23
dvander@2762
   959
    aaaa12345\P
dvander@2762
   960
Partial match: aaaa12345
dvander@2762
   961
    aa0z\P
dvander@2762
   962
 0: aa0z
dvander@2762
   963
    aaaa4444444444444z\P 
dvander@2762
   964
 0: aaaa4444444444444z
dvander@2762
   965
    *** Failers
dvander@2762
   966
No match
dvander@2762
   967
    az\P 
dvander@2762
   968
No match
dvander@2762
   969
    aaaaa\P 
dvander@2762
   970
No match
dvander@2762
   971
    a56\P 
dvander@2762
   972
No match
dvander@2762
   973
dvander@2762
   974
/^abcdef/
dvander@2762
   975
   abc\P
dvander@2762
   976
Partial match: abc
dvander@2762
   977
   def\R 
dvander@2762
   978
 0: def
dvander@2762
   979
   
dvander@2762
   980
/(?<=foo)bar/
dvander@2762
   981
   xyzfo\P 
dvander@2762
   982
No match
dvander@2762
   983
   foob\P\>2 
dvander@2762
   984
Partial match: b
dvander@2762
   985
   foobar...\R\P\>4 
dvander@2762
   986
 0: ar
dvander@2762
   987
   xyzfo\P
dvander@2762
   988
No match
dvander@2762
   989
   foobar\>2  
dvander@2762
   990
 0: bar
dvander@2762
   991
   *** Failers
dvander@2762
   992
No match
dvander@2762
   993
   xyzfo\P
dvander@2762
   994
No match
dvander@2762
   995
   obar\R   
dvander@2762
   996
No match
dvander@2762
   997
dvander@2762
   998
/(ab*(cd|ef))+X/
dvander@2762
   999
    adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\P\Z
dvander@2762
  1000
No match
dvander@2762
  1001
    lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\P\B\Z
dvander@2762
  1002
Partial match: abbbbbbcdaefabbbbbbbefa
dvander@2762
  1003
    cdabbbbbbbb\P\R\B\Z
dvander@2762
  1004
Partial match: cdabbbbbbbb
dvander@2762
  1005
    efabbbbbbbbbbbbbbbb\P\R\B\Z
dvander@2762
  1006
Partial match: efabbbbbbbbbbbbbbbb
dvander@2762
  1007
    bbbbbbbbbbbbcdXyasdfadf\P\R\B\Z    
dvander@2762
  1008
 0: bbbbbbbbbbbbcdX
dvander@2762
  1009
dvander@2762
  1010
/(a|b)/SF>testsavedregex
dvander@2762
  1011
Compiled regex written to testsavedregex
dvander@2762
  1012
Study data written to testsavedregex
dvander@2762
  1013
<testsavedregex
dvander@2762
  1014
Compiled regex (byte-inverted) loaded from testsavedregex
dvander@2762
  1015
Study data loaded from testsavedregex
dvander@2762
  1016
    abc
dvander@2762
  1017
 0: a
dvander@2762
  1018
    ** Failers
dvander@2762
  1019
 0: a
dvander@2762
  1020
    def  
dvander@2762
  1021
No match
dvander@2762
  1022
    
dvander@2762
  1023
/the quick brown fox/
dvander@2762
  1024
    the quick brown fox
dvander@2762
  1025
 0: the quick brown fox
dvander@2762
  1026
    The quick brown FOX
dvander@2762
  1027
No match
dvander@2762
  1028
    What do you know about the quick brown fox?
dvander@2762
  1029
 0: the quick brown fox
dvander@2762
  1030
    What do you know about THE QUICK BROWN FOX?
dvander@2762
  1031
No match
dvander@2762
  1032
dvander@2762
  1033
/The quick brown fox/i
dvander@2762
  1034
    the quick brown fox
dvander@2762
  1035
 0: the quick brown fox
dvander@2762
  1036
    The quick brown FOX
dvander@2762
  1037
 0: The quick brown FOX
dvander@2762
  1038
    What do you know about the quick brown fox?
dvander@2762
  1039
 0: the quick brown fox
dvander@2762
  1040
    What do you know about THE QUICK BROWN FOX?
dvander@2762
  1041
 0: THE QUICK BROWN FOX
dvander@2762
  1042
dvander@2762
  1043
/abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
dvander@2762
  1044
    abcd\t\n\r\f\a\e9;\$\\?caxyz
dvander@2762
  1045
 0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz
dvander@2762
  1046
dvander@2762
  1047
/a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
dvander@2762
  1048
    abxyzpqrrrabbxyyyypqAzz
dvander@2762
  1049
 0: abxyzpqrrrabbxyyyypqAzz
dvander@2762
  1050
    abxyzpqrrrabbxyyyypqAzz
dvander@2762
  1051
 0: abxyzpqrrrabbxyyyypqAzz
dvander@2762
  1052
    aabxyzpqrrrabbxyyyypqAzz
dvander@2762
  1053
 0: aabxyzpqrrrabbxyyyypqAzz
dvander@2762
  1054
    aaabxyzpqrrrabbxyyyypqAzz
dvander@2762
  1055
 0: aaabxyzpqrrrabbxyyyypqAzz
dvander@2762
  1056
    aaaabxyzpqrrrabbxyyyypqAzz
dvander@2762
  1057
 0: aaaabxyzpqrrrabbxyyyypqAzz
dvander@2762
  1058
    abcxyzpqrrrabbxyyyypqAzz
dvander@2762
  1059
 0: abcxyzpqrrrabbxyyyypqAzz
dvander@2762
  1060
    aabcxyzpqrrrabbxyyyypqAzz
dvander@2762
  1061
 0: aabcxyzpqrrrabbxyyyypqAzz
dvander@2762
  1062
    aaabcxyzpqrrrabbxyyyypAzz
dvander@2762
  1063
 0: aaabcxyzpqrrrabbxyyyypAzz
dvander@2762
  1064
    aaabcxyzpqrrrabbxyyyypqAzz
dvander@2762
  1065
 0: aaabcxyzpqrrrabbxyyyypqAzz
dvander@2762
  1066
    aaabcxyzpqrrrabbxyyyypqqAzz
dvander@2762
  1067
 0: aaabcxyzpqrrrabbxyyyypqqAzz
dvander@2762
  1068
    aaabcxyzpqrrrabbxyyyypqqqAzz
dvander@2762
  1069
 0: aaabcxyzpqrrrabbxyyyypqqqAzz
dvander@2762
  1070
    aaabcxyzpqrrrabbxyyyypqqqqAzz
dvander@2762
  1071
 0: aaabcxyzpqrrrabbxyyyypqqqqAzz
dvander@2762
  1072
    aaabcxyzpqrrrabbxyyyypqqqqqAzz
dvander@2762
  1073
 0: aaabcxyzpqrrrabbxyyyypqqqqqAzz
dvander@2762
  1074
    aaabcxyzpqrrrabbxyyyypqqqqqqAzz
dvander@2762
  1075
 0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz
dvander@2762
  1076
    aaaabcxyzpqrrrabbxyyyypqAzz
dvander@2762
  1077
 0: aaaabcxyzpqrrrabbxyyyypqAzz
dvander@2762
  1078
    abxyzzpqrrrabbxyyyypqAzz
dvander@2762
  1079
 0: abxyzzpqrrrabbxyyyypqAzz
dvander@2762
  1080
    aabxyzzzpqrrrabbxyyyypqAzz
dvander@2762
  1081
 0: aabxyzzzpqrrrabbxyyyypqAzz
dvander@2762
  1082
    aaabxyzzzzpqrrrabbxyyyypqAzz
dvander@2762
  1083
 0: aaabxyzzzzpqrrrabbxyyyypqAzz
dvander@2762
  1084
    aaaabxyzzzzpqrrrabbxyyyypqAzz
dvander@2762
  1085
 0: aaaabxyzzzzpqrrrabbxyyyypqAzz
dvander@2762
  1086
    abcxyzzpqrrrabbxyyyypqAzz
dvander@2762
  1087
 0: abcxyzzpqrrrabbxyyyypqAzz
dvander@2762
  1088
    aabcxyzzzpqrrrabbxyyyypqAzz
dvander@2762
  1089
 0: aabcxyzzzpqrrrabbxyyyypqAzz
dvander@2762
  1090
    aaabcxyzzzzpqrrrabbxyyyypqAzz
dvander@2762
  1091
 0: aaabcxyzzzzpqrrrabbxyyyypqAzz
dvander@2762
  1092
    aaaabcxyzzzzpqrrrabbxyyyypqAzz
dvander@2762
  1093
 0: aaaabcxyzzzzpqrrrabbxyyyypqAzz
dvander@2762
  1094
    aaaabcxyzzzzpqrrrabbbxyyyypqAzz
dvander@2762
  1095
 0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz
dvander@2762
  1096
    aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
dvander@2762
  1097
 0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
dvander@2762
  1098
    aaabcxyzpqrrrabbxyyyypABzz
dvander@2762
  1099
 0: aaabcxyzpqrrrabbxyyyypABzz
dvander@2762
  1100
    aaabcxyzpqrrrabbxyyyypABBzz
dvander@2762
  1101
 0: aaabcxyzpqrrrabbxyyyypABBzz
dvander@2762
  1102
    >>>aaabxyzpqrrrabbxyyyypqAzz
dvander@2762
  1103
 0: aaabxyzpqrrrabbxyyyypqAzz
dvander@2762
  1104
    >aaaabxyzpqrrrabbxyyyypqAzz
dvander@2762
  1105
 0: aaaabxyzpqrrrabbxyyyypqAzz
dvander@2762
  1106
    >>>>abcxyzpqrrrabbxyyyypqAzz
dvander@2762
  1107
 0: abcxyzpqrrrabbxyyyypqAzz
dvander@2762
  1108
    *** Failers
dvander@2762
  1109
No match
dvander@2762
  1110
    abxyzpqrrabbxyyyypqAzz
dvander@2762
  1111
No match
dvander@2762
  1112
    abxyzpqrrrrabbxyyyypqAzz
dvander@2762
  1113
No match
dvander@2762
  1114
    abxyzpqrrrabxyyyypqAzz
dvander@2762
  1115
No match
dvander@2762
  1116
    aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
dvander@2762
  1117
No match
dvander@2762
  1118
    aaaabcxyzzzzpqrrrabbbxyyypqAzz
dvander@2762
  1119
No match
dvander@2762
  1120
    aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
dvander@2762
  1121
No match
dvander@2762
  1122
dvander@2762
  1123
/^(abc){1,2}zz/
dvander@2762
  1124
    abczz
dvander@2762
  1125
 0: abczz
dvander@2762
  1126
    abcabczz
dvander@2762
  1127
 0: abcabczz
dvander@2762
  1128
    *** Failers
dvander@2762
  1129
No match
dvander@2762
  1130
    zz
dvander@2762
  1131
No match
dvander@2762
  1132
    abcabcabczz
dvander@2762
  1133
No match
dvander@2762
  1134
    >>abczz
dvander@2762
  1135
No match
dvander@2762
  1136
dvander@2762
  1137
/^(b+?|a){1,2}?c/
dvander@2762
  1138
    bc
dvander@2762
  1139
 0: bc
dvander@2762
  1140
    bbc
dvander@2762
  1141
 0: bbc
dvander@2762
  1142
    bbbc
dvander@2762
  1143
 0: bbbc
dvander@2762
  1144
    bac
dvander@2762
  1145
 0: bac
dvander@2762
  1146
    bbac
dvander@2762
  1147
 0: bbac
dvander@2762
  1148
    aac
dvander@2762
  1149
 0: aac
dvander@2762
  1150
    abbbbbbbbbbbc
dvander@2762
  1151
 0: abbbbbbbbbbbc
dvander@2762
  1152
    bbbbbbbbbbbac
dvander@2762
  1153
 0: bbbbbbbbbbbac
dvander@2762
  1154
    *** Failers
dvander@2762
  1155
No match
dvander@2762
  1156
    aaac
dvander@2762
  1157
No match
dvander@2762
  1158
    abbbbbbbbbbbac
dvander@2762
  1159
No match
dvander@2762
  1160
dvander@2762
  1161
/^(b+|a){1,2}c/
dvander@2762
  1162
    bc
dvander@2762
  1163
 0: bc
dvander@2762
  1164
    bbc
dvander@2762
  1165
 0: bbc
dvander@2762
  1166
    bbbc
dvander@2762
  1167
 0: bbbc
dvander@2762
  1168
    bac
dvander@2762
  1169
 0: bac
dvander@2762
  1170
    bbac
dvander@2762
  1171
 0: bbac
dvander@2762
  1172
    aac
dvander@2762
  1173
 0: aac
dvander@2762
  1174
    abbbbbbbbbbbc
dvander@2762
  1175
 0: abbbbbbbbbbbc
dvander@2762
  1176
    bbbbbbbbbbbac
dvander@2762
  1177
 0: bbbbbbbbbbbac
dvander@2762
  1178
    *** Failers
dvander@2762
  1179
No match
dvander@2762
  1180
    aaac
dvander@2762
  1181
No match
dvander@2762
  1182
    abbbbbbbbbbbac
dvander@2762
  1183
No match
dvander@2762
  1184
dvander@2762
  1185
/^(b+|a){1,2}?bc/
dvander@2762
  1186
    bbc
dvander@2762
  1187
 0: bbc
dvander@2762
  1188
dvander@2762
  1189
/^(b*|ba){1,2}?bc/
dvander@2762
  1190
    babc
dvander@2762
  1191
 0: babc
dvander@2762
  1192
    bbabc
dvander@2762
  1193
 0: bbabc
dvander@2762
  1194
    bababc
dvander@2762
  1195
 0: bababc
dvander@2762
  1196
    *** Failers
dvander@2762
  1197
No match
dvander@2762
  1198
    bababbc
dvander@2762
  1199
No match
dvander@2762
  1200
    babababc
dvander@2762
  1201
No match
dvander@2762
  1202
dvander@2762
  1203
/^(ba|b*){1,2}?bc/
dvander@2762
  1204
    babc
dvander@2762
  1205
 0: babc
dvander@2762
  1206
    bbabc
dvander@2762
  1207
 0: bbabc
dvander@2762
  1208
    bababc
dvander@2762
  1209
 0: bababc
dvander@2762
  1210
    *** Failers
dvander@2762
  1211
No match
dvander@2762
  1212
    bababbc
dvander@2762
  1213
No match
dvander@2762
  1214
    babababc
dvander@2762
  1215
No match
dvander@2762
  1216
dvander@2762
  1217
/^\ca\cA\c[\c{\c:/
dvander@2762
  1218
    \x01\x01\e;z
dvander@2762
  1219
 0: \x01\x01\x1b;z
dvander@2762
  1220
dvander@2762
  1221
/^[ab\]cde]/
dvander@2762
  1222
    athing
dvander@2762
  1223
 0: a
dvander@2762
  1224
    bthing
dvander@2762
  1225
 0: b
dvander@2762
  1226
    ]thing
dvander@2762
  1227
 0: ]
dvander@2762
  1228
    cthing
dvander@2762
  1229
 0: c
dvander@2762
  1230
    dthing
dvander@2762
  1231
 0: d
dvander@2762
  1232
    ething
dvander@2762
  1233
 0: e
dvander@2762
  1234
    *** Failers
dvander@2762
  1235
No match
dvander@2762
  1236
    fthing
dvander@2762
  1237
No match
dvander@2762
  1238
    [thing
dvander@2762
  1239
No match
dvander@2762
  1240
    \\thing
dvander@2762
  1241
No match
dvander@2762
  1242
dvander@2762
  1243
/^[]cde]/
dvander@2762
  1244
    ]thing
dvander@2762
  1245
 0: ]
dvander@2762
  1246
    cthing
dvander@2762
  1247
 0: c
dvander@2762
  1248
    dthing
dvander@2762
  1249
 0: d
dvander@2762
  1250
    ething
dvander@2762
  1251
 0: e
dvander@2762
  1252
    *** Failers
dvander@2762
  1253
No match
dvander@2762
  1254
    athing
dvander@2762
  1255
No match
dvander@2762
  1256
    fthing
dvander@2762
  1257
No match
dvander@2762
  1258
dvander@2762
  1259
/^[^ab\]cde]/
dvander@2762
  1260
    fthing
dvander@2762
  1261
 0: f
dvander@2762
  1262
    [thing
dvander@2762
  1263
 0: [
dvander@2762
  1264
    \\thing
dvander@2762
  1265
 0: \
dvander@2762
  1266
    *** Failers
dvander@2762
  1267
 0: *
dvander@2762
  1268
    athing
dvander@2762
  1269
No match
dvander@2762
  1270
    bthing
dvander@2762
  1271
No match
dvander@2762
  1272
    ]thing
dvander@2762
  1273
No match
dvander@2762
  1274
    cthing
dvander@2762
  1275
No match
dvander@2762
  1276
    dthing
dvander@2762
  1277
No match
dvander@2762
  1278
    ething
dvander@2762
  1279
No match
dvander@2762
  1280
dvander@2762
  1281
/^[^]cde]/
dvander@2762
  1282
    athing
dvander@2762
  1283
 0: a
dvander@2762
  1284
    fthing
dvander@2762
  1285
 0: f
dvander@2762
  1286
    *** Failers
dvander@2762
  1287
 0: *
dvander@2762
  1288
    ]thing
dvander@2762
  1289
No match
dvander@2762
  1290
    cthing
dvander@2762
  1291
No match
dvander@2762
  1292
    dthing
dvander@2762
  1293
No match
dvander@2762
  1294
    ething
dvander@2762
  1295
No match
dvander@2762
  1296
dvander@2762
  1297
/^\�/
dvander@2762
  1298
    �
dvander@2762
  1299
 0: \x81
dvander@2762
  1300
dvander@2762
  1301
/^�/
dvander@2762
  1302
    �
dvander@2762
  1303
 0: \xff
dvander@2762
  1304
dvander@2762
  1305
/^[0-9]+$/
dvander@2762
  1306
    0
dvander@2762
  1307
 0: 0
dvander@2762
  1308
    1
dvander@2762
  1309
 0: 1
dvander@2762
  1310
    2
dvander@2762
  1311
 0: 2
dvander@2762
  1312
    3
dvander@2762
  1313
 0: 3
dvander@2762
  1314
    4
dvander@2762
  1315
 0: 4
dvander@2762
  1316
    5
dvander@2762
  1317
 0: 5
dvander@2762
  1318
    6
dvander@2762
  1319
 0: 6
dvander@2762
  1320
    7
dvander@2762
  1321
 0: 7
dvander@2762
  1322
    8
dvander@2762
  1323
 0: 8
dvander@2762
  1324
    9
dvander@2762
  1325
 0: 9
dvander@2762
  1326
    10
dvander@2762
  1327
 0: 10
dvander@2762
  1328
    100
dvander@2762
  1329
 0: 100
dvander@2762
  1330
    *** Failers
dvander@2762
  1331
No match
dvander@2762
  1332
    abc
dvander@2762
  1333
No match
dvander@2762
  1334
dvander@2762
  1335
/^.*nter/
dvander@2762
  1336
    enter
dvander@2762
  1337
 0: enter
dvander@2762
  1338
    inter
dvander@2762
  1339
 0: inter
dvander@2762
  1340
    uponter
dvander@2762
  1341
 0: uponter
dvander@2762
  1342
dvander@2762
  1343
/^xxx[0-9]+$/
dvander@2762
  1344
    xxx0
dvander@2762
  1345
 0: xxx0
dvander@2762
  1346
    xxx1234
dvander@2762
  1347
 0: xxx1234
dvander@2762
  1348
    *** Failers
dvander@2762
  1349
No match
dvander@2762
  1350
    xxx
dvander@2762
  1351
No match
dvander@2762
  1352
dvander@2762
  1353
/^.+[0-9][0-9][0-9]$/
dvander@2762
  1354
    x123
dvander@2762
  1355
 0: x123
dvander@2762
  1356
    xx123
dvander@2762
  1357
 0: xx123
dvander@2762
  1358
    123456
dvander@2762
  1359
 0: 123456
dvander@2762
  1360
    *** Failers
dvander@2762
  1361
No match
dvander@2762
  1362
    123
dvander@2762
  1363
No match
dvander@2762
  1364
    x1234
dvander@2762
  1365
 0: x1234
dvander@2762
  1366
dvander@2762
  1367
/^.+?[0-9][0-9][0-9]$/
dvander@2762
  1368
    x123
dvander@2762
  1369
 0: x123
dvander@2762
  1370
    xx123
dvander@2762
  1371
 0: xx123
dvander@2762
  1372
    123456
dvander@2762
  1373
 0: 123456
dvander@2762
  1374
    *** Failers
dvander@2762
  1375
No match
dvander@2762
  1376
    123
dvander@2762
  1377
No match
dvander@2762
  1378
    x1234
dvander@2762
  1379
 0: x1234
dvander@2762
  1380
dvander@2762
  1381
/^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
dvander@2762
  1382
    abc!pqr=apquxz.ixr.zzz.ac.uk
dvander@2762
  1383
 0: abc!pqr=apquxz.ixr.zzz.ac.uk
dvander@2762
  1384
    *** Failers
dvander@2762
  1385
No match
dvander@2762
  1386
    !pqr=apquxz.ixr.zzz.ac.uk
dvander@2762
  1387
No match
dvander@2762
  1388
    abc!=apquxz.ixr.zzz.ac.uk
dvander@2762
  1389
No match
dvander@2762
  1390
    abc!pqr=apquxz:ixr.zzz.ac.uk
dvander@2762
  1391
No match
dvander@2762
  1392
    abc!pqr=apquxz.ixr.zzz.ac.ukk
dvander@2762
  1393
No match
dvander@2762
  1394
dvander@2762
  1395
/:/
dvander@2762
  1396
    Well, we need a colon: somewhere
dvander@2762
  1397
 0: :
dvander@2762
  1398
    *** Fail if we don't
dvander@2762
  1399
No match
dvander@2762
  1400
dvander@2762
  1401
/([\da-f:]+)$/i
dvander@2762
  1402
    0abc
dvander@2762
  1403
 0: 0abc
dvander@2762
  1404
    abc
dvander@2762
  1405
 0: abc
dvander@2762
  1406
    fed
dvander@2762
  1407
 0: fed
dvander@2762
  1408
    E
dvander@2762
  1409
 0: E
dvander@2762
  1410
    ::
dvander@2762
  1411
 0: ::
dvander@2762
  1412
    5f03:12C0::932e
dvander@2762
  1413
 0: 5f03:12C0::932e
dvander@2762
  1414
    fed def
dvander@2762
  1415
 0: def
dvander@2762
  1416
    Any old stuff
dvander@2762
  1417
 0: ff
dvander@2762
  1418
    *** Failers
dvander@2762
  1419
No match
dvander@2762
  1420
    0zzz
dvander@2762
  1421
No match
dvander@2762
  1422
    gzzz
dvander@2762
  1423
No match
dvander@2762
  1424
    fed\x20
dvander@2762
  1425
No match
dvander@2762
  1426
    Any old rubbish
dvander@2762
  1427
No match
dvander@2762
  1428
dvander@2762
  1429
/^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
dvander@2762
  1430
    .1.2.3
dvander@2762
  1431
 0: .1.2.3
dvander@2762
  1432
    A.12.123.0
dvander@2762
  1433
 0: A.12.123.0
dvander@2762
  1434
    *** Failers
dvander@2762
  1435
No match
dvander@2762
  1436
    .1.2.3333
dvander@2762
  1437
No match
dvander@2762
  1438
    1.2.3
dvander@2762
  1439
No match
dvander@2762
  1440
    1234.2.3
dvander@2762
  1441
No match
dvander@2762
  1442
dvander@2762
  1443
/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
dvander@2762
  1444
    1 IN SOA non-sp1 non-sp2(
dvander@2762
  1445
 0: 1 IN SOA non-sp1 non-sp2(
dvander@2762
  1446
    1    IN    SOA    non-sp1    non-sp2   (
dvander@2762
  1447
 0: 1    IN    SOA    non-sp1    non-sp2   (
dvander@2762
  1448
    *** Failers
dvander@2762
  1449
No match
dvander@2762
  1450
    1IN SOA non-sp1 non-sp2(
dvander@2762
  1451
No match
dvander@2762
  1452
dvander@2762
  1453
/^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
dvander@2762
  1454
    a.
dvander@2762
  1455
 0: a.
dvander@2762
  1456
    Z.
dvander@2762
  1457
 0: Z.
dvander@2762
  1458
    2.
dvander@2762
  1459
 0: 2.
dvander@2762
  1460
    ab-c.pq-r.
dvander@2762
  1461
 0: ab-c.pq-r.
dvander@2762
  1462
    sxk.zzz.ac.uk.
dvander@2762
  1463
 0: sxk.zzz.ac.uk.
dvander@2762
  1464
    x-.y-.
dvander@2762
  1465
 0: x-.y-.
dvander@2762
  1466
    *** Failers
dvander@2762
  1467
No match
dvander@2762
  1468
    -abc.peq.
dvander@2762
  1469
No match
dvander@2762
  1470
dvander@2762
  1471
/^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
dvander@2762
  1472
    *.a
dvander@2762
  1473
 0: *.a
dvander@2762
  1474
    *.b0-a
dvander@2762
  1475
 0: *.b0-a
dvander@2762
  1476
    *.c3-b.c
dvander@2762
  1477
 0: *.c3-b.c
dvander@2762
  1478
    *.c-a.b-c
dvander@2762
  1479
 0: *.c-a.b-c
dvander@2762
  1480
    *** Failers
dvander@2762
  1481
No match
dvander@2762
  1482
    *.0
dvander@2762
  1483
No match
dvander@2762
  1484
    *.a-
dvander@2762
  1485
No match
dvander@2762
  1486
    *.a-b.c-
dvander@2762
  1487
No match
dvander@2762
  1488
    *.c-a.0-c
dvander@2762
  1489
No match
dvander@2762
  1490
dvander@2762
  1491
/^(?=ab(de))(abd)(e)/
dvander@2762
  1492
    abde
dvander@2762
  1493
 0: abde
dvander@2762
  1494
dvander@2762
  1495
/^(?!(ab)de|x)(abd)(f)/
dvander@2762
  1496
    abdf
dvander@2762
  1497
 0: abdf
dvander@2762
  1498
dvander@2762
  1499
/^(?=(ab(cd)))(ab)/
dvander@2762
  1500
    abcd
dvander@2762
  1501
 0: ab
dvander@2762
  1502
dvander@2762
  1503
/^[\da-f](\.[\da-f])*$/i
dvander@2762
  1504
    a.b.c.d
dvander@2762
  1505
 0: a.b.c.d
dvander@2762
  1506
    A.B.C.D
dvander@2762
  1507
 0: A.B.C.D
dvander@2762
  1508
    a.b.c.1.2.3.C
dvander@2762
  1509
 0: a.b.c.1.2.3.C
dvander@2762
  1510
dvander@2762
  1511
/^\".*\"\s*(;.*)?$/
dvander@2762
  1512
    \"1234\"
dvander@2762
  1513
 0: "1234"
dvander@2762
  1514
    \"abcd\" ;
dvander@2762
  1515
 0: "abcd" ;
dvander@2762
  1516
    \"\" ; rhubarb
dvander@2762
  1517
 0: "" ; rhubarb
dvander@2762
  1518
    *** Failers
dvander@2762
  1519
No match
dvander@2762
  1520
    \"1234\" : things
dvander@2762
  1521
No match
dvander@2762
  1522
dvander@2762
  1523
/^$/
dvander@2762
  1524
    \
dvander@2762
  1525
 0: 
dvander@2762
  1526
    *** Failers
dvander@2762
  1527
No match
dvander@2762
  1528
dvander@2762
  1529
/   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/x
dvander@2762
  1530
    ab c
dvander@2762
  1531
 0: ab c
dvander@2762
  1532
    *** Failers
dvander@2762
  1533
No match
dvander@2762
  1534
    abc
dvander@2762
  1535
No match
dvander@2762
  1536
    ab cde
dvander@2762
  1537
No match
dvander@2762
  1538
dvander@2762
  1539
/(?x)   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/
dvander@2762
  1540
    ab c
dvander@2762
  1541
 0: ab c
dvander@2762
  1542
    *** Failers
dvander@2762
  1543
No match
dvander@2762
  1544
    abc
dvander@2762
  1545
No match
dvander@2762
  1546
    ab cde
dvander@2762
  1547
No match
dvander@2762
  1548
dvander@2762
  1549
/^   a\ b[c ]d       $/x
dvander@2762
  1550
    a bcd
dvander@2762
  1551
 0: a bcd
dvander@2762
  1552
    a b d
dvander@2762
  1553
 0: a b d
dvander@2762
  1554
    *** Failers
dvander@2762
  1555
No match
dvander@2762
  1556
    abcd
dvander@2762
  1557
No match
dvander@2762
  1558
    ab d
dvander@2762
  1559
No match
dvander@2762
  1560
dvander@2762
  1561
/^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
dvander@2762
  1562
    abcdefhijklm
dvander@2762
  1563
 0: abcdefhijklm
dvander@2762
  1564
dvander@2762
  1565
/^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
dvander@2762
  1566
    abcdefhijklm
dvander@2762
  1567
 0: abcdefhijklm
dvander@2762
  1568
dvander@2762
  1569
/^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
dvander@2762
  1570
    a+ Z0+\x08\n\x1d\x12
dvander@2762
  1571
 0: a+ Z0+\x08\x0a\x1d\x12
dvander@2762
  1572
dvander@2762
  1573
/^[.^$|()*+?{,}]+/
dvander@2762
  1574
    .^\$(*+)|{?,?}
dvander@2762
  1575
 0: .^$(*+)|{?,?}
dvander@2762
  1576
 1: .^$(*+)|{?,?
dvander@2762
  1577
 2: .^$(*+)|{?,
dvander@2762
  1578
 3: .^$(*+)|{?
dvander@2762
  1579
 4: .^$(*+)|{
dvander@2762
  1580
 5: .^$(*+)|
dvander@2762
  1581
 6: .^$(*+)
dvander@2762
  1582
 7: .^$(*+
dvander@2762
  1583
 8: .^$(*
dvander@2762
  1584
 9: .^$(
dvander@2762
  1585
10: .^$
dvander@2762
  1586
11: .^
dvander@2762
  1587
12: .
dvander@2762
  1588
dvander@2762
  1589
/^a*\w/
dvander@2762
  1590
    z
dvander@2762
  1591
 0: z
dvander@2762
  1592
    az
dvander@2762
  1593
 0: az
dvander@2762
  1594
 1: a
dvander@2762
  1595
    aaaz
dvander@2762
  1596
 0: aaaz
dvander@2762
  1597
 1: aaa
dvander@2762
  1598
 2: aa
dvander@2762
  1599
 3: a
dvander@2762
  1600
    a
dvander@2762
  1601
 0: a
dvander@2762
  1602
    aa
dvander@2762
  1603
 0: aa
dvander@2762
  1604
 1: a
dvander@2762
  1605
    aaaa
dvander@2762
  1606
 0: aaaa
dvander@2762
  1607
 1: aaa
dvander@2762
  1608
 2: aa
dvander@2762
  1609
 3: a
dvander@2762
  1610
    a+
dvander@2762
  1611
 0: a
dvander@2762
  1612
    aa+
dvander@2762
  1613
 0: aa
dvander@2762
  1614
 1: a
dvander@2762
  1615
dvander@2762
  1616
/^a*?\w/
dvander@2762
  1617
    z
dvander@2762
  1618
 0: z
dvander@2762
  1619
    az
dvander@2762
  1620
 0: az
dvander@2762
  1621
 1: a
dvander@2762
  1622
    aaaz
dvander@2762
  1623
 0: aaaz
dvander@2762
  1624
 1: aaa
dvander@2762
  1625
 2: aa
dvander@2762
  1626
 3: a
dvander@2762
  1627
    a
dvander@2762
  1628
 0: a
dvander@2762
  1629
    aa
dvander@2762
  1630
 0: aa
dvander@2762
  1631
 1: a
dvander@2762
  1632
    aaaa
dvander@2762
  1633
 0: aaaa
dvander@2762
  1634
 1: aaa
dvander@2762
  1635
 2: aa
dvander@2762
  1636
 3: a
dvander@2762
  1637
    a+
dvander@2762
  1638
 0: a
dvander@2762
  1639
    aa+
dvander@2762
  1640
 0: aa
dvander@2762
  1641
 1: a
dvander@2762
  1642
dvander@2762
  1643
/^a+\w/
dvander@2762
  1644
    az
dvander@2762
  1645
 0: az
dvander@2762
  1646
    aaaz
dvander@2762
  1647
 0: aaaz
dvander@2762
  1648
 1: aaa
dvander@2762
  1649
 2: aa
dvander@2762
  1650
    aa
dvander@2762
  1651
 0: aa
dvander@2762
  1652
    aaaa
dvander@2762
  1653
 0: aaaa
dvander@2762
  1654
 1: aaa
dvander@2762
  1655
 2: aa
dvander@2762
  1656
    aa+
dvander@2762
  1657
 0: aa
dvander@2762
  1658
dvander@2762
  1659
/^a+?\w/
dvander@2762
  1660
    az
dvander@2762
  1661
 0: az
dvander@2762
  1662
    aaaz
dvander@2762
  1663
 0: aaaz
dvander@2762
  1664
 1: aaa
dvander@2762
  1665
 2: aa
dvander@2762
  1666
    aa
dvander@2762
  1667
 0: aa
dvander@2762
  1668
    aaaa
dvander@2762
  1669
 0: aaaa
dvander@2762
  1670
 1: aaa
dvander@2762
  1671
 2: aa
dvander@2762
  1672
    aa+
dvander@2762
  1673
 0: aa
dvander@2762
  1674
dvander@2762
  1675
/^\d{8}\w{2,}/
dvander@2762
  1676
    1234567890
dvander@2762
  1677
 0: 1234567890
dvander@2762
  1678
    12345678ab
dvander@2762
  1679
 0: 12345678ab
dvander@2762
  1680
    12345678__
dvander@2762
  1681
 0: 12345678__
dvander@2762
  1682
    *** Failers
dvander@2762
  1683
No match
dvander@2762
  1684
    1234567
dvander@2762
  1685
No match
dvander@2762
  1686
dvander@2762
  1687
/^[aeiou\d]{4,5}$/
dvander@2762
  1688
    uoie
dvander@2762
  1689
 0: uoie
dvander@2762
  1690
    1234
dvander@2762
  1691
 0: 1234
dvander@2762
  1692
    12345
dvander@2762
  1693
 0: 12345
dvander@2762
  1694
    aaaaa
dvander@2762
  1695
 0: aaaaa
dvander@2762
  1696
    *** Failers
dvander@2762
  1697
No match
dvander@2762
  1698
    123456
dvander@2762
  1699
No match
dvander@2762
  1700
dvander@2762
  1701
/^[aeiou\d]{4,5}?/
dvander@2762
  1702
    uoie
dvander@2762
  1703
 0: uoie
dvander@2762
  1704
    1234
dvander@2762
  1705
 0: 1234
dvander@2762
  1706
    12345
dvander@2762
  1707
 0: 12345
dvander@2762
  1708
 1: 1234
dvander@2762
  1709
    aaaaa
dvander@2762
  1710
 0: aaaaa
dvander@2762
  1711
 1: aaaa
dvander@2762
  1712
    123456
dvander@2762
  1713
 0: 12345
dvander@2762
  1714
 1: 1234
dvander@2762
  1715
dvander@2762
  1716
/^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/
dvander@2762
  1717
    From abcd  Mon Sep 01 12:33:02 1997
dvander@2762
  1718
 0: From abcd  Mon Sep 01 12:33
dvander@2762
  1719
dvander@2762
  1720
/^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
dvander@2762
  1721
    From abcd  Mon Sep 01 12:33:02 1997
dvander@2762
  1722
 0: From abcd  Mon Sep 01 12:33
dvander@2762
  1723
    From abcd  Mon Sep  1 12:33:02 1997
dvander@2762
  1724
 0: From abcd  Mon Sep  1 12:33
dvander@2762
  1725
    *** Failers
dvander@2762
  1726
No match
dvander@2762
  1727
    From abcd  Sep 01 12:33:02 1997
dvander@2762
  1728
No match
dvander@2762
  1729
dvander@2762
  1730
/^12.34/s
dvander@2762
  1731
    12\n34
dvander@2762
  1732
 0: 12\x0a34
dvander@2762
  1733
    12\r34
dvander@2762
  1734
 0: 12\x0d34
dvander@2762
  1735
dvander@2762
  1736
/\w+(?=\t)/
dvander@2762
  1737
    the quick brown\t fox
dvander@2762
  1738
 0: brown
dvander@2762
  1739
dvander@2762
  1740
/foo(?!bar)(.*)/
dvander@2762
  1741
    foobar is foolish see?
dvander@2762
  1742
 0: foolish see?
dvander@2762
  1743
 1: foolish see
dvander@2762
  1744
 2: foolish se
dvander@2762
  1745
 3: foolish s
dvander@2762
  1746
 4: foolish 
dvander@2762
  1747
 5: foolish
dvander@2762
  1748
 6: foolis
dvander@2762
  1749
 7: fooli
dvander@2762
  1750
 8: fool
dvander@2762
  1751
 9: foo
dvander@2762
  1752
dvander@2762
  1753
/(?:(?!foo)...|^.{0,2})bar(.*)/
dvander@2762
  1754
    foobar crowbar etc
dvander@2762
  1755
 0: rowbar etc
dvander@2762
  1756
 1: rowbar et
dvander@2762
  1757
 2: rowbar e
dvander@2762
  1758
 3: rowbar 
dvander@2762
  1759
 4: rowbar
dvander@2762
  1760
    barrel
dvander@2762
  1761
 0: barrel
dvander@2762
  1762
 1: barre
dvander@2762
  1763
 2: barr
dvander@2762
  1764
 3: bar
dvander@2762
  1765
    2barrel
dvander@2762
  1766
 0: 2barrel
dvander@2762
  1767
 1: 2barre
dvander@2762
  1768
 2: 2barr
dvander@2762
  1769
 3: 2bar
dvander@2762
  1770
    A barrel
dvander@2762
  1771
 0: A barrel
dvander@2762
  1772
 1: A barre
dvander@2762
  1773
 2: A barr
dvander@2762
  1774
 3: A bar
dvander@2762
  1775
dvander@2762
  1776
/^(\D*)(?=\d)(?!123)/
dvander@2762
  1777
    abc456
dvander@2762
  1778
 0: abc
dvander@2762
  1779
    *** Failers
dvander@2762
  1780
No match
dvander@2762
  1781
    abc123
dvander@2762
  1782
No match
dvander@2762
  1783
dvander@2762
  1784
/^1234(?# test newlines
dvander@2762
  1785
  inside)/
dvander@2762
  1786
    1234
dvander@2762
  1787
 0: 1234
dvander@2762
  1788
dvander@2762
  1789
/^1234 #comment in extended re
dvander@2762
  1790
  /x
dvander@2762
  1791
    1234
dvander@2762
  1792
 0: 1234
dvander@2762
  1793
dvander@2762
  1794
/#rhubarb
dvander@2762
  1795
  abcd/x
dvander@2762
  1796
    abcd
dvander@2762
  1797
 0: abcd
dvander@2762
  1798
dvander@2762
  1799
/^abcd#rhubarb/x
dvander@2762
  1800
    abcd
dvander@2762
  1801
 0: abcd
dvander@2762
  1802
dvander@2762
  1803
/(?!^)abc/
dvander@2762
  1804
    the abc
dvander@2762
  1805
 0: abc
dvander@2762
  1806
    *** Failers
dvander@2762
  1807
No match
dvander@2762
  1808
    abc
dvander@2762
  1809
No match
dvander@2762
  1810
dvander@2762
  1811
/(?=^)abc/
dvander@2762
  1812
    abc
dvander@2762
  1813
 0: abc
dvander@2762
  1814
    *** Failers
dvander@2762
  1815
No match
dvander@2762
  1816
    the abc
dvander@2762
  1817
No match
dvander@2762
  1818
dvander@2762
  1819
/^[ab]{1,3}(ab*|b)/
dvander@2762
  1820
    aabbbbb
dvander@2762
  1821
 0: aabbbbb
dvander@2762
  1822
 1: aabbbb
dvander@2762
  1823
 2: aabbb
dvander@2762
  1824
 3: aabb
dvander@2762
  1825
 4: aab
dvander@2762
  1826
 5: aa
dvander@2762
  1827
dvander@2762
  1828
/^[ab]{1,3}?(ab*|b)/
dvander@2762
  1829
    aabbbbb
dvander@2762
  1830
 0: aabbbbb
dvander@2762
  1831
 1: aabbbb
dvander@2762
  1832
 2: aabbb
dvander@2762
  1833
 3: aabb
dvander@2762
  1834
 4: aab
dvander@2762
  1835
 5: aa
dvander@2762
  1836
dvander@2762
  1837
/^[ab]{1,3}?(ab*?|b)/
dvander@2762
  1838
    aabbbbb
dvander@2762
  1839
 0: aabbbbb
dvander@2762
  1840
 1: aabbbb
dvander@2762
  1841
 2: aabbb
dvander@2762
  1842
 3: aabb
dvander@2762
  1843
 4: aab
dvander@2762
  1844
 5: aa
dvander@2762
  1845
dvander@2762
  1846
/^[ab]{1,3}(ab*?|b)/
dvander@2762
  1847
    aabbbbb
dvander@2762
  1848
 0: aabbbbb
dvander@2762
  1849
 1: aabbbb
dvander@2762
  1850
 2: aabbb
dvander@2762
  1851
 3: aabb
dvander@2762
  1852
 4: aab
dvander@2762
  1853
 5: aa
dvander@2762
  1854
dvander@2762
  1855
/  (?: [\040\t] |  \(
dvander@2762
  1856
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1857
\)  )*                          # optional leading comment
dvander@2762
  1858
(?:    (?:
dvander@2762
  1859
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  1860
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  1861
|
dvander@2762
  1862
" (?:                      # opening quote...
dvander@2762
  1863
[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
dvander@2762
  1864
|                     #    or
dvander@2762
  1865
\\ [^\x80-\xff]           #   Escaped something (something != CR)
dvander@2762
  1866
)* "  # closing quote
dvander@2762
  1867
)                    # initial word
dvander@2762
  1868
(?:  (?: [\040\t] |  \(
dvander@2762
  1869
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1870
\)  )*  \.  (?: [\040\t] |  \(
dvander@2762
  1871
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1872
\)  )*   (?:
dvander@2762
  1873
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  1874
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  1875
|
dvander@2762
  1876
" (?:                      # opening quote...
dvander@2762
  1877
[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
dvander@2762
  1878
|                     #    or
dvander@2762
  1879
\\ [^\x80-\xff]           #   Escaped something (something != CR)
dvander@2762
  1880
)* "  # closing quote
dvander@2762
  1881
)  )* # further okay, if led by a period
dvander@2762
  1882
(?: [\040\t] |  \(
dvander@2762
  1883
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1884
\)  )*  @  (?: [\040\t] |  \(
dvander@2762
  1885
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1886
\)  )*    (?:
dvander@2762
  1887
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  1888
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  1889
|   \[                         # [
dvander@2762
  1890
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
dvander@2762
  1891
\]                        #           ]
dvander@2762
  1892
)                           # initial subdomain
dvander@2762
  1893
(?:                                  #
dvander@2762
  1894
(?: [\040\t] |  \(
dvander@2762
  1895
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1896
\)  )*  \.                        # if led by a period...
dvander@2762
  1897
(?: [\040\t] |  \(
dvander@2762
  1898
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1899
\)  )*   (?:
dvander@2762
  1900
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  1901
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  1902
|   \[                         # [
dvander@2762
  1903
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
dvander@2762
  1904
\]                        #           ]
dvander@2762
  1905
)                     #   ...further okay
dvander@2762
  1906
)*
dvander@2762
  1907
# address
dvander@2762
  1908
|                     #  or
dvander@2762
  1909
(?:
dvander@2762
  1910
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  1911
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  1912
|
dvander@2762
  1913
" (?:                      # opening quote...
dvander@2762
  1914
[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
dvander@2762
  1915
|                     #    or
dvander@2762
  1916
\\ [^\x80-\xff]           #   Escaped something (something != CR)
dvander@2762
  1917
)* "  # closing quote
dvander@2762
  1918
)             # one word, optionally followed by....
dvander@2762
  1919
(?:
dvander@2762
  1920
[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
dvander@2762
  1921
\(
dvander@2762
  1922
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1923
\)       |  # comments, or...
dvander@2762
  1924
dvander@2762
  1925
" (?:                      # opening quote...
dvander@2762
  1926
[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
dvander@2762
  1927
|                     #    or
dvander@2762
  1928
\\ [^\x80-\xff]           #   Escaped something (something != CR)
dvander@2762
  1929
)* "  # closing quote
dvander@2762
  1930
# quoted strings
dvander@2762
  1931
)*
dvander@2762
  1932
<  (?: [\040\t] |  \(
dvander@2762
  1933
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1934
\)  )*                     # leading <
dvander@2762
  1935
(?:  @  (?: [\040\t] |  \(
dvander@2762
  1936
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1937
\)  )*    (?:
dvander@2762
  1938
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  1939
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  1940
|   \[                         # [
dvander@2762
  1941
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
dvander@2762
  1942
\]                        #           ]
dvander@2762
  1943
)                           # initial subdomain
dvander@2762
  1944
(?:                                  #
dvander@2762
  1945
(?: [\040\t] |  \(
dvander@2762
  1946
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1947
\)  )*  \.                        # if led by a period...
dvander@2762
  1948
(?: [\040\t] |  \(
dvander@2762
  1949
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1950
\)  )*   (?:
dvander@2762
  1951
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  1952
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  1953
|   \[                         # [
dvander@2762
  1954
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
dvander@2762
  1955
\]                        #           ]
dvander@2762
  1956
)                     #   ...further okay
dvander@2762
  1957
)*
dvander@2762
  1958
dvander@2762
  1959
(?:  (?: [\040\t] |  \(
dvander@2762
  1960
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1961
\)  )*  ,  (?: [\040\t] |  \(
dvander@2762
  1962
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1963
\)  )*  @  (?: [\040\t] |  \(
dvander@2762
  1964
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1965
\)  )*    (?:
dvander@2762
  1966
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  1967
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  1968
|   \[                         # [
dvander@2762
  1969
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
dvander@2762
  1970
\]                        #           ]
dvander@2762
  1971
)                           # initial subdomain
dvander@2762
  1972
(?:                                  #
dvander@2762
  1973
(?: [\040\t] |  \(
dvander@2762
  1974
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1975
\)  )*  \.                        # if led by a period...
dvander@2762
  1976
(?: [\040\t] |  \(
dvander@2762
  1977
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1978
\)  )*   (?:
dvander@2762
  1979
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  1980
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  1981
|   \[                         # [
dvander@2762
  1982
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
dvander@2762
  1983
\]                        #           ]
dvander@2762
  1984
)                     #   ...further okay
dvander@2762
  1985
)*
dvander@2762
  1986
)* # further okay, if led by comma
dvander@2762
  1987
:                                # closing colon
dvander@2762
  1988
(?: [\040\t] |  \(
dvander@2762
  1989
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  1990
\)  )*  )? #       optional route
dvander@2762
  1991
(?:
dvander@2762
  1992
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  1993
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  1994
|
dvander@2762
  1995
" (?:                      # opening quote...
dvander@2762
  1996
[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
dvander@2762
  1997
|                     #    or
dvander@2762
  1998
\\ [^\x80-\xff]           #   Escaped something (something != CR)
dvander@2762
  1999
)* "  # closing quote
dvander@2762
  2000
)                    # initial word
dvander@2762
  2001
(?:  (?: [\040\t] |  \(
dvander@2762
  2002
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  2003
\)  )*  \.  (?: [\040\t] |  \(
dvander@2762
  2004
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  2005
\)  )*   (?:
dvander@2762
  2006
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  2007
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  2008
|
dvander@2762
  2009
" (?:                      # opening quote...
dvander@2762
  2010
[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
dvander@2762
  2011
|                     #    or
dvander@2762
  2012
\\ [^\x80-\xff]           #   Escaped something (something != CR)
dvander@2762
  2013
)* "  # closing quote
dvander@2762
  2014
)  )* # further okay, if led by a period
dvander@2762
  2015
(?: [\040\t] |  \(
dvander@2762
  2016
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  2017
\)  )*  @  (?: [\040\t] |  \(
dvander@2762
  2018
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  2019
\)  )*    (?:
dvander@2762
  2020
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  2021
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  2022
|   \[                         # [
dvander@2762
  2023
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
dvander@2762
  2024
\]                        #           ]
dvander@2762
  2025
)                           # initial subdomain
dvander@2762
  2026
(?:                                  #
dvander@2762
  2027
(?: [\040\t] |  \(
dvander@2762
  2028
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  2029
\)  )*  \.                        # if led by a period...
dvander@2762
  2030
(?: [\040\t] |  \(
dvander@2762
  2031
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  2032
\)  )*   (?:
dvander@2762
  2033
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  2034
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  2035
|   \[                         # [
dvander@2762
  2036
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
dvander@2762
  2037
\]                        #           ]
dvander@2762
  2038
)                     #   ...further okay
dvander@2762
  2039
)*
dvander@2762
  2040
#       address spec
dvander@2762
  2041
(?: [\040\t] |  \(
dvander@2762
  2042
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  2043
\)  )*  > #                  trailing >
dvander@2762
  2044
# name and address
dvander@2762
  2045
)  (?: [\040\t] |  \(
dvander@2762
  2046
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
dvander@2762
  2047
\)  )*                       # optional trailing comment
dvander@2762
  2048
/x
dvander@2762
  2049
    Alan Other <user\@dom.ain>
dvander@2762
  2050
 0: Alan Other <[email protected]>
dvander@2762
  2051
    <user\@dom.ain>
dvander@2762
  2052
 0: [email protected]
dvander@2762
  2053
 1: user@dom
dvander@2762
  2054
    user\@dom.ain
dvander@2762
  2055
 0: [email protected]
dvander@2762
  2056
 1: user@dom
dvander@2762
  2057
    \"A. Other\" <user.1234\@dom.ain> (a comment)
dvander@2762
  2058
 0: "A. Other" <[email protected]> (a comment)
dvander@2762
  2059
 1: "A. Other" <[email protected]> 
dvander@2762
  2060
 2: "A. Other" <[email protected]>
dvander@2762
  2061
    A. Other <user.1234\@dom.ain> (a comment)
dvander@2762
  2062
 0:  Other <[email protected]> (a comment)
dvander@2762
  2063
 1:  Other <[email protected]> 
dvander@2762
  2064
 2:  Other <[email protected]>
dvander@2762
  2065
    \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
dvander@2762
  2066
 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
dvander@2762
  2067
 1: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re
dvander@2762
  2068
    A missing angle <user\@some.where
dvander@2762
  2069
 0: [email protected]
dvander@2762
  2070
 1: user@some
dvander@2762
  2071
    *** Failers
dvander@2762
  2072
No match
dvander@2762
  2073
    The quick brown fox
dvander@2762
  2074
No match
dvander@2762
  2075
dvander@2762
  2076
/[\040\t]*                    # Nab whitespace.
dvander@2762
  2077
(?:
dvander@2762
  2078
\(                              #  (
dvander@2762
  2079
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2080
(?:                                 #       (
dvander@2762
  2081
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2082
\(                            #  (
dvander@2762
  2083
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2084
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2085
\)                           #                       )
dvander@2762
  2086
)    #         special
dvander@2762
  2087
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2088
)*                                  #            )*
dvander@2762
  2089
\)                             #                )
dvander@2762
  2090
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2091
# optional leading comment
dvander@2762
  2092
(?:
dvander@2762
  2093
(?:
dvander@2762
  2094
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  2095
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  2096
# Atom
dvander@2762
  2097
|                       #  or
dvander@2762
  2098
"                                     # "
dvander@2762
  2099
[^\\\x80-\xff\n\015"] *                            #   normal
dvander@2762
  2100
(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
dvander@2762
  2101
"                                     #        "
dvander@2762
  2102
# Quoted string
dvander@2762
  2103
)
dvander@2762
  2104
[\040\t]*                    # Nab whitespace.
dvander@2762
  2105
(?:
dvander@2762
  2106
\(                              #  (
dvander@2762
  2107
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2108
(?:                                 #       (
dvander@2762
  2109
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2110
\(                            #  (
dvander@2762
  2111
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2112
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2113
\)                           #                       )
dvander@2762
  2114
)    #         special
dvander@2762
  2115
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2116
)*                                  #            )*
dvander@2762
  2117
\)                             #                )
dvander@2762
  2118
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2119
(?:
dvander@2762
  2120
\.
dvander@2762
  2121
[\040\t]*                    # Nab whitespace.
dvander@2762
  2122
(?:
dvander@2762
  2123
\(                              #  (
dvander@2762
  2124
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2125
(?:                                 #       (
dvander@2762
  2126
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2127
\(                            #  (
dvander@2762
  2128
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2129
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2130
\)                           #                       )
dvander@2762
  2131
)    #         special
dvander@2762
  2132
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2133
)*                                  #            )*
dvander@2762
  2134
\)                             #                )
dvander@2762
  2135
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2136
(?:
dvander@2762
  2137
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  2138
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  2139
# Atom
dvander@2762
  2140
|                       #  or
dvander@2762
  2141
"                                     # "
dvander@2762
  2142
[^\\\x80-\xff\n\015"] *                            #   normal
dvander@2762
  2143
(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
dvander@2762
  2144
"                                     #        "
dvander@2762
  2145
# Quoted string
dvander@2762
  2146
)
dvander@2762
  2147
[\040\t]*                    # Nab whitespace.
dvander@2762
  2148
(?:
dvander@2762
  2149
\(                              #  (
dvander@2762
  2150
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2151
(?:                                 #       (
dvander@2762
  2152
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2153
\(                            #  (
dvander@2762
  2154
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2155
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2156
\)                           #                       )
dvander@2762
  2157
)    #         special
dvander@2762
  2158
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2159
)*                                  #            )*
dvander@2762
  2160
\)                             #                )
dvander@2762
  2161
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2162
# additional words
dvander@2762
  2163
)*
dvander@2762
  2164
@
dvander@2762
  2165
[\040\t]*                    # Nab whitespace.
dvander@2762
  2166
(?:
dvander@2762
  2167
\(                              #  (
dvander@2762
  2168
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2169
(?:                                 #       (
dvander@2762
  2170
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2171
\(                            #  (
dvander@2762
  2172
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2173
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2174
\)                           #                       )
dvander@2762
  2175
)    #         special
dvander@2762
  2176
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2177
)*                                  #            )*
dvander@2762
  2178
\)                             #                )
dvander@2762
  2179
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2180
(?:
dvander@2762
  2181
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  2182
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  2183
|
dvander@2762
  2184
\[                            # [
dvander@2762
  2185
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
dvander@2762
  2186
\]                           #           ]
dvander@2762
  2187
)
dvander@2762
  2188
[\040\t]*                    # Nab whitespace.
dvander@2762
  2189
(?:
dvander@2762
  2190
\(                              #  (
dvander@2762
  2191
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2192
(?:                                 #       (
dvander@2762
  2193
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2194
\(                            #  (
dvander@2762
  2195
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2196
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2197
\)                           #                       )
dvander@2762
  2198
)    #         special
dvander@2762
  2199
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2200
)*                                  #            )*
dvander@2762
  2201
\)                             #                )
dvander@2762
  2202
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2203
# optional trailing comments
dvander@2762
  2204
(?:
dvander@2762
  2205
\.
dvander@2762
  2206
[\040\t]*                    # Nab whitespace.
dvander@2762
  2207
(?:
dvander@2762
  2208
\(                              #  (
dvander@2762
  2209
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2210
(?:                                 #       (
dvander@2762
  2211
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2212
\(                            #  (
dvander@2762
  2213
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2214
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2215
\)                           #                       )
dvander@2762
  2216
)    #         special
dvander@2762
  2217
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2218
)*                                  #            )*
dvander@2762
  2219
\)                             #                )
dvander@2762
  2220
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2221
(?:
dvander@2762
  2222
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  2223
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  2224
|
dvander@2762
  2225
\[                            # [
dvander@2762
  2226
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
dvander@2762
  2227
\]                           #           ]
dvander@2762
  2228
)
dvander@2762
  2229
[\040\t]*                    # Nab whitespace.
dvander@2762
  2230
(?:
dvander@2762
  2231
\(                              #  (
dvander@2762
  2232
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2233
(?:                                 #       (
dvander@2762
  2234
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2235
\(                            #  (
dvander@2762
  2236
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2237
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2238
\)                           #                       )
dvander@2762
  2239
)    #         special
dvander@2762
  2240
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2241
)*                                  #            )*
dvander@2762
  2242
\)                             #                )
dvander@2762
  2243
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2244
# optional trailing comments
dvander@2762
  2245
)*
dvander@2762
  2246
# address
dvander@2762
  2247
|                             #  or
dvander@2762
  2248
(?:
dvander@2762
  2249
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  2250
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  2251
# Atom
dvander@2762
  2252
|                       #  or
dvander@2762
  2253
"                                     # "
dvander@2762
  2254
[^\\\x80-\xff\n\015"] *                            #   normal
dvander@2762
  2255
(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
dvander@2762
  2256
"                                     #        "
dvander@2762
  2257
# Quoted string
dvander@2762
  2258
)
dvander@2762
  2259
# leading word
dvander@2762
  2260
[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *               # "normal" atoms and or spaces
dvander@2762
  2261
(?:
dvander@2762
  2262
(?:
dvander@2762
  2263
\(                              #  (
dvander@2762
  2264
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2265
(?:                                 #       (
dvander@2762
  2266
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2267
\(                            #  (
dvander@2762
  2268
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2269
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2270
\)                           #                       )
dvander@2762
  2271
)    #         special
dvander@2762
  2272
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2273
)*                                  #            )*
dvander@2762
  2274
\)                             #                )
dvander@2762
  2275
|
dvander@2762
  2276
"                                     # "
dvander@2762
  2277
[^\\\x80-\xff\n\015"] *                            #   normal
dvander@2762
  2278
(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
dvander@2762
  2279
"                                     #        "
dvander@2762
  2280
) # "special" comment or quoted string
dvander@2762
  2281
[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *            #  more "normal"
dvander@2762
  2282
)*
dvander@2762
  2283
<
dvander@2762
  2284
[\040\t]*                    # Nab whitespace.
dvander@2762
  2285
(?:
dvander@2762
  2286
\(                              #  (
dvander@2762
  2287
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2288
(?:                                 #       (
dvander@2762
  2289
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2290
\(                            #  (
dvander@2762
  2291
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2292
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2293
\)                           #                       )
dvander@2762
  2294
)    #         special
dvander@2762
  2295
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2296
)*                                  #            )*
dvander@2762
  2297
\)                             #                )
dvander@2762
  2298
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2299
# <
dvander@2762
  2300
(?:
dvander@2762
  2301
@
dvander@2762
  2302
[\040\t]*                    # Nab whitespace.
dvander@2762
  2303
(?:
dvander@2762
  2304
\(                              #  (
dvander@2762
  2305
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2306
(?:                                 #       (
dvander@2762
  2307
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2308
\(                            #  (
dvander@2762
  2309
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2310
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2311
\)                           #                       )
dvander@2762
  2312
)    #         special
dvander@2762
  2313
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2314
)*                                  #            )*
dvander@2762
  2315
\)                             #                )
dvander@2762
  2316
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2317
(?:
dvander@2762
  2318
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  2319
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  2320
|
dvander@2762
  2321
\[                            # [
dvander@2762
  2322
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
dvander@2762
  2323
\]                           #           ]
dvander@2762
  2324
)
dvander@2762
  2325
[\040\t]*                    # Nab whitespace.
dvander@2762
  2326
(?:
dvander@2762
  2327
\(                              #  (
dvander@2762
  2328
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2329
(?:                                 #       (
dvander@2762
  2330
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2331
\(                            #  (
dvander@2762
  2332
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2333
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2334
\)                           #                       )
dvander@2762
  2335
)    #         special
dvander@2762
  2336
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2337
)*                                  #            )*
dvander@2762
  2338
\)                             #                )
dvander@2762
  2339
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2340
# optional trailing comments
dvander@2762
  2341
(?:
dvander@2762
  2342
\.
dvander@2762
  2343
[\040\t]*                    # Nab whitespace.
dvander@2762
  2344
(?:
dvander@2762
  2345
\(                              #  (
dvander@2762
  2346
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2347
(?:                                 #       (
dvander@2762
  2348
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2349
\(                            #  (
dvander@2762
  2350
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2351
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2352
\)                           #                       )
dvander@2762
  2353
)    #         special
dvander@2762
  2354
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2355
)*                                  #            )*
dvander@2762
  2356
\)                             #                )
dvander@2762
  2357
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2358
(?:
dvander@2762
  2359
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  2360
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  2361
|
dvander@2762
  2362
\[                            # [
dvander@2762
  2363
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
dvander@2762
  2364
\]                           #           ]
dvander@2762
  2365
)
dvander@2762
  2366
[\040\t]*                    # Nab whitespace.
dvander@2762
  2367
(?:
dvander@2762
  2368
\(                              #  (
dvander@2762
  2369
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2370
(?:                                 #       (
dvander@2762
  2371
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2372
\(                            #  (
dvander@2762
  2373
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2374
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2375
\)                           #                       )
dvander@2762
  2376
)    #         special
dvander@2762
  2377
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2378
)*                                  #            )*
dvander@2762
  2379
\)                             #                )
dvander@2762
  2380
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2381
# optional trailing comments
dvander@2762
  2382
)*
dvander@2762
  2383
(?: ,
dvander@2762
  2384
[\040\t]*                    # Nab whitespace.
dvander@2762
  2385
(?:
dvander@2762
  2386
\(                              #  (
dvander@2762
  2387
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2388
(?:                                 #       (
dvander@2762
  2389
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2390
\(                            #  (
dvander@2762
  2391
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2392
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2393
\)                           #                       )
dvander@2762
  2394
)    #         special
dvander@2762
  2395
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2396
)*                                  #            )*
dvander@2762
  2397
\)                             #                )
dvander@2762
  2398
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2399
@
dvander@2762
  2400
[\040\t]*                    # Nab whitespace.
dvander@2762
  2401
(?:
dvander@2762
  2402
\(                              #  (
dvander@2762
  2403
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2404
(?:                                 #       (
dvander@2762
  2405
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2406
\(                            #  (
dvander@2762
  2407
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2408
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2409
\)                           #                       )
dvander@2762
  2410
)    #         special
dvander@2762
  2411
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2412
)*                                  #            )*
dvander@2762
  2413
\)                             #                )
dvander@2762
  2414
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2415
(?:
dvander@2762
  2416
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  2417
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  2418
|
dvander@2762
  2419
\[                            # [
dvander@2762
  2420
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
dvander@2762
  2421
\]                           #           ]
dvander@2762
  2422
)
dvander@2762
  2423
[\040\t]*                    # Nab whitespace.
dvander@2762
  2424
(?:
dvander@2762
  2425
\(                              #  (
dvander@2762
  2426
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2427
(?:                                 #       (
dvander@2762
  2428
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2429
\(                            #  (
dvander@2762
  2430
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2431
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2432
\)                           #                       )
dvander@2762
  2433
)    #         special
dvander@2762
  2434
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2435
)*                                  #            )*
dvander@2762
  2436
\)                             #                )
dvander@2762
  2437
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2438
# optional trailing comments
dvander@2762
  2439
(?:
dvander@2762
  2440
\.
dvander@2762
  2441
[\040\t]*                    # Nab whitespace.
dvander@2762
  2442
(?:
dvander@2762
  2443
\(                              #  (
dvander@2762
  2444
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2445
(?:                                 #       (
dvander@2762
  2446
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2447
\(                            #  (
dvander@2762
  2448
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2449
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2450
\)                           #                       )
dvander@2762
  2451
)    #         special
dvander@2762
  2452
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2453
)*                                  #            )*
dvander@2762
  2454
\)                             #                )
dvander@2762
  2455
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2456
(?:
dvander@2762
  2457
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  2458
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  2459
|
dvander@2762
  2460
\[                            # [
dvander@2762
  2461
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
dvander@2762
  2462
\]                           #           ]
dvander@2762
  2463
)
dvander@2762
  2464
[\040\t]*                    # Nab whitespace.
dvander@2762
  2465
(?:
dvander@2762
  2466
\(                              #  (
dvander@2762
  2467
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2468
(?:                                 #       (
dvander@2762
  2469
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2470
\(                            #  (
dvander@2762
  2471
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2472
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2473
\)                           #                       )
dvander@2762
  2474
)    #         special
dvander@2762
  2475
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2476
)*                                  #            )*
dvander@2762
  2477
\)                             #                )
dvander@2762
  2478
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2479
# optional trailing comments
dvander@2762
  2480
)*
dvander@2762
  2481
)*  # additional domains
dvander@2762
  2482
:
dvander@2762
  2483
[\040\t]*                    # Nab whitespace.
dvander@2762
  2484
(?:
dvander@2762
  2485
\(                              #  (
dvander@2762
  2486
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2487
(?:                                 #       (
dvander@2762
  2488
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2489
\(                            #  (
dvander@2762
  2490
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2491
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2492
\)                           #                       )
dvander@2762
  2493
)    #         special
dvander@2762
  2494
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2495
)*                                  #            )*
dvander@2762
  2496
\)                             #                )
dvander@2762
  2497
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2498
# optional trailing comments
dvander@2762
  2499
)?     #       optional route
dvander@2762
  2500
(?:
dvander@2762
  2501
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  2502
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  2503
# Atom
dvander@2762
  2504
|                       #  or
dvander@2762
  2505
"                                     # "
dvander@2762
  2506
[^\\\x80-\xff\n\015"] *                            #   normal
dvander@2762
  2507
(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
dvander@2762
  2508
"                                     #        "
dvander@2762
  2509
# Quoted string
dvander@2762
  2510
)
dvander@2762
  2511
[\040\t]*                    # Nab whitespace.
dvander@2762
  2512
(?:
dvander@2762
  2513
\(                              #  (
dvander@2762
  2514
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2515
(?:                                 #       (
dvander@2762
  2516
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2517
\(                            #  (
dvander@2762
  2518
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2519
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2520
\)                           #                       )
dvander@2762
  2521
)    #         special
dvander@2762
  2522
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2523
)*                                  #            )*
dvander@2762
  2524
\)                             #                )
dvander@2762
  2525
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2526
(?:
dvander@2762
  2527
\.
dvander@2762
  2528
[\040\t]*                    # Nab whitespace.
dvander@2762
  2529
(?:
dvander@2762
  2530
\(                              #  (
dvander@2762
  2531
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2532
(?:                                 #       (
dvander@2762
  2533
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2534
\(                            #  (
dvander@2762
  2535
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2536
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2537
\)                           #                       )
dvander@2762
  2538
)    #         special
dvander@2762
  2539
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2540
)*                                  #            )*
dvander@2762
  2541
\)                             #                )
dvander@2762
  2542
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2543
(?:
dvander@2762
  2544
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  2545
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  2546
# Atom
dvander@2762
  2547
|                       #  or
dvander@2762
  2548
"                                     # "
dvander@2762
  2549
[^\\\x80-\xff\n\015"] *                            #   normal
dvander@2762
  2550
(?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
dvander@2762
  2551
"                                     #        "
dvander@2762
  2552
# Quoted string
dvander@2762
  2553
)
dvander@2762
  2554
[\040\t]*                    # Nab whitespace.
dvander@2762
  2555
(?:
dvander@2762
  2556
\(                              #  (
dvander@2762
  2557
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2558
(?:                                 #       (
dvander@2762
  2559
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2560
\(                            #  (
dvander@2762
  2561
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2562
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2563
\)                           #                       )
dvander@2762
  2564
)    #         special
dvander@2762
  2565
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2566
)*                                  #            )*
dvander@2762
  2567
\)                             #                )
dvander@2762
  2568
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2569
# additional words
dvander@2762
  2570
)*
dvander@2762
  2571
@
dvander@2762
  2572
[\040\t]*                    # Nab whitespace.
dvander@2762
  2573
(?:
dvander@2762
  2574
\(                              #  (
dvander@2762
  2575
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2576
(?:                                 #       (
dvander@2762
  2577
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2578
\(                            #  (
dvander@2762
  2579
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2580
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2581
\)                           #                       )
dvander@2762
  2582
)    #         special
dvander@2762
  2583
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2584
)*                                  #            )*
dvander@2762
  2585
\)                             #                )
dvander@2762
  2586
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2587
(?:
dvander@2762
  2588
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  2589
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  2590
|
dvander@2762
  2591
\[                            # [
dvander@2762
  2592
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
dvander@2762
  2593
\]                           #           ]
dvander@2762
  2594
)
dvander@2762
  2595
[\040\t]*                    # Nab whitespace.
dvander@2762
  2596
(?:
dvander@2762
  2597
\(                              #  (
dvander@2762
  2598
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2599
(?:                                 #       (
dvander@2762
  2600
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2601
\(                            #  (
dvander@2762
  2602
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2603
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2604
\)                           #                       )
dvander@2762
  2605
)    #         special
dvander@2762
  2606
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2607
)*                                  #            )*
dvander@2762
  2608
\)                             #                )
dvander@2762
  2609
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2610
# optional trailing comments
dvander@2762
  2611
(?:
dvander@2762
  2612
\.
dvander@2762
  2613
[\040\t]*                    # Nab whitespace.
dvander@2762
  2614
(?:
dvander@2762
  2615
\(                              #  (
dvander@2762
  2616
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2617
(?:                                 #       (
dvander@2762
  2618
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2619
\(                            #  (
dvander@2762
  2620
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2621
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2622
\)                           #                       )
dvander@2762
  2623
)    #         special
dvander@2762
  2624
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2625
)*                                  #            )*
dvander@2762
  2626
\)                             #                )
dvander@2762
  2627
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2628
(?:
dvander@2762
  2629
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
dvander@2762
  2630
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
dvander@2762
  2631
|
dvander@2762
  2632
\[                            # [
dvander@2762
  2633
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
dvander@2762
  2634
\]                           #           ]
dvander@2762
  2635
)
dvander@2762
  2636
[\040\t]*                    # Nab whitespace.
dvander@2762
  2637
(?:
dvander@2762
  2638
\(                              #  (
dvander@2762
  2639
[^\\\x80-\xff\n\015()] *                             #     normal*
dvander@2762
  2640
(?:                                 #       (
dvander@2762
  2641
(?:  \\ [^\x80-\xff]  |
dvander@2762
  2642
\(                            #  (
dvander@2762
  2643
[^\\\x80-\xff\n\015()] *                            #     normal*
dvander@2762
  2644
(?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
dvander@2762
  2645
\)                           #                       )
dvander@2762
  2646
)    #         special
dvander@2762
  2647
[^\\\x80-\xff\n\015()] *                         #         normal*
dvander@2762
  2648
)*                                  #            )*
dvander@2762
  2649
\)                             #                )
dvander@2762
  2650
[\040\t]* )*    # If comment found, allow more spaces.
dvander@2762
  2651
# optional trailing comments
dvander@2762
  2652
)*
dvander@2762
  2653
#       address spec
dvander@2762
  2654
>                    #                 >
dvander@2762
  2655
# name and address
dvander@2762
  2656
)
dvander@2762
  2657
/x
dvander@2762
  2658
    Alan Other <user\@dom.ain>
dvander@2762
  2659
 0: Alan Other <[email protected]>
dvander@2762
  2660
    <user\@dom.ain>
dvander@2762
  2661
 0: [email protected]
dvander@2762
  2662
 1: user@dom
dvander@2762
  2663
    user\@dom.ain
dvander@2762
  2664
 0: [email protected]
dvander@2762
  2665
 1: user@dom
dvander@2762
  2666
    \"A. Other\" <user.1234\@dom.ain> (a comment)
dvander@2762
  2667
 0: "A. Other" <[email protected]>
dvander@2762
  2668
    A. Other <user.1234\@dom.ain> (a comment)
dvander@2762
  2669
 0:  Other <[email protected]>
dvander@2762
  2670
    \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
dvander@2762
  2671
 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
dvander@2762
  2672
 1: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re
dvander@2762
  2673
    A missing angle <user\@some.where
dvander@2762
  2674
 0: [email protected]
dvander@2762
  2675
 1: user@some
dvander@2762
  2676
    *** Failers
dvander@2762
  2677
No match
dvander@2762
  2678
    The quick brown fox
dvander@2762
  2679
No match
dvander@2762
  2680
dvander@2762
  2681
/abc\0def\00pqr\000xyz\0000AB/
dvander@2762
  2682
    abc\0def\00pqr\000xyz\0000AB
dvander@2762
  2683
 0: abc\x00def\x00pqr\x00xyz\x000AB
dvander@2762
  2684
    abc456 abc\0def\00pqr\000xyz\0000ABCDE
dvander@2762
  2685
 0: abc\x00def\x00pqr\x00xyz\x000AB
dvander@2762
  2686
dvander@2762
  2687
/abc\x0def\x00pqr\x000xyz\x0000AB/
dvander@2762
  2688
    abc\x0def\x00pqr\x000xyz\x0000AB
dvander@2762
  2689
 0: abc\x0def\x00pqr\x000xyz\x0000AB
dvander@2762
  2690
    abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
dvander@2762
  2691
 0: abc\x0def\x00pqr\x000xyz\x0000AB
dvander@2762
  2692
dvander@2762
  2693
/^[\000-\037]/
dvander@2762
  2694
    \0A
dvander@2762
  2695
 0: \x00
dvander@2762
  2696
    \01B
dvander@2762
  2697
 0: \x01
dvander@2762
  2698
    \037C
dvander@2762
  2699
 0: \x1f
dvander@2762
  2700
dvander@2762
  2701
/\0*/
dvander@2762
  2702
    \0\0\0\0
dvander@2762
  2703
 0: \x00\x00\x00\x00
dvander@2762
  2704
 1: \x00\x00\x00
dvander@2762
  2705
 2: \x00\x00
dvander@2762
  2706
 3: \x00
dvander@2762
  2707
 4: 
dvander@2762
  2708
dvander@2762
  2709
/A\x0{2,3}Z/
dvander@2762
  2710
    The A\x0\x0Z
dvander@2762
  2711
 0: A\x00\x00Z
dvander@2762
  2712
    An A\0\x0\0Z
dvander@2762
  2713
 0: A\x00\x00\x00Z
dvander@2762
  2714
    *** Failers
dvander@2762
  2715
No match
dvander@2762
  2716
    A\0Z
dvander@2762
  2717
No match
dvander@2762
  2718
    A\0\x0\0\x0Z
dvander@2762
  2719
No match
dvander@2762
  2720
dvander@2762
  2721
/^\s/
dvander@2762
  2722
    \040abc
dvander@2762
  2723
 0:  
dvander@2762
  2724
    \x0cabc
dvander@2762
  2725
 0: \x0c
dvander@2762
  2726
    \nabc
dvander@2762
  2727
 0: \x0a
dvander@2762
  2728
    \rabc
dvander@2762
  2729
 0: \x0d
dvander@2762
  2730
    \tabc
dvander@2762
  2731
 0: \x09
dvander@2762
  2732
    *** Failers
dvander@2762
  2733
No match
dvander@2762
  2734
    abc
dvander@2762
  2735
No match
dvander@2762
  2736
dvander@2762
  2737
/^a	b
dvander@2762
  2738
      c/x
dvander@2762
  2739
    abc
dvander@2762
  2740
 0: abc
dvander@2762
  2741
dvander@2762
  2742
/ab{1,3}bc/
dvander@2762
  2743
    abbbbc
dvander@2762
  2744
 0: abbbbc
dvander@2762
  2745
    abbbc
dvander@2762
  2746
 0: abbbc
dvander@2762
  2747
    abbc
dvander@2762
  2748
 0: abbc
dvander@2762
  2749
    *** Failers
dvander@2762
  2750
No match
dvander@2762
  2751
    abc
dvander@2762
  2752
No match
dvander@2762
  2753
    abbbbbc
dvander@2762
  2754
No match
dvander@2762
  2755
dvander@2762
  2756
/([^.]*)\.([^:]*):[T ]+(.*)/
dvander@2762
  2757
    track1.title:TBlah blah blah
dvander@2762
  2758
 0: track1.title:TBlah blah blah
dvander@2762
  2759
 1: track1.title:TBlah blah bla
dvander@2762
  2760
 2: track1.title:TBlah blah bl
dvander@2762
  2761
 3: track1.title:TBlah blah b
dvander@2762
  2762
 4: track1.title:TBlah blah 
dvander@2762
  2763
 5: track1.title:TBlah blah
dvander@2762
  2764
 6: track1.title:TBlah bla
dvander@2762
  2765
 7: track1.title:TBlah bl
dvander@2762
  2766
 8: track1.title:TBlah b
dvander@2762
  2767
 9: track1.title:TBlah 
dvander@2762
  2768
10: track1.title:TBlah
dvander@2762
  2769
11: track1.title:TBla
dvander@2762
  2770
12: track1.title:TBl
dvander@2762
  2771
13: track1.title:TB
dvander@2762
  2772
14: track1.title:T
dvander@2762
  2773
dvander@2762
  2774
/([^.]*)\.([^:]*):[T ]+(.*)/i
dvander@2762
  2775
    track1.title:TBlah blah blah
dvander@2762
  2776
 0: track1.title:TBlah blah blah
dvander@2762
  2777
 1: track1.title:TBlah blah bla
dvander@2762
  2778
 2: track1.title:TBlah blah bl
dvander@2762
  2779
 3: track1.title:TBlah blah b
dvander@2762
  2780
 4: track1.title:TBlah blah 
dvander@2762
  2781
 5: track1.title:TBlah blah
dvander@2762
  2782
 6: track1.title:TBlah bla
dvander@2762
  2783
 7: track1.title:TBlah bl
dvander@2762
  2784
 8: track1.title:TBlah b
dvander@2762
  2785
 9: track1.title:TBlah 
dvander@2762
  2786
10: track1.title:TBlah
dvander@2762
  2787
11: track1.title:TBla
dvander@2762
  2788
12: track1.title:TBl
dvander@2762
  2789
13: track1.title:TB
dvander@2762
  2790
14: track1.title:T
dvander@2762
  2791
dvander@2762
  2792
/([^.]*)\.([^:]*):[t ]+(.*)/i
dvander@2762
  2793
    track1.title:TBlah blah blah
dvander@2762
  2794
 0: track1.title:TBlah blah blah
dvander@2762
  2795
 1: track1.title:TBlah blah bla
dvander@2762
  2796
 2: track1.title:TBlah blah bl
dvander@2762
  2797
 3: track1.title:TBlah blah b
dvander@2762
  2798
 4: track1.title:TBlah blah 
dvander@2762
  2799
 5: track1.title:TBlah blah
dvander@2762
  2800
 6: track1.title:TBlah bla
dvander@2762
  2801
 7: track1.title:TBlah bl
dvander@2762
  2802
 8: track1.title:TBlah b
dvander@2762
  2803
 9: track1.title:TBlah 
dvander@2762
  2804
10: track1.title:TBlah
dvander@2762
  2805
11: track1.title:TBla
dvander@2762
  2806
12: track1.title:TBl
dvander@2762
  2807
13: track1.title:TB
dvander@2762
  2808
14: track1.title:T
dvander@2762
  2809
dvander@2762
  2810
/^[W-c]+$/
dvander@2762
  2811
    WXY_^abc
dvander@2762
  2812
 0: WXY_^abc
dvander@2762
  2813
    *** Failers
dvander@2762
  2814
No match
dvander@2762
  2815
    wxy
dvander@2762
  2816
No match
dvander@2762
  2817
dvander@2762
  2818
/^[W-c]+$/i
dvander@2762
  2819
    WXY_^abc
dvander@2762
  2820
 0: WXY_^abc
dvander@2762
  2821
    wxy_^ABC
dvander@2762
  2822
 0: wxy_^ABC
dvander@2762
  2823
dvander@2762
  2824
/^[\x3f-\x5F]+$/i
dvander@2762
  2825
    WXY_^abc
dvander@2762
  2826
 0: WXY_^abc
dvander@2762
  2827
    wxy_^ABC
dvander@2762
  2828
 0: wxy_^ABC
dvander@2762
  2829
dvander@2762
  2830
/^abc$/m
dvander@2762
  2831
    abc
dvander@2762
  2832
 0: abc
dvander@2762
  2833
    qqq\nabc
dvander@2762
  2834
 0: abc
dvander@2762
  2835
    abc\nzzz
dvander@2762
  2836
 0: abc
dvander@2762
  2837
    qqq\nabc\nzzz
dvander@2762
  2838
 0: abc
dvander@2762
  2839
dvander@2762
  2840
/^abc$/
dvander@2762
  2841
    abc
dvander@2762
  2842
 0: abc
dvander@2762
  2843
    *** Failers
dvander@2762
  2844
No match
dvander@2762
  2845
    qqq\nabc
dvander@2762
  2846
No match
dvander@2762
  2847
    abc\nzzz
dvander@2762
  2848
No match
dvander@2762
  2849
    qqq\nabc\nzzz
dvander@2762
  2850
No match
dvander@2762
  2851
dvander@2762
  2852
/\Aabc\Z/m
dvander@2762
  2853
    abc
dvander@2762
  2854
 0: abc
dvander@2762
  2855
    abc\n 
dvander@2762
  2856
 0: abc
dvander@2762
  2857
    *** Failers
dvander@2762
  2858
No match
dvander@2762
  2859
    qqq\nabc
dvander@2762
  2860
No match
dvander@2762
  2861
    abc\nzzz
dvander@2762
  2862
No match
dvander@2762
  2863
    qqq\nabc\nzzz
dvander@2762
  2864
No match
dvander@2762
  2865
    
dvander@2762
  2866
/\A(.)*\Z/s
dvander@2762
  2867
    abc\ndef
dvander@2762
  2868
 0: abc\x0adef
dvander@2762
  2869
dvander@2762
  2870
/\A(.)*\Z/m
dvander@2762
  2871
    *** Failers
dvander@2762
  2872
 0: *** Failers
dvander@2762
  2873
    abc\ndef
dvander@2762
  2874
No match
dvander@2762
  2875
dvander@2762
  2876
/(?:b)|(?::+)/
dvander@2762
  2877
    b::c
dvander@2762
  2878
 0: b
dvander@2762
  2879
    c::b
dvander@2762
  2880
 0: ::
dvander@2762
  2881
 1: :
dvander@2762
  2882
dvander@2762
  2883
/[-az]+/
dvander@2762
  2884
    az-
dvander@2762
  2885
 0: az-
dvander@2762
  2886
 1: az
dvander@2762
  2887
 2: a
dvander@2762
  2888
    *** Failers
dvander@2762
  2889
 0: a
dvander@2762
  2890
    b
dvander@2762
  2891
No match
dvander@2762
  2892
dvander@2762
  2893
/[az-]+/
dvander@2762
  2894
    za-
dvander@2762
  2895
 0: za-
dvander@2762
  2896
 1: za
dvander@2762
  2897
 2: z
dvander@2762
  2898
    *** Failers
dvander@2762
  2899
 0: a
dvander@2762
  2900
    b
dvander@2762
  2901
No match
dvander@2762
  2902
dvander@2762
  2903
/[a\-z]+/
dvander@2762
  2904
    a-z
dvander@2762
  2905
 0: a-z
dvander@2762
  2906
 1: a-
dvander@2762
  2907
 2: a
dvander@2762
  2908
    *** Failers
dvander@2762
  2909
 0: a
dvander@2762
  2910
    b
dvander@2762
  2911
No match
dvander@2762
  2912
dvander@2762
  2913
/[a-z]+/
dvander@2762
  2914
    abcdxyz
dvander@2762
  2915
 0: abcdxyz
dvander@2762
  2916
 1: abcdxy
dvander@2762
  2917
 2: abcdx
dvander@2762
  2918
 3: abcd
dvander@2762
  2919
 4: abc
dvander@2762
  2920
 5: ab
dvander@2762
  2921
 6: a
dvander@2762
  2922
dvander@2762
  2923
/[\d-]+/
dvander@2762
  2924
    12-34
dvander@2762
  2925
 0: 12-34
dvander@2762
  2926
 1: 12-3
dvander@2762
  2927
 2: 12-
dvander@2762
  2928
 3: 12
dvander@2762
  2929
 4: 1
dvander@2762
  2930
    *** Failers
dvander@2762
  2931
No match
dvander@2762
  2932
    aaa
dvander@2762
  2933
No match
dvander@2762
  2934
dvander@2762
  2935
/[\d-z]+/
dvander@2762
  2936
    12-34z
dvander@2762
  2937
 0: 12-34z
dvander@2762
  2938
 1: 12-34
dvander@2762
  2939
 2: 12-3
dvander@2762
  2940
 3: 12-
dvander@2762
  2941
 4: 12
dvander@2762
  2942
 5: 1
dvander@2762
  2943
    *** Failers
dvander@2762
  2944
No match
dvander@2762
  2945
    aaa
dvander@2762
  2946
No match
dvander@2762
  2947
dvander@2762
  2948
/\x5c/
dvander@2762
  2949
    \\
dvander@2762
  2950
 0: \
dvander@2762
  2951
dvander@2762
  2952
/\x20Z/
dvander@2762
  2953
    the Zoo
dvander@2762
  2954
 0:  Z
dvander@2762
  2955
    *** Failers
dvander@2762
  2956
No match
dvander@2762
  2957
    Zulu
dvander@2762
  2958
No match
dvander@2762
  2959
dvander@2762
  2960
/ab{3cd/
dvander@2762
  2961
    ab{3cd
dvander@2762
  2962
 0: ab{3cd
dvander@2762
  2963
dvander@2762
  2964
/ab{3,cd/
dvander@2762
  2965
    ab{3,cd
dvander@2762
  2966
 0: ab{3,cd
dvander@2762
  2967
dvander@2762
  2968
/ab{3,4a}cd/
dvander@2762
  2969
    ab{3,4a}cd
dvander@2762
  2970
 0: ab{3,4a}cd
dvander@2762
  2971
dvander@2762
  2972
/{4,5a}bc/
dvander@2762
  2973
    {4,5a}bc
dvander@2762
  2974
 0: {4,5a}bc
dvander@2762
  2975
dvander@2762
  2976
/^a.b/<lf>
dvander@2762
  2977
    a\rb
dvander@2762
  2978
 0: a\x0db
dvander@2762
  2979
    *** Failers
dvander@2762
  2980
No match
dvander@2762
  2981
    a\nb
dvander@2762
  2982
No match
dvander@2762
  2983
dvander@2762
  2984
/abc$/
dvander@2762
  2985
    abc
dvander@2762
  2986
 0: abc
dvander@2762
  2987
    abc\n
dvander@2762
  2988
 0: abc
dvander@2762
  2989
    *** Failers
dvander@2762
  2990
No match
dvander@2762
  2991
    abc\ndef
dvander@2762
  2992
No match
dvander@2762
  2993
dvander@2762
  2994
/(abc)\123/
dvander@2762
  2995
    abc\x53
dvander@2762
  2996
 0: abcS
dvander@2762
  2997
dvander@2762
  2998
/(abc)\223/
dvander@2762
  2999
    abc\x93
dvander@2762
  3000
 0: abc\x93
dvander@2762
  3001
dvander@2762
  3002
/(abc)\323/
dvander@2762
  3003
    abc\xd3
dvander@2762
  3004
 0: abc\xd3
dvander@2762
  3005
dvander@2762
  3006
/(abc)\100/
dvander@2762
  3007
    abc\x40
dvander@2762
  3008
 0: abc@
dvander@2762
  3009
    abc\100
dvander@2762
  3010
 0: abc@
dvander@2762
  3011
dvander@2762
  3012
/(abc)\1000/
dvander@2762
  3013
    abc\x400
dvander@2762
  3014
 0: abc@0
dvander@2762
  3015
    abc\x40\x30
dvander@2762
  3016
 0: abc@0
dvander@2762
  3017
    abc\1000
dvander@2762
  3018
 0: abc@0
dvander@2762
  3019
    abc\100\x30
dvander@2762
  3020
 0: abc@0
dvander@2762
  3021
    abc\100\060
dvander@2762
  3022
 0: abc@0
dvander@2762
  3023
    abc\100\60
dvander@2762
  3024
 0: abc@0
dvander@2762
  3025
dvander@2762
  3026
/abc\81/
dvander@2762
  3027
    abc\081
dvander@2762
  3028
 0: abc\x0081
dvander@2762
  3029
    abc\0\x38\x31
dvander@2762
  3030
 0: abc\x0081
dvander@2762
  3031
dvander@2762
  3032
/abc\91/
dvander@2762
  3033
    abc\091
dvander@2762
  3034
 0: abc\x0091
dvander@2762
  3035
    abc\0\x39\x31
dvander@2762
  3036
 0: abc\x0091
dvander@2762
  3037
dvander@2762
  3038
/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
dvander@2762
  3039
    abcdefghijk\12S
dvander@2762
  3040
 0: abcdefghijk\x0aS
dvander@2762
  3041
dvander@2762
  3042
/ab\idef/
dvander@2762
  3043
    abidef
dvander@2762
  3044
 0: abidef
dvander@2762
  3045
dvander@2762
  3046
/a{0}bc/
dvander@2762
  3047
    bc
dvander@2762
  3048
 0: bc
dvander@2762
  3049
dvander@2762
  3050
/(a|(bc)){0,0}?xyz/
dvander@2762
  3051
    xyz
dvander@2762
  3052
 0: xyz
dvander@2762
  3053
dvander@2762
  3054
/abc[\10]de/
dvander@2762
  3055
    abc\010de
dvander@2762
  3056
 0: abc\x08de
dvander@2762
  3057
dvander@2762
  3058
/abc[\1]de/
dvander@2762
  3059
    abc\1de
dvander@2762
  3060
 0: abc\x01de
dvander@2762
  3061
dvander@2762
  3062
/(abc)[\1]de/
dvander@2762
  3063
    abc\1de
dvander@2762
  3064
 0: abc\x01de
dvander@2762
  3065
dvander@2762
  3066
/(?s)a.b/
dvander@2762
  3067
    a\nb
dvander@2762
  3068
 0: a\x0ab
dvander@2762
  3069
dvander@2762
  3070
/^([^a])([^\b])([^c]*)([^d]{3,4})/
dvander@2762
  3071
    baNOTccccd
dvander@2762
  3072
 0: baNOTcccc
dvander@2762
  3073
 1: baNOTccc
dvander@2762
  3074
 2: baNOTcc
dvander@2762
  3075
 3: baNOTc
dvander@2762
  3076
 4: baNOT
dvander@2762
  3077
    baNOTcccd
dvander@2762
  3078
 0: baNOTccc
dvander@2762
  3079
 1: baNOTcc
dvander@2762
  3080
 2: baNOTc
dvander@2762
  3081
 3: baNOT
dvander@2762
  3082
    baNOTccd
dvander@2762
  3083
 0: baNOTcc
dvander@2762
  3084
 1: baNOTc
dvander@2762
  3085
 2: baNOT
dvander@2762
  3086
    bacccd
dvander@2762
  3087
 0: baccc
dvander@2762
  3088
    *** Failers
dvander@2762
  3089
 0: *** Failers
dvander@2762
  3090
 1: *** Failer
dvander@2762
  3091
 2: *** Faile
dvander@2762
  3092
 3: *** Fail
dvander@2762
  3093
 4: *** Fai
dvander@2762
  3094
 5: *** Fa
dvander@2762
  3095
 6: *** F
dvander@2762
  3096
    anything
dvander@2762
  3097
No match
dvander@2762
  3098
    b\bc   
dvander@2762
  3099
No match
dvander@2762
  3100
    baccd
dvander@2762
  3101
No match
dvander@2762
  3102
dvander@2762
  3103
/[^a]/
dvander@2762
  3104
    Abc
dvander@2762
  3105
 0: A
dvander@2762
  3106
  
dvander@2762
  3107
/[^a]/i
dvander@2762
  3108
    Abc 
dvander@2762
  3109
 0: b
dvander@2762
  3110
dvander@2762
  3111
/[^a]+/
dvander@2762
  3112
    AAAaAbc
dvander@2762
  3113
 0: AAA
dvander@2762
  3114
 1: AA
dvander@2762
  3115
 2: A
dvander@2762
  3116
  
dvander@2762
  3117
/[^a]+/i
dvander@2762
  3118
    AAAaAbc 
dvander@2762
  3119
 0: bc
dvander@2762
  3120
 1: b
dvander@2762
  3121
dvander@2762
  3122
/[^a]+/
dvander@2762
  3123
    bbb\nccc
dvander@2762
  3124
 0: bbb\x0accc
dvander@2762
  3125
 1: bbb\x0acc
dvander@2762
  3126
 2: bbb\x0ac
dvander@2762
  3127
 3: bbb\x0a
dvander@2762
  3128
 4: bbb
dvander@2762
  3129
 5: bb
dvander@2762
  3130
 6: b
dvander@2762
  3131
   
dvander@2762
  3132
/[^k]$/
dvander@2762
  3133
    abc
dvander@2762
  3134
 0: c
dvander@2762
  3135
    *** Failers
dvander@2762
  3136
 0: s
dvander@2762
  3137
    abk   
dvander@2762
  3138
No match
dvander@2762
  3139
   
dvander@2762
  3140
/[^k]{2,3}$/
dvander@2762
  3141
    abc
dvander@2762
  3142
 0: abc
dvander@2762
  3143
    kbc
dvander@2762
  3144
 0: bc
dvander@2762
  3145
    kabc 
dvander@2762
  3146
 0: abc
dvander@2762
  3147
    *** Failers
dvander@2762
  3148
 0: ers
dvander@2762
  3149
    abk
dvander@2762
  3150
No match
dvander@2762
  3151
    akb
dvander@2762
  3152
No match
dvander@2762
  3153
    akk 
dvander@2762
  3154
No match
dvander@2762
  3155
dvander@2762
  3156
/^\d{8,}\@.+[^k]$/
dvander@2762
  3157
    12345678\@a.b.c.d
dvander@2762
  3158
 0: [email protected]
dvander@2762
  3159
    123456789\@x.y.z
dvander@2762
  3160
 0: [email protected]
dvander@2762
  3161
    *** Failers
dvander@2762
  3162
No match
dvander@2762
  3163
    12345678\@x.y.uk
dvander@2762
  3164
No match
dvander@2762
  3165
    1234567\@a.b.c.d       
dvander@2762
  3166
No match
dvander@2762
  3167
dvander@2762
  3168
/[^a]/
dvander@2762
  3169
    aaaabcd
dvander@2762
  3170
 0: b
dvander@2762
  3171
    aaAabcd 
dvander@2762
  3172
 0: A
dvander@2762
  3173
dvander@2762
  3174
/[^a]/i
dvander@2762
  3175
    aaaabcd
dvander@2762
  3176
 0: b
dvander@2762
  3177
    aaAabcd 
dvander@2762
  3178
 0: b
dvander@2762
  3179
dvander@2762
  3180
/[^az]/
dvander@2762
  3181
    aaaabcd
dvander@2762
  3182
 0: b
dvander@2762
  3183
    aaAabcd 
dvander@2762
  3184
 0: A
dvander@2762
  3185
dvander@2762
  3186
/[^az]/i
dvander@2762
  3187
    aaaabcd
dvander@2762
  3188
 0: b
dvander@2762
  3189
    aaAabcd 
dvander@2762
  3190
 0: b
dvander@2762
  3191
dvander@2762
  3192
/\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377/
dvander@2762
  3193
 \000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377
dvander@2762
  3194
 0: \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff
dvander@2762
  3195
dvander@2762
  3196
/P[^*]TAIRE[^*]{1,6}?LL/
dvander@2762
  3197
    xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
dvander@2762
  3198
 0: PSTAIREISLL
dvander@2762
  3199
dvander@2762
  3200
/P[^*]TAIRE[^*]{1,}?LL/
dvander@2762
  3201
    xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
dvander@2762
  3202
 0: PSTAIREISLL
dvander@2762
  3203
dvander@2762
  3204
/(\.\d\d[1-9]?)\d+/
dvander@2762
  3205
    1.230003938
dvander@2762
  3206
 0: .230003938
dvander@2762
  3207
 1: .23000393
dvander@2762
  3208
 2: .2300039
dvander@2762
  3209
 3: .230003
dvander@2762
  3210
 4: .23000
dvander@2762
  3211
 5: .2300
dvander@2762
  3212
 6: .230
dvander@2762
  3213
    1.875000282   
dvander@2762
  3214
 0: .875000282
dvander@2762
  3215
 1: .87500028
dvander@2762
  3216
 2: .8750002
dvander@2762
  3217
 3: .875000
dvander@2762
  3218
 4: .87500
dvander@2762
  3219
 5: .8750
dvander@2762
  3220
 6: .875
dvander@2762
  3221
    1.235  
dvander@2762
  3222
 0: .235
dvander@2762
  3223
                  
dvander@2762
  3224
/(\.\d\d((?=0)|\d(?=\d)))/
dvander@2762
  3225
    1.230003938      
dvander@2762
  3226
 0: .230
dvander@2762
  3227
 1: .23
dvander@2762
  3228
    1.875000282
dvander@2762
  3229
 0: .875
dvander@2762
  3230
    *** Failers 
dvander@2762
  3231
No match
dvander@2762
  3232
    1.235 
dvander@2762
  3233
No match
dvander@2762
  3234
    
dvander@2762
  3235
/a(?)b/
dvander@2762
  3236
    ab 
dvander@2762
  3237
 0: ab
dvander@2762
  3238
 
dvander@2762
  3239
/\b(foo)\s+(\w+)/i
dvander@2762
  3240
    Food is on the foo table
dvander@2762
  3241
 0: foo table
dvander@2762
  3242
 1: foo tabl
dvander@2762
  3243
 2: foo tab
dvander@2762
  3244
 3: foo ta
dvander@2762
  3245
 4: foo t
dvander@2762
  3246
    
dvander@2762
  3247
/foo(.*)bar/
dvander@2762
  3248
    The food is under the bar in the barn.
dvander@2762
  3249
 0: food is under the bar in the bar
dvander@2762
  3250
 1: food is under the bar
dvander@2762
  3251
    
dvander@2762
  3252
/foo(.*?)bar/  
dvander@2762
  3253
    The food is under the bar in the barn.
dvander@2762
  3254
 0: food is under the bar in the bar
dvander@2762
  3255
 1: food is under the bar
dvander@2762
  3256
dvander@2762
  3257
/(.*)(\d*)/
dvander@2762
  3258
    I have 2 numbers: 53147
dvander@2762
  3259
Matched, but too many subsidiary matches
dvander@2762
  3260
 0: I have 2 numbers: 53147
dvander@2762
  3261
 1: I have 2 numbers: 5314
dvander@2762
  3262
 2: I have 2 numbers: 531
dvander@2762
  3263
 3: I have 2 numbers: 53
dvander@2762
  3264
 4: I have 2 numbers: 5
dvander@2762
  3265
 5: I have 2 numbers: 
dvander@2762
  3266
 6: I have 2 numbers:
dvander@2762
  3267
 7: I have 2 numbers
dvander@2762
  3268
 8: I have 2 number
dvander@2762
  3269
 9: I have 2 numbe
dvander@2762
  3270
10: I have 2 numb
dvander@2762
  3271
11: I have 2 num
dvander@2762
  3272
12: I have 2 nu
dvander@2762
  3273
13: I have 2 n
dvander@2762
  3274
14: I have 2 
dvander@2762
  3275
15: I have 2
dvander@2762
  3276
16: I have 
dvander@2762
  3277
17: I have
dvander@2762
  3278
18: I hav
dvander@2762
  3279
19: I ha
dvander@2762
  3280
20: I h
dvander@2762
  3281
21: I 
dvander@2762
  3282
    
dvander@2762
  3283
/(.*)(\d+)/
dvander@2762
  3284
    I have 2 numbers: 53147
dvander@2762
  3285
 0: I have 2 numbers: 53147
dvander@2762
  3286
 1: I have 2 numbers: 5314
dvander@2762
  3287
 2: I have 2 numbers: 531
dvander@2762
  3288
 3: I have 2 numbers: 53
dvander@2762
  3289
 4: I have 2 numbers: 5
dvander@2762
  3290
 5: I have 2
dvander@2762
  3291
 
dvander@2762
  3292
/(.*?)(\d*)/
dvander@2762
  3293
    I have 2 numbers: 53147
dvander@2762
  3294
Matched, but too many subsidiary matches
dvander@2762
  3295
 0: I have 2 numbers: 53147
dvander@2762
  3296
 1: I have 2 numbers: 5314
dvander@2762
  3297
 2: I have 2 numbers: 531
dvander@2762
  3298
 3: I have 2 numbers: 53
dvander@2762
  3299
 4: I have 2 numbers: 5
dvander@2762
  3300
 5: I have 2 numbers: 
dvander@2762
  3301
 6: I have 2 numbers:
dvander@2762
  3302
 7: I have 2 numbers
dvander@2762
  3303
 8: I have 2 number
dvander@2762
  3304
 9: I have 2 numbe
dvander@2762
  3305
10: I have 2 numb
dvander@2762
  3306
11: I have 2 num
dvander@2762
  3307
12: I have 2 nu
dvander@2762
  3308
13: I have 2 n
dvander@2762
  3309
14: I have 2 
dvander@2762
  3310
15: I have 2
dvander@2762
  3311
16: I have 
dvander@2762
  3312
17: I have
dvander@2762
  3313
18: I hav
dvander@2762
  3314
19: I ha
dvander@2762
  3315
20: I h
dvander@2762
  3316
21: I 
dvander@2762
  3317
dvander@2762
  3318
/(.*?)(\d+)/
dvander@2762
  3319
    I have 2 numbers: 53147
dvander@2762
  3320
 0: I have 2 numbers: 53147
dvander@2762
  3321
 1: I have 2 numbers: 5314
dvander@2762
  3322
 2: I have 2 numbers: 531
dvander@2762
  3323
 3: I have 2 numbers: 53
dvander@2762
  3324
 4: I have 2 numbers: 5
dvander@2762
  3325
 5: I have 2
dvander@2762
  3326
dvander@2762
  3327
/(.*)(\d+)$/
dvander@2762
  3328
    I have 2 numbers: 53147
dvander@2762
  3329
 0: I have 2 numbers: 53147
dvander@2762
  3330
dvander@2762
  3331
/(.*?)(\d+)$/
dvander@2762
  3332
    I have 2 numbers: 53147
dvander@2762
  3333
 0: I have 2 numbers: 53147
dvander@2762
  3334
dvander@2762
  3335
/(.*)\b(\d+)$/
dvander@2762
  3336
    I have 2 numbers: 53147
dvander@2762
  3337
 0: I have 2 numbers: 53147
dvander@2762
  3338
dvander@2762
  3339
/(.*\D)(\d+)$/
dvander@2762
  3340
    I have 2 numbers: 53147
dvander@2762
  3341
 0: I have 2 numbers: 53147
dvander@2762
  3342
dvander@2762
  3343
/^\D*(?!123)/
dvander@2762
  3344
    ABC123
dvander@2762
  3345
 0: AB
dvander@2762
  3346
 1: A
dvander@2762
  3347
 2: 
dvander@2762
  3348
     
dvander@2762
  3349
/^(\D*)(?=\d)(?!123)/
dvander@2762
  3350
    ABC445
dvander@2762
  3351
 0: ABC
dvander@2762
  3352
    *** Failers
dvander@2762
  3353
No match
dvander@2762
  3354
    ABC123
dvander@2762
  3355
No match
dvander@2762
  3356
    
dvander@2762
  3357
/^[W-]46]/
dvander@2762
  3358
    W46]789 
dvander@2762
  3359
 0: W46]
dvander@2762
  3360
    -46]789
dvander@2762
  3361
 0: -46]
dvander@2762
  3362
    *** Failers
dvander@2762
  3363
No match
dvander@2762
  3364
    Wall
dvander@2762
  3365
No match
dvander@2762
  3366
    Zebra
dvander@2762
  3367
No match
dvander@2762
  3368
    42
dvander@2762
  3369
No match
dvander@2762
  3370
    [abcd] 
dvander@2762
  3371
No match
dvander@2762
  3372
    ]abcd[
dvander@2762
  3373
No match
dvander@2762
  3374
       
dvander@2762
  3375
/^[W-\]46]/
dvander@2762
  3376
    W46]789 
dvander@2762
  3377
 0: W
dvander@2762
  3378
    Wall
dvander@2762
  3379
 0: W
dvander@2762
  3380
    Zebra
dvander@2762
  3381
 0: Z
dvander@2762
  3382
    Xylophone  
dvander@2762
  3383
 0: X
dvander@2762
  3384
    42
dvander@2762
  3385
 0: 4
dvander@2762
  3386
    [abcd] 
dvander@2762
  3387
 0: [
dvander@2762
  3388
    ]abcd[
dvander@2762
  3389
 0: ]
dvander@2762
  3390
    \\backslash 
dvander@2762
  3391
 0: \
dvander@2762
  3392
    *** Failers
dvander@2762
  3393
No match
dvander@2762
  3394
    -46]789
dvander@2762
  3395
No match
dvander@2762
  3396
    well
dvander@2762
  3397
No match
dvander@2762
  3398
    
dvander@2762
  3399
/\d\d\/\d\d\/\d\d\d\d/
dvander@2762
  3400
    01/01/2000
dvander@2762
  3401
 0: 01/01/2000
dvander@2762
  3402
dvander@2762
  3403
/word (?:[a-zA-Z0-9]+ ){0,10}otherword/
dvander@2762
  3404
  word cat dog elephant mussel cow horse canary baboon snake shark otherword
dvander@2762
  3405
 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
dvander@2762
  3406
  word cat dog elephant mussel cow horse canary baboon snake shark
dvander@2762
  3407
No match
dvander@2762
  3408
dvander@2762
  3409
/word (?:[a-zA-Z0-9]+ ){0,300}otherword/
dvander@2762
  3410
  word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope
dvander@2762
  3411
No match
dvander@2762
  3412
dvander@2762
  3413
/^(a){0,0}/
dvander@2762
  3414
    bcd
dvander@2762
  3415
 0: 
dvander@2762
  3416
    abc
dvander@2762
  3417
 0: 
dvander@2762
  3418
    aab     
dvander@2762
  3419
 0: 
dvander@2762
  3420
dvander@2762
  3421
/^(a){0,1}/
dvander@2762
  3422
    bcd
dvander@2762
  3423
 0: 
dvander@2762
  3424
    abc
dvander@2762
  3425
 0: a
dvander@2762
  3426
 1: 
dvander@2762
  3427
    aab  
dvander@2762
  3428
 0: a
dvander@2762
  3429
 1: 
dvander@2762
  3430
dvander@2762
  3431
/^(a){0,2}/
dvander@2762
  3432
    bcd
dvander@2762
  3433
 0: 
dvander@2762
  3434
    abc
dvander@2762
  3435
 0: a
dvander@2762
  3436
 1: 
dvander@2762
  3437
    aab  
dvander@2762
  3438
 0: aa
dvander@2762
  3439
 1: a
dvander@2762
  3440
 2: 
dvander@2762
  3441
dvander@2762
  3442
/^(a){0,3}/
dvander@2762
  3443
    bcd
dvander@2762
  3444
 0: 
dvander@2762
  3445
    abc
dvander@2762
  3446
 0: a
dvander@2762
  3447
 1: 
dvander@2762
  3448
    aab
dvander@2762
  3449
 0: aa
dvander@2762
  3450
 1: a
dvander@2762
  3451
 2: 
dvander@2762
  3452
    aaa   
dvander@2762
  3453
 0: aaa
dvander@2762
  3454
 1: aa
dvander@2762
  3455
 2: a
dvander@2762
  3456
 3: 
dvander@2762
  3457
dvander@2762
  3458
/^(a){0,}/
dvander@2762
  3459
    bcd
dvander@2762
  3460
 0: 
dvander@2762
  3461
    abc
dvander@2762
  3462
 0: a
dvander@2762
  3463
 1: 
dvander@2762
  3464
    aab
dvander@2762
  3465
 0: aa
dvander@2762
  3466
 1: a
dvander@2762
  3467
 2: 
dvander@2762
  3468
    aaa
dvander@2762
  3469
 0: aaa
dvander@2762
  3470
 1: aa
dvander@2762
  3471
 2: a
dvander@2762
  3472
 3: 
dvander@2762
  3473
    aaaaaaaa    
dvander@2762
  3474
 0: aaaaaaaa
dvander@2762
  3475
 1: aaaaaaa
dvander@2762
  3476
 2: aaaaaa
dvander@2762
  3477
 3: aaaaa
dvander@2762
  3478
 4: aaaa
dvander@2762
  3479
 5: aaa
dvander@2762
  3480
 6: aa
dvander@2762
  3481
 7: a
dvander@2762
  3482
 8: 
dvander@2762
  3483
dvander@2762
  3484
/^(a){1,1}/
dvander@2762
  3485
    bcd
dvander@2762
  3486
No match
dvander@2762
  3487
    abc
dvander@2762
  3488
 0: a
dvander@2762
  3489
    aab  
dvander@2762
  3490
 0: a
dvander@2762
  3491
dvander@2762
  3492
/^(a){1,2}/
dvander@2762
  3493
    bcd
dvander@2762
  3494
No match
dvander@2762
  3495
    abc
dvander@2762
  3496
 0: a
dvander@2762
  3497
    aab  
dvander@2762
  3498
 0: aa
dvander@2762
  3499
 1: a
dvander@2762
  3500
dvander@2762
  3501
/^(a){1,3}/
dvander@2762
  3502
    bcd
dvander@2762
  3503
No match
dvander@2762
  3504
    abc
dvander@2762
  3505
 0: a
dvander@2762
  3506
    aab
dvander@2762
  3507
 0: aa
dvander@2762
  3508
 1: a
dvander@2762
  3509
    aaa   
dvander@2762
  3510
 0: aaa
dvander@2762
  3511
 1: aa
dvander@2762
  3512
 2: a
dvander@2762
  3513
dvander@2762
  3514
/^(a){1,}/
dvander@2762
  3515
    bcd
dvander@2762
  3516
No match
dvander@2762
  3517
    abc
dvander@2762
  3518
 0: a
dvander@2762
  3519
    aab
dvander@2762
  3520
 0: aa
dvander@2762
  3521
 1: a
dvander@2762
  3522
    aaa
dvander@2762
  3523
 0: aaa
dvander@2762
  3524
 1: aa
dvander@2762
  3525
 2: a
dvander@2762
  3526
    aaaaaaaa    
dvander@2762
  3527
 0: aaaaaaaa
dvander@2762
  3528
 1: aaaaaaa
dvander@2762
  3529
 2: aaaaaa
dvander@2762
  3530
 3: aaaaa
dvander@2762
  3531
 4: aaaa
dvander@2762
  3532
 5: aaa
dvander@2762
  3533
 6: aa
dvander@2762
  3534
 7: a
dvander@2762
  3535
dvander@2762
  3536
/.*\.gif/
dvander@2762
  3537
    borfle\nbib.gif\nno
dvander@2762
  3538
 0: bib.gif
dvander@2762
  3539
dvander@2762
  3540
/.{0,}\.gif/
dvander@2762
  3541
    borfle\nbib.gif\nno
dvander@2762
  3542
 0: bib.gif
dvander@2762
  3543
dvander@2762
  3544
/.*\.gif/m
dvander@2762
  3545
    borfle\nbib.gif\nno
dvander@2762
  3546
 0: bib.gif
dvander@2762
  3547
dvander@2762
  3548
/.*\.gif/s
dvander@2762
  3549
    borfle\nbib.gif\nno
dvander@2762
  3550
 0: borfle\x0abib.gif
dvander@2762
  3551
dvander@2762
  3552
/.*\.gif/ms
dvander@2762
  3553
    borfle\nbib.gif\nno
dvander@2762
  3554
 0: borfle\x0abib.gif
dvander@2762
  3555
    
dvander@2762
  3556
/.*$/
dvander@2762
  3557
    borfle\nbib.gif\nno
dvander@2762
  3558
 0: no
dvander@2762
  3559
dvander@2762
  3560
/.*$/m
dvander@2762
  3561
    borfle\nbib.gif\nno
dvander@2762
  3562
 0: borfle
dvander@2762
  3563
dvander@2762
  3564
/.*$/s
dvander@2762
  3565
    borfle\nbib.gif\nno
dvander@2762
  3566
 0: borfle\x0abib.gif\x0ano
dvander@2762
  3567
dvander@2762
  3568
/.*$/ms
dvander@2762
  3569
    borfle\nbib.gif\nno
dvander@2762
  3570
 0: borfle\x0abib.gif\x0ano
dvander@2762
  3571
 1: borfle\x0abib.gif
dvander@2762
  3572
 2: borfle
dvander@2762
  3573
    
dvander@2762
  3574
/.*$/
dvander@2762
  3575
    borfle\nbib.gif\nno\n
dvander@2762
  3576
 0: no
dvander@2762
  3577
dvander@2762
  3578
/.*$/m
dvander@2762
  3579
    borfle\nbib.gif\nno\n
dvander@2762
  3580
 0: borfle
dvander@2762
  3581
dvander@2762
  3582
/.*$/s
dvander@2762
  3583
    borfle\nbib.gif\nno\n
dvander@2762
  3584
 0: borfle\x0abib.gif\x0ano\x0a
dvander@2762
  3585
 1: borfle\x0abib.gif\x0ano
dvander@2762
  3586
dvander@2762
  3587
/.*$/ms
dvander@2762
  3588
    borfle\nbib.gif\nno\n
dvander@2762
  3589
 0: borfle\x0abib.gif\x0ano\x0a
dvander@2762
  3590
 1: borfle\x0abib.gif\x0ano
dvander@2762
  3591
 2: borfle\x0abib.gif
dvander@2762
  3592
 3: borfle
dvander@2762
  3593
    
dvander@2762
  3594
/(.*X|^B)/
dvander@2762
  3595
    abcde\n1234Xyz
dvander@2762
  3596
 0: 1234X
dvander@2762
  3597
    BarFoo 
dvander@2762
  3598
 0: B
dvander@2762
  3599
    *** Failers
dvander@2762
  3600
No match
dvander@2762
  3601
    abcde\nBar  
dvander@2762
  3602
No match
dvander@2762
  3603
dvander@2762
  3604
/(.*X|^B)/m
dvander@2762
  3605
    abcde\n1234Xyz
dvander@2762
  3606
 0: 1234X
dvander@2762
  3607
    BarFoo 
dvander@2762
  3608
 0: B
dvander@2762
  3609
    abcde\nBar  
dvander@2762
  3610
 0: B
dvander@2762
  3611
dvander@2762
  3612
/(.*X|^B)/s
dvander@2762
  3613
    abcde\n1234Xyz
dvander@2762
  3614
 0: abcde\x0a1234X
dvander@2762
  3615
    BarFoo 
dvander@2762
  3616
 0: B
dvander@2762
  3617
    *** Failers
dvander@2762
  3618
No match
dvander@2762
  3619
    abcde\nBar  
dvander@2762
  3620
No match
dvander@2762
  3621
dvander@2762
  3622
/(.*X|^B)/ms
dvander@2762
  3623
    abcde\n1234Xyz
dvander@2762
  3624
 0: abcde\x0a1234X
dvander@2762
  3625
    BarFoo 
dvander@2762
  3626
 0: B
dvander@2762
  3627
    abcde\nBar  
dvander@2762
  3628
 0: B
dvander@2762
  3629
dvander@2762
  3630
/(?s)(.*X|^B)/
dvander@2762
  3631
    abcde\n1234Xyz
dvander@2762
  3632
 0: abcde\x0a1234X
dvander@2762
  3633
    BarFoo 
dvander@2762
  3634
 0: B
dvander@2762
  3635
    *** Failers 
dvander@2762
  3636
No match
dvander@2762
  3637
    abcde\nBar  
dvander@2762
  3638
No match
dvander@2762
  3639
dvander@2762
  3640
/(?s:.*X|^B)/
dvander@2762
  3641
    abcde\n1234Xyz
dvander@2762
  3642
 0: abcde\x0a1234X
dvander@2762
  3643
    BarFoo 
dvander@2762
  3644
 0: B
dvander@2762
  3645
    *** Failers 
dvander@2762
  3646
No match
dvander@2762
  3647
    abcde\nBar  
dvander@2762
  3648
No match
dvander@2762
  3649
dvander@2762
  3650
/^.*B/
dvander@2762
  3651
    **** Failers
dvander@2762
  3652
No match
dvander@2762
  3653
    abc\nB
dvander@2762
  3654
No match
dvander@2762
  3655
     
dvander@2762
  3656
/(?s)^.*B/
dvander@2762
  3657
    abc\nB
dvander@2762
  3658
 0: abc\x0aB
dvander@2762
  3659
dvander@2762
  3660
/(?m)^.*B/
dvander@2762
  3661
    abc\nB
dvander@2762
  3662
 0: B
dvander@2762
  3663
     
dvander@2762
  3664
/(?ms)^.*B/
dvander@2762
  3665
    abc\nB
dvander@2762
  3666
 0: abc\x0aB
dvander@2762
  3667
dvander@2762
  3668
/(?ms)^B/
dvander@2762
  3669
    abc\nB
dvander@2762
  3670
 0: B
dvander@2762
  3671
dvander@2762
  3672
/(?s)B$/
dvander@2762
  3673
    B\n
dvander@2762
  3674
 0: B
dvander@2762
  3675
dvander@2762
  3676
/^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
dvander@2762
  3677
    123456654321
dvander@2762
  3678
 0: 123456654321
dvander@2762
  3679
  
dvander@2762
  3680
/^\d\d\d\d\d\d\d\d\d\d\d\d/
dvander@2762
  3681
    123456654321 
dvander@2762
  3682
 0: 123456654321
dvander@2762
  3683
dvander@2762
  3684
/^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
dvander@2762
  3685
    123456654321
dvander@2762
  3686
 0: 123456654321
dvander@2762
  3687
  
dvander@2762
  3688
/^[abc]{12}/
dvander@2762
  3689
    abcabcabcabc
dvander@2762
  3690
 0: abcabcabcabc
dvander@2762
  3691
    
dvander@2762
  3692
/^[a-c]{12}/
dvander@2762
  3693
    abcabcabcabc
dvander@2762
  3694
 0: abcabcabcabc
dvander@2762
  3695
    
dvander@2762
  3696
/^(a|b|c){12}/
dvander@2762
  3697
    abcabcabcabc 
dvander@2762
  3698
 0: abcabcabcabc
dvander@2762
  3699
dvander@2762
  3700
/^[abcdefghijklmnopqrstuvwxy0123456789]/
dvander@2762
  3701
    n
dvander@2762
  3702
 0: n
dvander@2762
  3703
    *** Failers 
dvander@2762
  3704
No match
dvander@2762
  3705
    z 
dvander@2762
  3706
No match
dvander@2762
  3707
dvander@2762
  3708
/abcde{0,0}/
dvander@2762
  3709
    abcd
dvander@2762
  3710
 0: abcd
dvander@2762
  3711
    *** Failers
dvander@2762
  3712
No match
dvander@2762
  3713
    abce  
dvander@2762
  3714
No match
dvander@2762
  3715
dvander@2762
  3716
/ab[cd]{0,0}e/
dvander@2762
  3717
    abe
dvander@2762
  3718
 0: abe
dvander@2762
  3719
    *** Failers
dvander@2762
  3720
No match
dvander@2762
  3721
    abcde 
dvander@2762
  3722
No match
dvander@2762
  3723
    
dvander@2762
  3724
/ab(c){0,0}d/
dvander@2762
  3725
    abd
dvander@2762
  3726
 0: abd
dvander@2762
  3727
    *** Failers
dvander@2762
  3728
No match
dvander@2762
  3729
    abcd   
dvander@2762
  3730
No match
dvander@2762
  3731
dvander@2762
  3732
/a(b*)/
dvander@2762
  3733
    a
dvander@2762
  3734
 0: a
dvander@2762
  3735
    ab
dvander@2762
  3736
 0: ab
dvander@2762
  3737
 1: a
dvander@2762
  3738
    abbbb
dvander@2762
  3739
 0: abbbb
dvander@2762
  3740
 1: abbb
dvander@2762
  3741
 2: abb
dvander@2762
  3742
 3: ab
dvander@2762
  3743
 4: a
dvander@2762
  3744
    *** Failers
dvander@2762
  3745
 0: a
dvander@2762
  3746
    bbbbb    
dvander@2762
  3747
No match
dvander@2762
  3748
    
dvander@2762
  3749
/ab\d{0}e/
dvander@2762
  3750
    abe
dvander@2762
  3751
 0: abe
dvander@2762
  3752
    *** Failers
dvander@2762
  3753
No match
dvander@2762
  3754
    ab1e   
dvander@2762
  3755
No match
dvander@2762
  3756
    
dvander@2762
  3757
/"([^\\"]+|\\.)*"/
dvander@2762
  3758
    the \"quick\" brown fox
dvander@2762
  3759
 0: "quick"
dvander@2762
  3760
    \"the \\\"quick\\\" brown fox\" 
dvander@2762
  3761
 0: "the \"quick\" brown fox"
dvander@2762
  3762
dvander@2762
  3763
/.*?/g+
dvander@2762
  3764
    abc
dvander@2762
  3765
 0: abc
dvander@2762
  3766
 0+ 
dvander@2762
  3767
 1: ab
dvander@2762
  3768
 2: a
dvander@2762
  3769
 3: 
dvander@2762
  3770
 0: 
dvander@2762
  3771
 0+ 
dvander@2762
  3772
  
dvander@2762
  3773
/\b/g+
dvander@2762
  3774
    abc 
dvander@2762
  3775
 0: 
dvander@2762
  3776
 0+ abc
dvander@2762
  3777
 0: 
dvander@2762
  3778
 0+ 
dvander@2762
  3779
dvander@2762
  3780
/\b/+g
dvander@2762
  3781
    abc 
dvander@2762
  3782
 0: 
dvander@2762
  3783
 0+ abc
dvander@2762
  3784
 0: 
dvander@2762
  3785
 0+ 
dvander@2762
  3786
dvander@2762
  3787
//g
dvander@2762
  3788
    abc
dvander@2762
  3789
 0: 
dvander@2762
  3790
 0: 
dvander@2762
  3791
 0: 
dvander@2762
  3792
 0: 
dvander@2762
  3793
dvander@2762
  3794
/<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/is
dvander@2762
  3795
  <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
dvander@2762
  3796
 0: <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
dvander@2762
  3797
dvander@2762
  3798
/a[^a]b/
dvander@2762
  3799
    acb
dvander@2762
  3800
 0: acb
dvander@2762
  3801
    a\nb
dvander@2762
  3802
 0: a\x0ab
dvander@2762
  3803
    
dvander@2762
  3804
/a.b/
dvander@2762
  3805
    acb
dvander@2762
  3806
 0: acb
dvander@2762
  3807
    *** Failers 
dvander@2762
  3808
No match
dvander@2762
  3809
    a\nb   
dvander@2762
  3810
No match
dvander@2762
  3811
    
dvander@2762
  3812
/a[^a]b/s
dvander@2762
  3813
    acb
dvander@2762
  3814
 0: acb
dvander@2762
  3815
    a\nb  
dvander@2762
  3816
 0: a\x0ab
dvander@2762
  3817
    
dvander@2762
  3818
/a.b/s
dvander@2762
  3819
    acb
dvander@2762
  3820
 0: acb
dvander@2762
  3821
    a\nb  
dvander@2762
  3822
 0: a\x0ab
dvander@2762
  3823
dvander@2762
  3824
/^(b+?|a){1,2}?c/
dvander@2762
  3825
    bac
dvander@2762
  3826
 0: bac
dvander@2762
  3827
    bbac
dvander@2762
  3828
 0: bbac
dvander@2762
  3829
    bbbac
dvander@2762
  3830
 0: bbbac
dvander@2762
  3831
    bbbbac
dvander@2762
  3832
 0: bbbbac
dvander@2762
  3833
    bbbbbac 
dvander@2762
  3834
 0: bbbbbac
dvander@2762
  3835
dvander@2762
  3836
/^(b+|a){1,2}?c/
dvander@2762
  3837
    bac
dvander@2762
  3838
 0: bac
dvander@2762
  3839
    bbac
dvander@2762
  3840
 0: bbac
dvander@2762
  3841
    bbbac
dvander@2762
  3842
 0: bbbac
dvander@2762
  3843
    bbbbac
dvander@2762
  3844
 0: bbbbac
dvander@2762
  3845
    bbbbbac 
dvander@2762
  3846
 0: bbbbbac
dvander@2762
  3847
    
dvander@2762
  3848
/(?!\A)x/m
dvander@2762
  3849
    x\nb\n
dvander@2762
  3850
No match
dvander@2762
  3851
    a\bx\n  
dvander@2762
  3852
 0: x
dvander@2762
  3853
    
dvander@2762
  3854
/\x0{ab}/
dvander@2762
  3855
    \0{ab} 
dvander@2762
  3856
 0: \x00{ab}
dvander@2762
  3857
dvander@2762
  3858
/(A|B)*?CD/
dvander@2762
  3859
    CD 
dvander@2762
  3860
 0: CD
dvander@2762
  3861
    
dvander@2762
  3862
/(A|B)*CD/
dvander@2762
  3863
    CD 
dvander@2762
  3864
 0: CD
dvander@2762
  3865
dvander@2762
  3866
/(?<!bar)foo/
dvander@2762
  3867
    foo
dvander@2762
  3868
 0: foo
dvander@2762
  3869
    catfood
dvander@2762
  3870
 0: foo
dvander@2762
  3871
    arfootle
dvander@2762
  3872
 0: foo
dvander@2762
  3873
    rfoosh
dvander@2762
  3874
 0: foo
dvander@2762
  3875
    *** Failers
dvander@2762
  3876
No match
dvander@2762
  3877
    barfoo
dvander@2762
  3878
No match
dvander@2762
  3879
    towbarfoo
dvander@2762
  3880
No match
dvander@2762
  3881
dvander@2762
  3882
/\w{3}(?<!bar)foo/
dvander@2762
  3883
    catfood
dvander@2762
  3884
 0: catfoo
dvander@2762
  3885
    *** Failers
dvander@2762
  3886
No match
dvander@2762
  3887
    foo
dvander@2762
  3888
No match
dvander@2762
  3889
    barfoo
dvander@2762
  3890
No match
dvander@2762
  3891
    towbarfoo
dvander@2762
  3892
No match
dvander@2762
  3893
dvander@2762
  3894
/(?<=(foo)a)bar/
dvander@2762
  3895
    fooabar
dvander@2762
  3896
 0: bar
dvander@2762
  3897
    *** Failers
dvander@2762
  3898
No match
dvander@2762
  3899
    bar
dvander@2762
  3900
No match
dvander@2762
  3901
    foobbar
dvander@2762
  3902
No match
dvander@2762
  3903
      
dvander@2762
  3904
/\Aabc\z/m
dvander@2762
  3905
    abc
dvander@2762
  3906
 0: abc
dvander@2762
  3907
    *** Failers
dvander@2762
  3908
No match
dvander@2762
  3909
    abc\n   
dvander@2762
  3910
No match
dvander@2762
  3911
    qqq\nabc
dvander@2762
  3912
No match
dvander@2762
  3913
    abc\nzzz
dvander@2762
  3914
No match
dvander@2762
  3915
    qqq\nabc\nzzz
dvander@2762
  3916
No match
dvander@2762
  3917
dvander@2762
  3918
"(?>.*/)foo"
dvander@2762
  3919
    /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
dvander@2762
  3920
No match
dvander@2762
  3921
dvander@2762
  3922
"(?>.*/)foo"
dvander@2762
  3923
    /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
dvander@2762
  3924
 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
dvander@2762
  3925
dvander@2762
  3926
/(?>(\.\d\d[1-9]?))\d+/
dvander@2762
  3927
    1.230003938
dvander@2762
  3928
 0: .230003938
dvander@2762
  3929
 1: .23000393
dvander@2762
  3930
 2: .2300039
dvander@2762
  3931
 3: .230003
dvander@2762
  3932
 4: .23000
dvander@2762
  3933
 5: .2300
dvander@2762
  3934
 6: .230
dvander@2762
  3935
    1.875000282
dvander@2762
  3936
 0: .875000282
dvander@2762
  3937
 1: .87500028
dvander@2762
  3938
 2: .8750002
dvander@2762
  3939
 3: .875000
dvander@2762
  3940
 4: .87500
dvander@2762
  3941
 5: .8750
dvander@2762
  3942
    *** Failers 
dvander@2762
  3943
No match
dvander@2762
  3944
    1.235 
dvander@2762
  3945
No match
dvander@2762
  3946
dvander@2762
  3947
/^((?>\w+)|(?>\s+))*$/
dvander@2762
  3948
    now is the time for all good men to come to the aid of the party
dvander@2762
  3949
 0: now is the time for all good men to come to the aid of the party
dvander@2762
  3950
    *** Failers
dvander@2762
  3951
No match
dvander@2762
  3952
    this is not a line with only words and spaces!
dvander@2762
  3953
No match
dvander@2762
  3954
    
dvander@2762
  3955
/(\d+)(\w)/
dvander@2762
  3956
    12345a
dvander@2762
  3957
 0: 12345a
dvander@2762
  3958
 1: 12345
dvander@2762
  3959
 2: 1234
dvander@2762
  3960
 3: 123
dvander@2762
  3961
 4: 12
dvander@2762
  3962
    12345+ 
dvander@2762
  3963
 0: 12345
dvander@2762
  3964
 1: 1234
dvander@2762
  3965
 2: 123
dvander@2762
  3966
 3: 12
dvander@2762
  3967
dvander@2762
  3968
/((?>\d+))(\w)/
dvander@2762
  3969
    12345a
dvander@2762
  3970
 0: 12345a
dvander@2762
  3971
    *** Failers
dvander@2762
  3972
No match
dvander@2762
  3973
    12345+ 
dvander@2762
  3974
No match
dvander@2762
  3975
dvander@2762
  3976
/(?>a+)b/
dvander@2762
  3977
    aaab
dvander@2762
  3978
 0: aaab
dvander@2762
  3979
dvander@2762
  3980
/((?>a+)b)/
dvander@2762
  3981
    aaab
dvander@2762
  3982
 0: aaab
dvander@2762
  3983
dvander@2762
  3984
/(?>(a+))b/
dvander@2762
  3985
    aaab
dvander@2762
  3986
 0: aaab
dvander@2762
  3987
dvander@2762
  3988
/(?>b)+/
dvander@2762
  3989
    aaabbbccc
dvander@2762
  3990
 0: bbb
dvander@2762
  3991
 1: bb
dvander@2762
  3992
 2: b
dvander@2762
  3993
dvander@2762
  3994
/(?>a+|b+|c+)*c/
dvander@2762
  3995
    aaabbbbccccd
dvander@2762
  3996
 0: aaabbbbcccc
dvander@2762
  3997
 1: aaabbbbc
dvander@2762
  3998
    
dvander@2762
  3999
/(a+|b+|c+)*c/
dvander@2762
  4000
    aaabbbbccccd
dvander@2762
  4001
 0: aaabbbbcccc
dvander@2762
  4002
 1: aaabbbbccc
dvander@2762
  4003
 2: aaabbbbcc
dvander@2762
  4004
 3: aaabbbbc
dvander@2762
  4005
dvander@2762
  4006
/((?>[^()]+)|\([^()]*\))+/
dvander@2762
  4007
    ((abc(ade)ufh()()x
dvander@2762
  4008
 0: abc(ade)ufh()()x
dvander@2762
  4009
 1: abc(ade)ufh()()
dvander@2762
  4010
 2: abc(ade)ufh()
dvander@2762
  4011
 3: abc(ade)ufh
dvander@2762
  4012
 4: abc(ade)
dvander@2762
  4013
 5: abc
dvander@2762
  4014
    
dvander@2762
  4015
/\(((?>[^()]+)|\([^()]+\))+\)/ 
dvander@2762
  4016
    (abc)
dvander@2762
  4017
 0: (abc)
dvander@2762
  4018
    (abc(def)xyz)
dvander@2762
  4019
 0: (abc(def)xyz)
dvander@2762
  4020
    *** Failers
dvander@2762
  4021
No match
dvander@2762
  4022
    ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   
dvander@2762
  4023
No match
dvander@2762
  4024
dvander@2762
  4025
/a(?-i)b/i
dvander@2762
  4026
    ab
dvander@2762
  4027
 0: ab
dvander@2762
  4028
    Ab
dvander@2762
  4029
 0: Ab
dvander@2762
  4030
    *** Failers 
dvander@2762
  4031
No match
dvander@2762
  4032
    aB
dvander@2762
  4033
No match
dvander@2762
  4034
    AB
dvander@2762
  4035
No match
dvander@2762
  4036
        
dvander@2762
  4037
/(a (?x)b c)d e/
dvander@2762
  4038
    a bcd e
dvander@2762
  4039
 0: a bcd e
dvander@2762
  4040
    *** Failers
dvander@2762
  4041
No match
dvander@2762
  4042
    a b cd e
dvander@2762
  4043
No match
dvander@2762
  4044
    abcd e   
dvander@2762
  4045
No match
dvander@2762
  4046
    a bcde 
dvander@2762
  4047
No match
dvander@2762
  4048
 
dvander@2762
  4049
/(a b(?x)c d (?-x)e f)/
dvander@2762
  4050
    a bcde f
dvander@2762
  4051
 0: a bcde f
dvander@2762
  4052
    *** Failers
dvander@2762
  4053
No match
dvander@2762
  4054
    abcdef  
dvander@2762
  4055
No match
dvander@2762
  4056
dvander@2762
  4057
/(a(?i)b)c/
dvander@2762
  4058
    abc
dvander@2762
  4059
 0: abc
dvander@2762
  4060
    aBc
dvander@2762
  4061
 0: aBc
dvander@2762
  4062
    *** Failers
dvander@2762
  4063
No match
dvander@2762
  4064
    abC
dvander@2762
  4065
No match
dvander@2762
  4066
    aBC  
dvander@2762
  4067
No match
dvander@2762
  4068
    Abc
dvander@2762
  4069
No match
dvander@2762
  4070
    ABc
dvander@2762
  4071
No match
dvander@2762
  4072
    ABC
dvander@2762
  4073
No match
dvander@2762
  4074
    AbC
dvander@2762
  4075
No match
dvander@2762
  4076
    
dvander@2762
  4077
/a(?i:b)c/
dvander@2762
  4078
    abc
dvander@2762
  4079
 0: abc
dvander@2762
  4080
    aBc
dvander@2762
  4081
 0: aBc
dvander@2762
  4082
    *** Failers 
dvander@2762
  4083
No match
dvander@2762
  4084
    ABC
dvander@2762
  4085
No match
dvander@2762
  4086
    abC
dvander@2762
  4087
No match
dvander@2762
  4088
    aBC
dvander@2762
  4089
No match
dvander@2762
  4090
    
dvander@2762
  4091
/a(?i:b)*c/
dvander@2762
  4092
    aBc
dvander@2762
  4093
 0: aBc
dvander@2762
  4094
    aBBc
dvander@2762
  4095
 0: aBBc
dvander@2762
  4096
    *** Failers 
dvander@2762
  4097
No match
dvander@2762
  4098
    aBC
dvander@2762
  4099
No match
dvander@2762
  4100
    aBBC
dvander@2762
  4101
No match
dvander@2762
  4102
    
dvander@2762
  4103
/a(?=b(?i)c)\w\wd/
dvander@2762
  4104
    abcd
dvander@2762
  4105
 0: abcd
dvander@2762
  4106
    abCd
dvander@2762
  4107
 0: abCd
dvander@2762
  4108
    *** Failers
dvander@2762
  4109
No match
dvander@2762
  4110
    aBCd
dvander@2762
  4111
No match
dvander@2762
  4112
    abcD     
dvander@2762
  4113
No match
dvander@2762
  4114
    
dvander@2762
  4115
/(?s-i:more.*than).*million/i
dvander@2762
  4116
    more than million
dvander@2762
  4117
 0: more than million
dvander@2762
  4118
    more than MILLION
dvander@2762
  4119
 0: more than MILLION
dvander@2762
  4120
    more \n than Million 
dvander@2762
  4121
 0: more \x0a than Million
dvander@2762
  4122
    *** Failers
dvander@2762
  4123
No match
dvander@2762
  4124
    MORE THAN MILLION    
dvander@2762
  4125
No match
dvander@2762
  4126
    more \n than \n million 
dvander@2762
  4127
No match
dvander@2762
  4128
dvander@2762
  4129
/(?:(?s-i)more.*than).*million/i
dvander@2762
  4130
    more than million
dvander@2762
  4131
 0: more than million
dvander@2762
  4132
    more than MILLION
dvander@2762
  4133
 0: more than MILLION
dvander@2762
  4134
    more \n than Million 
dvander@2762
  4135
 0: more \x0a than Million
dvander@2762
  4136
    *** Failers
dvander@2762
  4137
No match
dvander@2762
  4138
    MORE THAN MILLION    
dvander@2762
  4139
No match
dvander@2762
  4140
    more \n than \n million 
dvander@2762
  4141
No match
dvander@2762
  4142
    
dvander@2762
  4143
/(?>a(?i)b+)+c/ 
dvander@2762
  4144
    abc
dvander@2762
  4145
 0: abc
dvander@2762
  4146
    aBbc
dvander@2762
  4147
 0: aBbc
dvander@2762
  4148
    aBBc 
dvander@2762
  4149
 0: aBBc
dvander@2762
  4150
    *** Failers
dvander@2762
  4151
No match
dvander@2762
  4152
    Abc
dvander@2762
  4153
No match
dvander@2762
  4154
    abAb    
dvander@2762
  4155
No match
dvander@2762
  4156
    abbC 
dvander@2762
  4157
No match
dvander@2762
  4158
    
dvander@2762
  4159
/(?=a(?i)b)\w\wc/
dvander@2762
  4160
    abc
dvander@2762
  4161
 0: abc
dvander@2762
  4162
    aBc
dvander@2762
  4163
 0: aBc
dvander@2762
  4164
    *** Failers
dvander@2762
  4165
No match
dvander@2762
  4166
    Ab 
dvander@2762
  4167
No match
dvander@2762
  4168
    abC
dvander@2762
  4169
No match
dvander@2762
  4170
    aBC     
dvander@2762
  4171
No match
dvander@2762
  4172
    
dvander@2762
  4173
/(?<=a(?i)b)(\w\w)c/
dvander@2762
  4174
    abxxc
dvander@2762
  4175
 0: xxc
dvander@2762
  4176
    aBxxc
dvander@2762
  4177
 0: xxc
dvander@2762
  4178
    *** Failers
dvander@2762
  4179
No match
dvander@2762
  4180
    Abxxc
dvander@2762
  4181
No match
dvander@2762
  4182
    ABxxc
dvander@2762
  4183
No match
dvander@2762
  4184
    abxxC      
dvander@2762
  4185
No match
dvander@2762
  4186
dvander@2762
  4187
/^(?(?=abc)\w{3}:|\d\d)$/
dvander@2762
  4188
    abc:
dvander@2762
  4189
 0: abc:
dvander@2762
  4190
    12
dvander@2762
  4191
 0: 12
dvander@2762
  4192
    *** Failers
dvander@2762
  4193
No match
dvander@2762
  4194
    123
dvander@2762
  4195
No match
dvander@2762
  4196
    xyz    
dvander@2762
  4197
No match
dvander@2762
  4198
dvander@2762
  4199
/^(?(?!abc)\d\d|\w{3}:)$/
dvander@2762
  4200
    abc:
dvander@2762
  4201
 0: abc:
dvander@2762
  4202
    12
dvander@2762
  4203
 0: 12
dvander@2762
  4204
    *** Failers
dvander@2762
  4205
No match
dvander@2762
  4206
    123
dvander@2762
  4207
No match
dvander@2762
  4208
    xyz    
dvander@2762
  4209
No match
dvander@2762
  4210
    
dvander@2762
  4211
/(?(?<=foo)bar|cat)/
dvander@2762
  4212
    foobar
dvander@2762
  4213
 0: bar
dvander@2762
  4214
    cat
dvander@2762
  4215
 0: cat
dvander@2762
  4216
    fcat
dvander@2762
  4217
 0: cat
dvander@2762
  4218
    focat   
dvander@2762
  4219
 0: cat
dvander@2762
  4220
    *** Failers
dvander@2762
  4221
No match
dvander@2762
  4222
    foocat  
dvander@2762
  4223
No match
dvander@2762
  4224
dvander@2762
  4225
/(?(?<!foo)cat|bar)/
dvander@2762
  4226
    foobar
dvander@2762
  4227
 0: bar
dvander@2762
  4228
    cat
dvander@2762
  4229
 0: cat
dvander@2762
  4230
    fcat
dvander@2762
  4231
 0: cat
dvander@2762
  4232
    focat   
dvander@2762
  4233
 0: cat
dvander@2762
  4234
    *** Failers
dvander@2762
  4235
No match
dvander@2762
  4236
    foocat  
dvander@2762
  4237
No match
dvander@2762
  4238
dvander@2762
  4239
/(?>a*)*/
dvander@2762
  4240
    a
dvander@2762
  4241
 0: a
dvander@2762
  4242
 1: 
dvander@2762
  4243
    aa
dvander@2762
  4244
 0: aa
dvander@2762
  4245
 1: 
dvander@2762
  4246
    aaaa
dvander@2762
  4247
 0: aaaa
dvander@2762
  4248
 1: 
dvander@2762
  4249
    
dvander@2762
  4250
/(abc|)+/
dvander@2762
  4251
    abc
dvander@2762
  4252
 0: abc
dvander@2762
  4253
 1: 
dvander@2762
  4254
    abcabc
dvander@2762
  4255
 0: abcabc
dvander@2762
  4256
 1: abc
dvander@2762
  4257
 2: 
dvander@2762
  4258
    abcabcabc
dvander@2762
  4259
 0: abcabcabc
dvander@2762
  4260
 1: abcabc
dvander@2762
  4261
 2: abc
dvander@2762
  4262
 3: 
dvander@2762
  4263
    xyz      
dvander@2762
  4264
 0: 
dvander@2762
  4265
dvander@2762
  4266
/([a]*)*/
dvander@2762
  4267
    a
dvander@2762
  4268
 0: a
dvander@2762
  4269
 1: 
dvander@2762
  4270
    aaaaa 
dvander@2762
  4271
 0: aaaaa
dvander@2762
  4272
 1: aaaa
dvander@2762
  4273
 2: aaa
dvander@2762
  4274
 3: aa
dvander@2762
  4275
 4: a
dvander@2762
  4276
 5: 
dvander@2762
  4277
 
dvander@2762
  4278
/([ab]*)*/
dvander@2762
  4279
    a
dvander@2762
  4280
 0: a
dvander@2762
  4281
 1: 
dvander@2762
  4282
    b
dvander@2762
  4283
 0: b
dvander@2762
  4284
 1: 
dvander@2762
  4285
    ababab
dvander@2762
  4286
 0: ababab
dvander@2762
  4287
 1: ababa
dvander@2762
  4288
 2: abab
dvander@2762
  4289
 3: aba
dvander@2762
  4290
 4: ab
dvander@2762
  4291
 5: a
dvander@2762
  4292
 6: 
dvander@2762
  4293
    aaaabcde
dvander@2762
  4294
 0: aaaab
dvander@2762
  4295
 1: aaaa
dvander@2762
  4296
 2: aaa
dvander@2762
  4297
 3: aa
dvander@2762
  4298
 4: a
dvander@2762
  4299
 5: 
dvander@2762
  4300
    bbbb    
dvander@2762
  4301
 0: bbbb
dvander@2762
  4302
 1: bbb
dvander@2762
  4303
 2: bb
dvander@2762
  4304
 3: b
dvander@2762
  4305
 4: 
dvander@2762
  4306
 
dvander@2762
  4307
/([^a]*)*/
dvander@2762
  4308
    b
dvander@2762
  4309
 0: b
dvander@2762
  4310
 1: 
dvander@2762
  4311
    bbbb
dvander@2762
  4312
 0: bbbb
dvander@2762
  4313
 1: bbb
dvander@2762
  4314
 2: bb
dvander@2762
  4315
 3: b
dvander@2762
  4316
 4: 
dvander@2762
  4317
    aaa   
dvander@2762
  4318
 0: 
dvander@2762
  4319
 
dvander@2762
  4320
/([^ab]*)*/
dvander@2762
  4321
    cccc
dvander@2762
  4322
 0: cccc
dvander@2762
  4323
 1: ccc
dvander@2762
  4324
 2: cc
dvander@2762
  4325
 3: c
dvander@2762
  4326
 4: 
dvander@2762
  4327
    abab  
dvander@2762
  4328
 0: 
dvander@2762
  4329
 
dvander@2762
  4330
/([a]*?)*/
dvander@2762
  4331
    a
dvander@2762
  4332
 0: a
dvander@2762
  4333
 1: 
dvander@2762
  4334
    aaaa 
dvander@2762
  4335
 0: aaaa
dvander@2762
  4336
 1: aaa
dvander@2762
  4337
 2: aa
dvander@2762
  4338
 3: a
dvander@2762
  4339
 4: 
dvander@2762
  4340
 
dvander@2762
  4341
/([ab]*?)*/
dvander@2762
  4342
    a
dvander@2762
  4343
 0: a
dvander@2762
  4344
 1: 
dvander@2762
  4345
    b
dvander@2762
  4346
 0: b
dvander@2762
  4347
 1: 
dvander@2762
  4348
    abab
dvander@2762
  4349
 0: abab
dvander@2762
  4350
 1: aba
dvander@2762
  4351
 2: ab
dvander@2762
  4352
 3: a
dvander@2762
  4353
 4: 
dvander@2762
  4354
    baba   
dvander@2762
  4355
 0: baba
dvander@2762
  4356
 1: bab
dvander@2762
  4357
 2: ba
dvander@2762
  4358
 3: b
dvander@2762
  4359
 4: 
dvander@2762
  4360
 
dvander@2762
  4361
/([^a]*?)*/
dvander@2762
  4362
    b
dvander@2762
  4363
 0: b
dvander@2762
  4364
 1: 
dvander@2762
  4365
    bbbb
dvander@2762
  4366
 0: bbbb
dvander@2762
  4367
 1: bbb
dvander@2762
  4368
 2: bb
dvander@2762
  4369
 3: b
dvander@2762
  4370
 4: 
dvander@2762
  4371
    aaa   
dvander@2762
  4372
 0: 
dvander@2762
  4373
 
dvander@2762
  4374
/([^ab]*?)*/
dvander@2762
  4375
    c
dvander@2762
  4376
 0: c
dvander@2762
  4377
 1: 
dvander@2762
  4378
    cccc
dvander@2762
  4379
 0: cccc
dvander@2762
  4380
 1: ccc
dvander@2762
  4381
 2: cc
dvander@2762
  4382
 3: c
dvander@2762
  4383
 4: 
dvander@2762
  4384
    baba   
dvander@2762
  4385
 0: 
dvander@2762
  4386
 
dvander@2762
  4387
/(?>a*)*/
dvander@2762
  4388
    a
dvander@2762
  4389
 0: a
dvander@2762
  4390
 1: 
dvander@2762
  4391
    aaabcde 
dvander@2762
  4392
 0: aaa
dvander@2762
  4393
 1: 
dvander@2762
  4394
 
dvander@2762
  4395
/((?>a*))*/
dvander@2762
  4396
    aaaaa
dvander@2762
  4397
 0: aaaaa
dvander@2762
  4398
 1: 
dvander@2762
  4399
    aabbaa 
dvander@2762
  4400
 0: aa
dvander@2762
  4401
 1: 
dvander@2762
  4402
 
dvander@2762
  4403
/((?>a*?))*/
dvander@2762
  4404
    aaaaa
dvander@2762
  4405
 0: aaaaa
dvander@2762
  4406
 1: 
dvander@2762
  4407
    aabbaa 
dvander@2762
  4408
 0: aa
dvander@2762
  4409
 1: 
dvander@2762
  4410
dvander@2762
  4411
/(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x
dvander@2762
  4412
    12-sep-98
dvander@2762
  4413
 0: 12-sep-98
dvander@2762
  4414
    12-09-98
dvander@2762
  4415
 0: 12-09-98
dvander@2762
  4416
    *** Failers
dvander@2762
  4417
No match
dvander@2762
  4418
    sep-12-98
dvander@2762
  4419
No match
dvander@2762
  4420
        
dvander@2762
  4421
/(?i:saturday|sunday)/
dvander@2762
  4422
    saturday
dvander@2762
  4423
 0: saturday
dvander@2762
  4424
    sunday
dvander@2762
  4425
 0: sunday
dvander@2762
  4426
    Saturday
dvander@2762
  4427
 0: Saturday
dvander@2762
  4428
    Sunday
dvander@2762
  4429
 0: Sunday
dvander@2762
  4430
    SATURDAY
dvander@2762
  4431
 0: SATURDAY
dvander@2762
  4432
    SUNDAY
dvander@2762
  4433
 0: SUNDAY
dvander@2762
  4434
    SunDay
dvander@2762
  4435
 0: SunDay
dvander@2762
  4436
    
dvander@2762
  4437
/(a(?i)bc|BB)x/
dvander@2762
  4438
    abcx
dvander@2762
  4439
 0: abcx
dvander@2762
  4440
    aBCx
dvander@2762
  4441
 0: aBCx
dvander@2762
  4442
    bbx
dvander@2762
  4443
 0: bbx
dvander@2762
  4444
    BBx
dvander@2762
  4445
 0: BBx
dvander@2762
  4446
    *** Failers
dvander@2762
  4447
No match
dvander@2762
  4448
    abcX
dvander@2762
  4449
No match
dvander@2762
  4450
    aBCX
dvander@2762
  4451
No match
dvander@2762
  4452
    bbX
dvander@2762
  4453
No match
dvander@2762
  4454
    BBX               
dvander@2762
  4455
No match
dvander@2762
  4456
dvander@2762
  4457
/^([ab](?i)[cd]|[ef])/
dvander@2762
  4458
    ac
dvander@2762
  4459
 0: ac
dvander@2762
  4460
    aC
dvander@2762
  4461
 0: aC
dvander@2762
  4462
    bD
dvander@2762
  4463
 0: bD
dvander@2762
  4464
    elephant
dvander@2762
  4465
 0: e
dvander@2762
  4466
    Europe 
dvander@2762
  4467
 0: E
dvander@2762
  4468
    frog
dvander@2762
  4469
 0: f
dvander@2762
  4470
    France
dvander@2762
  4471
 0: F
dvander@2762
  4472
    *** Failers
dvander@2762
  4473
No match
dvander@2762
  4474
    Africa     
dvander@2762
  4475
No match
dvander@2762
  4476
dvander@2762
  4477
/^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
dvander@2762
  4478
    ab
dvander@2762
  4479
 0: ab
dvander@2762
  4480
    aBd
dvander@2762
  4481
 0: aBd
dvander@2762
  4482
    xy
dvander@2762
  4483
 0: xy
dvander@2762
  4484
    xY
dvander@2762
  4485
 0: xY
dvander@2762
  4486
    zebra
dvander@2762
  4487
 0: z
dvander@2762
  4488
    Zambesi
dvander@2762
  4489
 0: Z
dvander@2762
  4490
    *** Failers
dvander@2762
  4491
No match
dvander@2762
  4492
    aCD  
dvander@2762
  4493
No match
dvander@2762
  4494
    XY  
dvander@2762
  4495
No match
dvander@2762
  4496
dvander@2762
  4497
/(?<=foo\n)^bar/m
dvander@2762
  4498
    foo\nbar
dvander@2762
  4499
 0: bar
dvander@2762
  4500
    *** Failers
dvander@2762
  4501
No match
dvander@2762
  4502
    bar
dvander@2762
  4503
No match
dvander@2762
  4504
    baz\nbar   
dvander@2762
  4505
No match
dvander@2762
  4506
dvander@2762
  4507
/(?<=(?<!foo)bar)baz/
dvander@2762
  4508
    barbaz
dvander@2762
  4509
 0: baz
dvander@2762
  4510
    barbarbaz 
dvander@2762
  4511
 0: baz
dvander@2762
  4512
    koobarbaz 
dvander@2762
  4513
 0: baz
dvander@2762
  4514
    *** Failers
dvander@2762
  4515
No match
dvander@2762
  4516
    baz
dvander@2762
  4517
No match
dvander@2762
  4518
    foobarbaz 
dvander@2762
  4519
No match
dvander@2762
  4520
dvander@2762
  4521
/The following tests are taken from the Perl 5.005 test suite; some of them/
dvander@2762
  4522
/are compatible with 5.004, but I'd rather not have to sort them out./
dvander@2762
  4523
No match
dvander@2762
  4524
dvander@2762
  4525
/abc/
dvander@2762
  4526
    abc
dvander@2762
  4527
 0: abc
dvander@2762
  4528
    xabcy
dvander@2762
  4529
 0: abc
dvander@2762
  4530
    ababc
dvander@2762
  4531
 0: abc
dvander@2762
  4532
    *** Failers
dvander@2762
  4533
No match
dvander@2762
  4534
    xbc
dvander@2762
  4535
No match
dvander@2762
  4536
    axc
dvander@2762
  4537
No match
dvander@2762
  4538
    abx
dvander@2762
  4539
No match
dvander@2762
  4540
dvander@2762
  4541
/ab*c/
dvander@2762
  4542
    abc
dvander@2762
  4543
 0: abc
dvander@2762
  4544
dvander@2762
  4545
/ab*bc/
dvander@2762
  4546
    abc
dvander@2762
  4547
 0: abc
dvander@2762
  4548
    abbc
dvander@2762
  4549
 0: abbc
dvander@2762
  4550
    abbbbc
dvander@2762
  4551
 0: abbbbc
dvander@2762
  4552
dvander@2762
  4553
/.{1}/
dvander@2762
  4554
    abbbbc
dvander@2762
  4555
 0: a
dvander@2762
  4556
dvander@2762
  4557
/.{3,4}/
dvander@2762
  4558
    abbbbc
dvander@2762
  4559
 0: abbb
dvander@2762
  4560
 1: abb
dvander@2762
  4561
dvander@2762
  4562
/ab{0,}bc/
dvander@2762
  4563
    abbbbc
dvander@2762
  4564
 0: abbbbc
dvander@2762
  4565
dvander@2762
  4566
/ab+bc/
dvander@2762
  4567
    abbc
dvander@2762
  4568
 0: abbc
dvander@2762
  4569
    *** Failers
dvander@2762
  4570
No match
dvander@2762
  4571
    abc
dvander@2762
  4572
No match
dvander@2762
  4573
    abq
dvander@2762
  4574
No match
dvander@2762
  4575
dvander@2762
  4576
/ab+bc/
dvander@2762
  4577
    abbbbc
dvander@2762
  4578
 0: abbbbc
dvander@2762
  4579
dvander@2762
  4580
/ab{1,}bc/
dvander@2762
  4581
    abbbbc
dvander@2762
  4582
 0: abbbbc
dvander@2762
  4583
dvander@2762
  4584
/ab{1,3}bc/
dvander@2762
  4585
    abbbbc
dvander@2762
  4586
 0: abbbbc
dvander@2762
  4587
dvander@2762
  4588
/ab{3,4}bc/
dvander@2762
  4589
    abbbbc
dvander@2762
  4590
 0: abbbbc
dvander@2762
  4591
dvander@2762
  4592
/ab{4,5}bc/
dvander@2762
  4593
    *** Failers
dvander@2762
  4594
No match
dvander@2762
  4595
    abq
dvander@2762
  4596
No match
dvander@2762
  4597
    abbbbc
dvander@2762
  4598
No match
dvander@2762
  4599
dvander@2762
  4600
/ab?bc/
dvander@2762
  4601
    abbc
dvander@2762
  4602
 0: abbc
dvander@2762
  4603
    abc
dvander@2762
  4604
 0: abc
dvander@2762
  4605
dvander@2762
  4606
/ab{0,1}bc/
dvander@2762
  4607
    abc
dvander@2762
  4608
 0: abc
dvander@2762
  4609
dvander@2762
  4610
/ab?bc/
dvander@2762
  4611
dvander@2762
  4612
/ab?c/
dvander@2762
  4613
    abc
dvander@2762
  4614
 0: abc
dvander@2762
  4615
dvander@2762
  4616
/ab{0,1}c/
dvander@2762
  4617
    abc
dvander@2762
  4618
 0: abc
dvander@2762
  4619
dvander@2762
  4620
/^abc$/
dvander@2762
  4621
    abc
dvander@2762
  4622
 0: abc
dvander@2762
  4623
    *** Failers
dvander@2762
  4624
No match
dvander@2762
  4625
    abbbbc
dvander@2762
  4626
No match
dvander@2762
  4627
    abcc
dvander@2762
  4628
No match
dvander@2762
  4629
dvander@2762
  4630
/^abc/
dvander@2762
  4631
    abcc
dvander@2762
  4632
 0: abc
dvander@2762
  4633
dvander@2762
  4634
/^abc$/
dvander@2762
  4635
dvander@2762
  4636
/abc$/
dvander@2762
  4637
    aabc
dvander@2762
  4638
 0: abc
dvander@2762
  4639
    *** Failers
dvander@2762
  4640
No match
dvander@2762
  4641
    aabc
dvander@2762
  4642
 0: abc
dvander@2762
  4643
    aabcd
dvander@2762
  4644
No match
dvander@2762
  4645
dvander@2762
  4646
/^/
dvander@2762
  4647
    abc
dvander@2762
  4648
 0: 
dvander@2762
  4649
dvander@2762
  4650
/$/
dvander@2762
  4651
    abc
dvander@2762
  4652
 0: 
dvander@2762
  4653
dvander@2762
  4654
/a.c/
dvander@2762
  4655
    abc
dvander@2762
  4656
 0: abc
dvander@2762
  4657
    axc
dvander@2762
  4658
 0: axc
dvander@2762
  4659
dvander@2762
  4660
/a.*c/
dvander@2762
  4661
    axyzc
dvander@2762
  4662
 0: axyzc
dvander@2762
  4663
dvander@2762
  4664
/a[bc]d/
dvander@2762
  4665
    abd
dvander@2762
  4666
 0: abd
dvander@2762
  4667
    *** Failers
dvander@2762
  4668
No match
dvander@2762
  4669
    axyzd
dvander@2762
  4670
No match
dvander@2762
  4671
    abc
dvander@2762
  4672
No match
dvander@2762
  4673
dvander@2762
  4674
/a[b-d]e/
dvander@2762
  4675
    ace
dvander@2762
  4676
 0: ace
dvander@2762
  4677
dvander@2762
  4678
/a[b-d]/
dvander@2762
  4679
    aac
dvander@2762
  4680
 0: ac
dvander@2762
  4681
dvander@2762
  4682
/a[-b]/
dvander@2762
  4683
    a-
dvander@2762
  4684
 0: a-
dvander@2762
  4685
dvander@2762
  4686
/a[b-]/
dvander@2762
  4687
    a-
dvander@2762
  4688
 0: a-
dvander@2762
  4689
dvander@2762
  4690
/a]/
dvander@2762
  4691
    a]
dvander@2762
  4692
 0: a]
dvander@2762
  4693
dvander@2762
  4694
/a[]]b/
dvander@2762
  4695
    a]b
dvander@2762
  4696
 0: a]b
dvander@2762
  4697
dvander@2762
  4698
/a[^bc]d/
dvander@2762
  4699
    aed
dvander@2762
  4700
 0: aed
dvander@2762
  4701
    *** Failers
dvander@2762
  4702
No match
dvander@2762
  4703
    abd
dvander@2762
  4704
No match
dvander@2762
  4705
    abd
dvander@2762
  4706
No match
dvander@2762
  4707
dvander@2762
  4708
/a[^-b]c/
dvander@2762
  4709
    adc
dvander@2762
  4710
 0: adc
dvander@2762
  4711
dvander@2762
  4712
/a[^]b]c/
dvander@2762
  4713
    adc
dvander@2762
  4714
 0: adc
dvander@2762
  4715
    *** Failers
dvander@2762
  4716
No match
dvander@2762
  4717
    a-c
dvander@2762
  4718
 0: a-c
dvander@2762
  4719
    a]c
dvander@2762
  4720
No match
dvander@2762
  4721
dvander@2762
  4722
/\ba\b/
dvander@2762
  4723
    a-
dvander@2762
  4724
 0: a
dvander@2762
  4725
    -a
dvander@2762
  4726
 0: a
dvander@2762
  4727
    -a-
dvander@2762
  4728
 0: a
dvander@2762
  4729
dvander@2762
  4730
/\by\b/
dvander@2762
  4731
    *** Failers
dvander@2762
  4732
No match
dvander@2762
  4733
    xy
dvander@2762
  4734
No match
dvander@2762
  4735
    yz
dvander@2762
  4736
No match
dvander@2762
  4737
    xyz
dvander@2762
  4738
No match
dvander@2762
  4739
dvander@2762
  4740
/\Ba\B/
dvander@2762
  4741
    *** Failers
dvander@2762
  4742
 0: a
dvander@2762
  4743
    a-
dvander@2762
  4744
No match
dvander@2762
  4745
    -a
dvander@2762
  4746
No match
dvander@2762
  4747
    -a-
dvander@2762
  4748
No match
dvander@2762
  4749
dvander@2762
  4750
/\By\b/
dvander@2762
  4751
    xy
dvander@2762
  4752
 0: y
dvander@2762
  4753
dvander@2762
  4754
/\by\B/
dvander@2762
  4755
    yz
dvander@2762
  4756
 0: y
dvander@2762
  4757
dvander@2762
  4758
/\By\B/
dvander@2762
  4759
    xyz
dvander@2762
  4760
 0: y
dvander@2762
  4761
dvander@2762
  4762
/\w/
dvander@2762
  4763
    a
dvander@2762
  4764
 0: a
dvander@2762
  4765
dvander@2762
  4766
/\W/
dvander@2762
  4767
    -
dvander@2762
  4768
 0: -
dvander@2762
  4769
    *** Failers
dvander@2762
  4770
 0: *
dvander@2762
  4771
    -
dvander@2762
  4772
 0: -
dvander@2762
  4773
    a
dvander@2762
  4774
No match
dvander@2762
  4775
dvander@2762
  4776
/a\sb/
dvander@2762
  4777
    a b
dvander@2762
  4778
 0: a b
dvander@2762
  4779
dvander@2762
  4780
/a\Sb/
dvander@2762
  4781
    a-b
dvander@2762
  4782
 0: a-b
dvander@2762
  4783
    *** Failers
dvander@2762
  4784
No match
dvander@2762
  4785
    a-b
dvander@2762
  4786
 0: a-b
dvander@2762
  4787
    a b
dvander@2762
  4788
No match
dvander@2762
  4789
dvander@2762
  4790
/\d/
dvander@2762
  4791
    1
dvander@2762
  4792
 0: 1
dvander@2762
  4793
dvander@2762
  4794
/\D/
dvander@2762
  4795
    -
dvander@2762
  4796
 0: -
dvander@2762
  4797
    *** Failers
dvander@2762
  4798
 0: *
dvander@2762
  4799
    -
dvander@2762
  4800
 0: -
dvander@2762
  4801
    1
dvander@2762
  4802
No match
dvander@2762
  4803
dvander@2762
  4804
/[\w]/
dvander@2762
  4805
    a
dvander@2762
  4806
 0: a
dvander@2762
  4807
dvander@2762
  4808
/[\W]/
dvander@2762
  4809
    -
dvander@2762
  4810
 0: -
dvander@2762
  4811
    *** Failers
dvander@2762
  4812
 0: *
dvander@2762
  4813
    -
dvander@2762
  4814
 0: -
dvander@2762
  4815
    a
dvander@2762
  4816
No match
dvander@2762
  4817
dvander@2762
  4818
/a[\s]b/
dvander@2762
  4819
    a b
dvander@2762
  4820
 0: a b
dvander@2762
  4821
dvander@2762
  4822
/a[\S]b/
dvander@2762
  4823
    a-b
dvander@2762
  4824
 0: a-b
dvander@2762
  4825
    *** Failers
dvander@2762
  4826
No match
dvander@2762
  4827
    a-b
dvander@2762
  4828
 0: a-b
dvander@2762
  4829
    a b
dvander@2762
  4830
No match
dvander@2762
  4831
dvander@2762
  4832
/[\d]/
dvander@2762
  4833
    1
dvander@2762
  4834
 0: 1
dvander@2762
  4835
dvander@2762
  4836
/[\D]/
dvander@2762
  4837
    -
dvander@2762
  4838
 0: -
dvander@2762
  4839
    *** Failers
dvander@2762
  4840
 0: *
dvander@2762
  4841
    -
dvander@2762
  4842
 0: -
dvander@2762
  4843
    1
dvander@2762
  4844
No match
dvander@2762
  4845
dvander@2762
  4846
/ab|cd/
dvander@2762
  4847
    abc
dvander@2762
  4848
 0: ab
dvander@2762
  4849
    abcd
dvander@2762
  4850
 0: ab
dvander@2762
  4851
dvander@2762
  4852
/()ef/
dvander@2762
  4853
    def
dvander@2762
  4854
 0: ef
dvander@2762
  4855
dvander@2762
  4856
/$b/
dvander@2762
  4857
dvander@2762
  4858
/a\(b/
dvander@2762
  4859
    a(b
dvander@2762
  4860
 0: a(b
dvander@2762
  4861
dvander@2762
  4862
/a\(*b/
dvander@2762
  4863
    ab
dvander@2762
  4864
 0: ab
dvander@2762
  4865
    a((b
dvander@2762
  4866
 0: a((b
dvander@2762
  4867
dvander@2762
  4868
/a\\b/
dvander@2762
  4869
    a\b
dvander@2762
  4870
No match
dvander@2762
  4871
dvander@2762
  4872
/((a))/
dvander@2762
  4873
    abc
dvander@2762
  4874
 0: a
dvander@2762
  4875
dvander@2762
  4876
/(a)b(c)/
dvander@2762
  4877
    abc
dvander@2762
  4878
 0: abc
dvander@2762
  4879
dvander@2762
  4880
/a+b+c/
dvander@2762
  4881
    aabbabc
dvander@2762
  4882
 0: abc
dvander@2762
  4883
dvander@2762
  4884
/a{1,}b{1,}c/
dvander@2762
  4885
    aabbabc
dvander@2762
  4886
 0: abc
dvander@2762
  4887
dvander@2762
  4888
/a.+?c/
dvander@2762
  4889
    abcabc
dvander@2762
  4890
 0: abcabc
dvander@2762
  4891
 1: abc
dvander@2762
  4892
dvander@2762
  4893
/(a+|b)*/
dvander@2762
  4894
    ab
dvander@2762
  4895
 0: ab
dvander@2762
  4896
 1: a
dvander@2762
  4897
 2: 
dvander@2762
  4898
dvander@2762
  4899
/(a+|b){0,}/
dvander@2762
  4900
    ab
dvander@2762
  4901
 0: ab
dvander@2762
  4902
 1: a
dvander@2762
  4903
 2: 
dvander@2762
  4904
dvander@2762
  4905
/(a+|b)+/
dvander@2762
  4906
    ab
dvander@2762
  4907
 0: ab
dvander@2762
  4908
 1: a
dvander@2762
  4909
dvander@2762
  4910
/(a+|b){1,}/
dvander@2762
  4911
    ab
dvander@2762
  4912
 0: ab
dvander@2762
  4913
 1: a
dvander@2762
  4914
dvander@2762
  4915
/(a+|b)?/
dvander@2762
  4916
    ab
dvander@2762
  4917
 0: a
dvander@2762
  4918
 1: 
dvander@2762
  4919
dvander@2762
  4920
/(a+|b){0,1}/
dvander@2762
  4921
    ab
dvander@2762
  4922
 0: a
dvander@2762
  4923
 1: 
dvander@2762
  4924
dvander@2762
  4925
/[^ab]*/
dvander@2762
  4926
    cde
dvander@2762
  4927
 0: cde
dvander@2762
  4928
 1: cd
dvander@2762
  4929
 2: c
dvander@2762
  4930
 3: 
dvander@2762
  4931
dvander@2762
  4932
/abc/
dvander@2762
  4933
    *** Failers
dvander@2762
  4934
No match
dvander@2762
  4935
    b
dvander@2762
  4936
No match
dvander@2762
  4937
    
dvander@2762
  4938
dvander@2762
  4939
/a*/
dvander@2762
  4940
    
dvander@2762
  4941
dvander@2762
  4942
/([abc])*d/
dvander@2762
  4943
    abbbcd
dvander@2762
  4944
 0: abbbcd
dvander@2762
  4945
dvander@2762
  4946
/([abc])*bcd/
dvander@2762
  4947
    abcd
dvander@2762
  4948
 0: abcd
dvander@2762
  4949
dvander@2762
  4950
/a|b|c|d|e/
dvander@2762
  4951
    e
dvander@2762
  4952
 0: e
dvander@2762
  4953
dvander@2762
  4954
/(a|b|c|d|e)f/
dvander@2762
  4955
    ef
dvander@2762
  4956
 0: ef
dvander@2762
  4957
dvander@2762
  4958
/abcd*efg/
dvander@2762
  4959
    abcdefg
dvander@2762
  4960
 0: abcdefg
dvander@2762
  4961
dvander@2762
  4962
/ab*/
dvander@2762
  4963
    xabyabbbz
dvander@2762
  4964
 0: ab
dvander@2762
  4965
 1: a
dvander@2762
  4966
    xayabbbz
dvander@2762
  4967
 0: a
dvander@2762
  4968
dvander@2762
  4969
/(ab|cd)e/
dvander@2762
  4970
    abcde
dvander@2762
  4971
 0: cde
dvander@2762
  4972
dvander@2762
  4973
/[abhgefdc]ij/
dvander@2762
  4974
    hij
dvander@2762
  4975
 0: hij
dvander@2762
  4976
dvander@2762
  4977
/^(ab|cd)e/
dvander@2762
  4978
dvander@2762
  4979
/(abc|)ef/
dvander@2762
  4980
    abcdef
dvander@2762
  4981
 0: ef
dvander@2762
  4982
dvander@2762
  4983
/(a|b)c*d/
dvander@2762
  4984
    abcd
dvander@2762
  4985
 0: bcd
dvander@2762
  4986
dvander@2762
  4987
/(ab|ab*)bc/
dvander@2762
  4988
    abc
dvander@2762
  4989
 0: abc
dvander@2762
  4990
dvander@2762
  4991
/a([bc]*)c*/
dvander@2762
  4992
    abc
dvander@2762
  4993
 0: abc
dvander@2762
  4994
 1: ab
dvander@2762
  4995
 2: a
dvander@2762
  4996
dvander@2762
  4997
/a([bc]*)(c*d)/
dvander@2762
  4998
    abcd
dvander@2762
  4999
 0: abcd
dvander@2762
  5000
dvander@2762
  5001
/a([bc]+)(c*d)/
dvander@2762
  5002
    abcd
dvander@2762
  5003
 0: abcd
dvander@2762
  5004
dvander@2762
  5005
/a([bc]*)(c+d)/
dvander@2762
  5006
    abcd
dvander@2762
  5007
 0: abcd
dvander@2762
  5008
dvander@2762
  5009
/a[bcd]*dcdcde/
dvander@2762
  5010
    adcdcde
dvander@2762
  5011
 0: adcdcde
dvander@2762
  5012
dvander@2762
  5013
/a[bcd]+dcdcde/
dvander@2762
  5014
    *** Failers
dvander@2762
  5015
No match
dvander@2762
  5016
    abcde
dvander@2762
  5017
No match
dvander@2762
  5018
    adcdcde
dvander@2762
  5019
No match
dvander@2762
  5020
dvander@2762
  5021
/(ab|a)b*c/
dvander@2762
  5022
    abc
dvander@2762
  5023
 0: abc
dvander@2762
  5024
dvander@2762
  5025
/((a)(b)c)(d)/
dvander@2762
  5026
    abcd
dvander@2762
  5027
 0: abcd
dvander@2762
  5028
dvander@2762
  5029
/[a-zA-Z_][a-zA-Z0-9_]*/
dvander@2762
  5030
    alpha
dvander@2762
  5031
 0: alpha
dvander@2762
  5032
 1: alph
dvander@2762
  5033
 2: alp
dvander@2762
  5034
 3: al
dvander@2762
  5035
 4: a
dvander@2762
  5036
dvander@2762
  5037
/^a(bc+|b[eh])g|.h$/
dvander@2762
  5038
    abh
dvander@2762
  5039
 0: bh
dvander@2762
  5040
dvander@2762
  5041
/(bc+d$|ef*g.|h?i(j|k))/
dvander@2762
  5042
    effgz
dvander@2762
  5043
 0: effgz
dvander@2762
  5044
    ij
dvander@2762
  5045
 0: ij
dvander@2762
  5046
    reffgz
dvander@2762
  5047
 0: effgz
dvander@2762
  5048
    *** Failers
dvander@2762
  5049
No match
dvander@2762
  5050
    effg
dvander@2762
  5051
No match
dvander@2762
  5052
    bcdd
dvander@2762
  5053
No match
dvander@2762
  5054
dvander@2762
  5055
/((((((((((a))))))))))/
dvander@2762
  5056
    a
dvander@2762
  5057
 0: a
dvander@2762
  5058
dvander@2762
  5059
/(((((((((a)))))))))/
dvander@2762
  5060
    a
dvander@2762
  5061
 0: a
dvander@2762
  5062
dvander@2762
  5063
/multiple words of text/
dvander@2762
  5064
    *** Failers
dvander@2762
  5065
No match
dvander@2762
  5066
    aa
dvander@2762
  5067
No match
dvander@2762
  5068
    uh-uh
dvander@2762
  5069
No match
dvander@2762
  5070
dvander@2762
  5071
/multiple words/
dvander@2762
  5072
    multiple words, yeah
dvander@2762
  5073
 0: multiple words
dvander@2762
  5074
dvander@2762
  5075
/(.*)c(.*)/
dvander@2762
  5076
    abcde
dvander@2762
  5077
 0: abcde
dvander@2762
  5078
 1: abcd
dvander@2762
  5079
 2: abc
dvander@2762
  5080
dvander@2762
  5081
/\((.*), (.*)\)/
dvander@2762
  5082
    (a, b)
dvander@2762
  5083
 0: (a, b)
dvander@2762
  5084
dvander@2762
  5085
/[k]/
dvander@2762
  5086
dvander@2762
  5087
/abcd/
dvander@2762
  5088
    abcd
dvander@2762
  5089
 0: abcd
dvander@2762
  5090
dvander@2762
  5091
/a(bc)d/
dvander@2762
  5092
    abcd
dvander@2762
  5093
 0: abcd
dvander@2762
  5094
dvander@2762
  5095
/a[-]?c/
dvander@2762
  5096
    ac
dvander@2762
  5097
 0: ac
dvander@2762
  5098
dvander@2762
  5099
/abc/i
dvander@2762
  5100
    ABC
dvander@2762
  5101
 0: ABC
dvander@2762
  5102
    XABCY
dvander@2762
  5103
 0: ABC
dvander@2762
  5104
    ABABC
dvander@2762
  5105
 0: ABC
dvander@2762
  5106
    *** Failers
dvander@2762
  5107
No match
dvander@2762
  5108
    aaxabxbaxbbx
dvander@2762
  5109
No match
dvander@2762
  5110
    XBC
dvander@2762
  5111
No match
dvander@2762
  5112
    AXC
dvander@2762
  5113
No match
dvander@2762
  5114
    ABX
dvander@2762
  5115
No match
dvander@2762
  5116
dvander@2762
  5117
/ab*c/i
dvander@2762
  5118
    ABC
dvander@2762
  5119
 0: ABC
dvander@2762
  5120
dvander@2762
  5121
/ab*bc/i
dvander@2762
  5122
    ABC
dvander@2762
  5123
 0: ABC
dvander@2762
  5124
    ABBC
dvander@2762
  5125
 0: ABBC
dvander@2762
  5126
dvander@2762
  5127
/ab*?bc/i
dvander@2762
  5128
    ABBBBC
dvander@2762
  5129
 0: ABBBBC
dvander@2762
  5130
dvander@2762
  5131
/ab{0,}?bc/i
dvander@2762
  5132
    ABBBBC
dvander@2762
  5133
 0: ABBBBC
dvander@2762
  5134
dvander@2762
  5135
/ab+?bc/i
dvander@2762
  5136
    ABBC
dvander@2762
  5137
 0: ABBC
dvander@2762
  5138
dvander@2762
  5139
/ab+bc/i
dvander@2762
  5140
    *** Failers
dvander@2762
  5141
No match
dvander@2762
  5142
    ABC
dvander@2762
  5143
No match
dvander@2762
  5144
    ABQ
dvander@2762
  5145
No match
dvander@2762
  5146
dvander@2762
  5147
/ab{1,}bc/i
dvander@2762
  5148
dvander@2762
  5149
/ab+bc/i
dvander@2762
  5150
    ABBBBC
dvander@2762
  5151
 0: ABBBBC
dvander@2762
  5152
dvander@2762
  5153
/ab{1,}?bc/i
dvander@2762
  5154
    ABBBBC
dvander@2762
  5155
 0: ABBBBC
dvander@2762
  5156
dvander@2762
  5157
/ab{1,3}?bc/i
dvander@2762
  5158
    ABBBBC
dvander@2762
  5159
 0: ABBBBC
dvander@2762
  5160
dvander@2762
  5161
/ab{3,4}?bc/i
dvander@2762
  5162
    ABBBBC
dvander@2762
  5163
 0: ABBBBC
dvander@2762
  5164
dvander@2762
  5165
/ab{4,5}?bc/i
dvander@2762
  5166
    *** Failers
dvander@2762
  5167
No match
dvander@2762
  5168
    ABQ
dvander@2762
  5169
No match
dvander@2762
  5170
    ABBBBC
dvander@2762
  5171
No match
dvander@2762
  5172
dvander@2762
  5173
/ab??bc/i
dvander@2762
  5174
    ABBC
dvander@2762
  5175
 0: ABBC
dvander@2762
  5176
    ABC
dvander@2762
  5177
 0: ABC
dvander@2762
  5178
dvander@2762
  5179
/ab{0,1}?bc/i
dvander@2762
  5180
    ABC
dvander@2762
  5181
 0: ABC
dvander@2762
  5182
dvander@2762
  5183
/ab??bc/i
dvander@2762
  5184
dvander@2762
  5185
/ab??c/i
dvander@2762
  5186
    ABC
dvander@2762
  5187
 0: ABC
dvander@2762
  5188
dvander@2762
  5189
/ab{0,1}?c/i
dvander@2762
  5190
    ABC
dvander@2762
  5191
 0: ABC
dvander@2762
  5192
dvander@2762
  5193
/^abc$/i
dvander@2762
  5194
    ABC
dvander@2762
  5195
 0: ABC
dvander@2762
  5196
    *** Failers
dvander@2762
  5197
No match
dvander@2762
  5198
    ABBBBC
dvander@2762
  5199
No match
dvander@2762
  5200
    ABCC
dvander@2762
  5201
No match
dvander@2762
  5202
dvander@2762
  5203
/^abc/i
dvander@2762
  5204
    ABCC
dvander@2762
  5205
 0: ABC
dvander@2762
  5206
dvander@2762
  5207
/^abc$/i
dvander@2762
  5208
dvander@2762
  5209
/abc$/i
dvander@2762
  5210
    AABC
dvander@2762
  5211
 0: ABC
dvander@2762
  5212
dvander@2762
  5213
/^/i
dvander@2762
  5214
    ABC
dvander@2762
  5215
 0: 
dvander@2762
  5216
dvander@2762
  5217
/$/i
dvander@2762
  5218
    ABC
dvander@2762
  5219
 0: 
dvander@2762
  5220
dvander@2762
  5221
/a.c/i
dvander@2762
  5222
    ABC
dvander@2762
  5223
 0: ABC
dvander@2762
  5224
    AXC
dvander@2762
  5225
 0: AXC
dvander@2762
  5226
dvander@2762
  5227
/a.*?c/i
dvander@2762
  5228
    AXYZC
dvander@2762
  5229
 0: AXYZC
dvander@2762
  5230
dvander@2762
  5231
/a.*c/i
dvander@2762
  5232
    *** Failers
dvander@2762
  5233
No match
dvander@2762
  5234
    AABC
dvander@2762
  5235
 0: AABC
dvander@2762
  5236
    AXYZD
dvander@2762
  5237
No match
dvander@2762
  5238
dvander@2762
  5239
/a[bc]d/i
dvander@2762
  5240
    ABD
dvander@2762
  5241
 0: ABD
dvander@2762
  5242
dvander@2762
  5243
/a[b-d]e/i
dvander@2762
  5244
    ACE
dvander@2762
  5245
 0: ACE
dvander@2762
  5246
    *** Failers
dvander@2762
  5247
No match
dvander@2762
  5248
    ABC
dvander@2762
  5249
No match
dvander@2762
  5250
    ABD
dvander@2762
  5251
No match
dvander@2762
  5252
dvander@2762
  5253
/a[b-d]/i
dvander@2762
  5254
    AAC
dvander@2762
  5255
 0: AC
dvander@2762
  5256
dvander@2762
  5257
/a[-b]/i
dvander@2762
  5258
    A-
dvander@2762
  5259
 0: A-
dvander@2762
  5260
dvander@2762
  5261
/a[b-]/i
dvander@2762
  5262
    A-
dvander@2762
  5263
 0: A-
dvander@2762
  5264
dvander@2762
  5265
/a]/i
dvander@2762
  5266
    A]
dvander@2762
  5267
 0: A]
dvander@2762
  5268
dvander@2762
  5269
/a[]]b/i
dvander@2762
  5270
    A]B
dvander@2762
  5271
 0: A]B
dvander@2762
  5272
dvander@2762
  5273
/a[^bc]d/i
dvander@2762
  5274
    AED
dvander@2762
  5275
 0: AED
dvander@2762
  5276
dvander@2762
  5277
/a[^-b]c/i
dvander@2762
  5278
    ADC
dvander@2762
  5279
 0: ADC
dvander@2762
  5280
    *** Failers
dvander@2762
  5281
No match
dvander@2762
  5282
    ABD
dvander@2762
  5283
No match
dvander@2762
  5284
    A-C
dvander@2762
  5285
No match
dvander@2762
  5286
dvander@2762
  5287
/a[^]b]c/i
dvander@2762
  5288
    ADC
dvander@2762
  5289
 0: ADC
dvander@2762
  5290
dvander@2762
  5291
/ab|cd/i
dvander@2762
  5292
    ABC
dvander@2762
  5293
 0: AB
dvander@2762
  5294
    ABCD
dvander@2762
  5295
 0: AB
dvander@2762
  5296
dvander@2762
  5297
/()ef/i
dvander@2762
  5298
    DEF
dvander@2762
  5299
 0: EF
dvander@2762
  5300
dvander@2762
  5301
/$b/i
dvander@2762
  5302
    *** Failers
dvander@2762
  5303
No match
dvander@2762
  5304
    A]C
dvander@2762
  5305
No match
dvander@2762
  5306
    B
dvander@2762
  5307
No match
dvander@2762
  5308
dvander@2762
  5309
/a\(b/i
dvander@2762
  5310
    A(B
dvander@2762
  5311
 0: A(B
dvander@2762
  5312
dvander@2762
  5313
/a\(*b/i
dvander@2762
  5314
    AB
dvander@2762
  5315
 0: AB
dvander@2762
  5316
    A((B
dvander@2762
  5317
 0: A((B
dvander@2762
  5318
dvander@2762
  5319
/a\\b/i
dvander@2762
  5320
    A\B
dvander@2762
  5321
No match
dvander@2762
  5322
dvander@2762
  5323
/((a))/i
dvander@2762
  5324
    ABC
dvander@2762
  5325
 0: A
dvander@2762
  5326
dvander@2762
  5327
/(a)b(c)/i
dvander@2762
  5328
    ABC
dvander@2762
  5329
 0: ABC
dvander@2762
  5330
dvander@2762
  5331
/a+b+c/i
dvander@2762
  5332
    AABBABC
dvander@2762
  5333
 0: ABC
dvander@2762
  5334
dvander@2762
  5335
/a{1,}b{1,}c/i
dvander@2762
  5336
    AABBABC
dvander@2762
  5337
 0: ABC
dvander@2762
  5338
dvander@2762
  5339
/a.+?c/i
dvander@2762
  5340
    ABCABC
dvander@2762
  5341
 0: ABCABC
dvander@2762
  5342
 1: ABC
dvander@2762
  5343
dvander@2762
  5344
/a.*?c/i
dvander@2762
  5345
    ABCABC
dvander@2762
  5346
 0: ABCABC
dvander@2762
  5347
 1: ABC
dvander@2762
  5348
dvander@2762
  5349
/a.{0,5}?c/i
dvander@2762
  5350
    ABCABC
dvander@2762
  5351
 0: ABCABC
dvander@2762
  5352
 1: ABC
dvander@2762
  5353
dvander@2762
  5354
/(a+|b)*/i
dvander@2762
  5355
    AB
dvander@2762
  5356
 0: AB
dvander@2762
  5357
 1: A
dvander@2762
  5358
 2: 
dvander@2762
  5359
dvander@2762
  5360
/(a+|b){0,}/i
dvander@2762
  5361
    AB
dvander@2762
  5362
 0: AB
dvander@2762
  5363
 1: A
dvander@2762
  5364
 2: 
dvander@2762
  5365
dvander@2762
  5366
/(a+|b)+/i
dvander@2762
  5367
    AB
dvander@2762
  5368
 0: AB
dvander@2762
  5369
 1: A
dvander@2762
  5370
dvander@2762
  5371
/(a+|b){1,}/i
dvander@2762
  5372
    AB
dvander@2762
  5373
 0: AB
dvander@2762
  5374
 1: A
dvander@2762
  5375
dvander@2762
  5376
/(a+|b)?/i
dvander@2762
  5377
    AB
dvander@2762
  5378
 0: A
dvander@2762
  5379
 1: 
dvander@2762
  5380
dvander@2762
  5381
/(a+|b){0,1}/i
dvander@2762
  5382
    AB
dvander@2762
  5383
 0: A
dvander@2762
  5384
 1: 
dvander@2762
  5385
dvander@2762
  5386
/(a+|b){0,1}?/i
dvander@2762
  5387
    AB
dvander@2762
  5388
 0: A
dvander@2762
  5389
 1: 
dvander@2762
  5390
dvander@2762
  5391
/[^ab]*/i
dvander@2762
  5392
    CDE
dvander@2762
  5393
 0: CDE
dvander@2762
  5394
 1: CD
dvander@2762
  5395
 2: C
dvander@2762
  5396
 3: 
dvander@2762
  5397
dvander@2762
  5398
/abc/i
dvander@2762
  5399
dvander@2762
  5400
/a*/i
dvander@2762
  5401
    
dvander@2762
  5402
dvander@2762
  5403
/([abc])*d/i
dvander@2762
  5404
    ABBBCD
dvander@2762
  5405
 0: ABBBCD
dvander@2762
  5406
dvander@2762
  5407
/([abc])*bcd/i
dvander@2762
  5408
    ABCD
dvander@2762
  5409
 0: ABCD
dvander@2762
  5410
dvander@2762
  5411
/a|b|c|d|e/i
dvander@2762
  5412
    E
dvander@2762
  5413
 0: E
dvander@2762
  5414
dvander@2762
  5415
/(a|b|c|d|e)f/i
dvander@2762
  5416
    EF
dvander@2762
  5417
 0: EF
dvander@2762
  5418
dvander@2762
  5419
/abcd*efg/i
dvander@2762
  5420
    ABCDEFG
dvander@2762
  5421
 0: ABCDEFG
dvander@2762
  5422
dvander@2762
  5423
/ab*/i
dvander@2762
  5424
    XABYABBBZ
dvander@2762
  5425
 0: AB
dvander@2762
  5426
 1: A
dvander@2762
  5427
    XAYABBBZ
dvander@2762
  5428
 0: A
dvander@2762
  5429
dvander@2762
  5430
/(ab|cd)e/i
dvander@2762
  5431
    ABCDE
dvander@2762
  5432
 0: CDE
dvander@2762
  5433
dvander@2762
  5434
/[abhgefdc]ij/i
dvander@2762
  5435
    HIJ
dvander@2762
  5436
 0: HIJ
dvander@2762
  5437
dvander@2762
  5438
/^(ab|cd)e/i
dvander@2762
  5439
    ABCDE
dvander@2762
  5440
No match
dvander@2762
  5441
dvander@2762
  5442
/(abc|)ef/i
dvander@2762
  5443
    ABCDEF
dvander@2762
  5444
 0: EF
dvander@2762
  5445
dvander@2762
  5446
/(a|b)c*d/i
dvander@2762
  5447
    ABCD
dvander@2762
  5448
 0: BCD
dvander@2762
  5449
dvander@2762
  5450
/(ab|ab*)bc/i
dvander@2762
  5451
    ABC
dvander@2762
  5452
 0: ABC
dvander@2762
  5453
dvander@2762
  5454
/a([bc]*)c*/i
dvander@2762
  5455
    ABC
dvander@2762
  5456
 0: ABC
dvander@2762
  5457
 1: AB
dvander@2762
  5458
 2: A
dvander@2762
  5459
dvander@2762
  5460
/a([bc]*)(c*d)/i
dvander@2762
  5461
    ABCD
dvander@2762
  5462
 0: ABCD
dvander@2762
  5463
dvander@2762
  5464
/a([bc]+)(c*d)/i
dvander@2762
  5465
    ABCD
dvander@2762
  5466
 0: ABCD
dvander@2762
  5467
dvander@2762
  5468
/a([bc]*)(c+d)/i
dvander@2762
  5469
    ABCD
dvander@2762
  5470
 0: ABCD
dvander@2762
  5471
dvander@2762
  5472
/a[bcd]*dcdcde/i
dvander@2762
  5473
    ADCDCDE
dvander@2762
  5474
 0: ADCDCDE
dvander@2762
  5475
dvander@2762
  5476
/a[bcd]+dcdcde/i
dvander@2762
  5477
dvander@2762
  5478
/(ab|a)b*c/i
dvander@2762
  5479
    ABC
dvander@2762
  5480
 0: ABC
dvander@2762
  5481
dvander@2762
  5482
/((a)(b)c)(d)/i
dvander@2762
  5483
    ABCD
dvander@2762
  5484
 0: ABCD
dvander@2762
  5485
dvander@2762
  5486
/[a-zA-Z_][a-zA-Z0-9_]*/i
dvander@2762
  5487
    ALPHA
dvander@2762
  5488
 0: ALPHA
dvander@2762
  5489
 1: ALPH
dvander@2762
  5490
 2: ALP
dvander@2762
  5491
 3: AL
dvander@2762
  5492
 4: A
dvander@2762
  5493
dvander@2762
  5494
/^a(bc+|b[eh])g|.h$/i
dvander@2762
  5495
    ABH
dvander@2762
  5496
 0: BH
dvander@2762
  5497
dvander@2762
  5498
/(bc+d$|ef*g.|h?i(j|k))/i
dvander@2762
  5499
    EFFGZ
dvander@2762
  5500
 0: EFFGZ
dvander@2762
  5501
    IJ
dvander@2762
  5502
 0: IJ
dvander@2762
  5503
    REFFGZ
dvander@2762
  5504
 0: EFFGZ
dvander@2762
  5505
    *** Failers
dvander@2762
  5506
No match
dvander@2762
  5507
    ADCDCDE
dvander@2762
  5508
No match
dvander@2762
  5509
    EFFG
dvander@2762
  5510
No match
dvander@2762
  5511
    BCDD
dvander@2762
  5512
No match
dvander@2762
  5513
dvander@2762
  5514
/((((((((((a))))))))))/i
dvander@2762
  5515
    A
dvander@2762
  5516
 0: A
dvander@2762
  5517
dvander@2762
  5518
/(((((((((a)))))))))/i
dvander@2762
  5519
    A
dvander@2762
  5520
 0: A
dvander@2762
  5521
dvander@2762
  5522
/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
dvander@2762
  5523
    A
dvander@2762
  5524
 0: A
dvander@2762
  5525
dvander@2762
  5526
/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
dvander@2762
  5527
    C
dvander@2762
  5528
 0: C
dvander@2762
  5529
dvander@2762
  5530
/multiple words of text/i
dvander@2762
  5531
    *** Failers
dvander@2762
  5532
No match
dvander@2762
  5533
    AA
dvander@2762
  5534
No match
dvander@2762
  5535
    UH-UH
dvander@2762
  5536
No match
dvander@2762
  5537
dvander@2762
  5538
/multiple words/i
dvander@2762
  5539
    MULTIPLE WORDS, YEAH
dvander@2762
  5540
 0: MULTIPLE WORDS
dvander@2762
  5541
dvander@2762
  5542
/(.*)c(.*)/i
dvander@2762
  5543
    ABCDE
dvander@2762
  5544
 0: ABCDE
dvander@2762
  5545
 1: ABCD
dvander@2762
  5546
 2: ABC
dvander@2762
  5547
dvander@2762
  5548
/\((.*), (.*)\)/i
dvander@2762
  5549
    (A, B)
dvander@2762
  5550
 0: (A, B)
dvander@2762
  5551
dvander@2762
  5552
/[k]/i
dvander@2762
  5553
dvander@2762
  5554
/abcd/i
dvander@2762
  5555
    ABCD
dvander@2762
  5556
 0: ABCD
dvander@2762
  5557
dvander@2762
  5558
/a(bc)d/i
dvander@2762
  5559
    ABCD
dvander@2762
  5560
 0: ABCD
dvander@2762
  5561
dvander@2762
  5562
/a[-]?c/i
dvander@2762
  5563
    AC
dvander@2762
  5564
 0: AC
dvander@2762
  5565
dvander@2762
  5566
/a(?!b)./
dvander@2762
  5567
    abad
dvander@2762
  5568
 0: ad
dvander@2762
  5569
dvander@2762
  5570
/a(?=d)./
dvander@2762
  5571
    abad
dvander@2762
  5572
 0: ad
dvander@2762
  5573
dvander@2762
  5574
/a(?=c|d)./
dvander@2762
  5575
    abad
dvander@2762
  5576
 0: ad
dvander@2762
  5577
dvander@2762
  5578
/a(?:b|c|d)(.)/
dvander@2762
  5579
    ace
dvander@2762
  5580
 0: ace
dvander@2762
  5581
dvander@2762
  5582
/a(?:b|c|d)*(.)/
dvander@2762
  5583
    ace
dvander@2762
  5584
 0: ace
dvander@2762
  5585
 1: ac
dvander@2762
  5586
dvander@2762
  5587
/a(?:b|c|d)+?(.)/
dvander@2762
  5588
    ace
dvander@2762
  5589
 0: ace
dvander@2762
  5590
    acdbcdbe
dvander@2762
  5591
 0: acdbcdbe
dvander@2762
  5592
 1: acdbcdb
dvander@2762
  5593
 2: acdbcd
dvander@2762
  5594
 3: acdbc
dvander@2762
  5595
 4: acdb
dvander@2762
  5596
 5: acd
dvander@2762
  5597
dvander@2762
  5598
/a(?:b|c|d)+(.)/
dvander@2762
  5599
    acdbcdbe
dvander@2762
  5600
 0: acdbcdbe
dvander@2762
  5601
 1: acdbcdb
dvander@2762
  5602
 2: acdbcd
dvander@2762
  5603
 3: acdbc
dvander@2762
  5604
 4: acdb
dvander@2762
  5605
 5: acd
dvander@2762
  5606
dvander@2762
  5607
/a(?:b|c|d){2}(.)/
dvander@2762
  5608
    acdbcdbe
dvander@2762
  5609
 0: acdb
dvander@2762
  5610
dvander@2762
  5611
/a(?:b|c|d){4,5}(.)/
dvander@2762
  5612
    acdbcdbe
dvander@2762
  5613
 0: acdbcdb
dvander@2762
  5614
 1: acdbcd
dvander@2762
  5615
dvander@2762
  5616
/a(?:b|c|d){4,5}?(.)/
dvander@2762
  5617
    acdbcdbe
dvander@2762
  5618
 0: acdbcdb
dvander@2762
  5619
 1: acdbcd
dvander@2762
  5620
dvander@2762
  5621
/((foo)|(bar))*/
dvander@2762
  5622
    foobar
dvander@2762
  5623
 0: foobar
dvander@2762
  5624
 1: foo
dvander@2762
  5625
 2: 
dvander@2762
  5626
dvander@2762
  5627
/a(?:b|c|d){6,7}(.)/
dvander@2762
  5628
    acdbcdbe
dvander@2762
  5629
 0: acdbcdbe
dvander@2762
  5630
dvander@2762
  5631
/a(?:b|c|d){6,7}?(.)/
dvander@2762
  5632
    acdbcdbe
dvander@2762
  5633
 0: acdbcdbe
dvander@2762
  5634
dvander@2762
  5635
/a(?:b|c|d){5,6}(.)/
dvander@2762
  5636
    acdbcdbe
dvander@2762
  5637
 0: acdbcdbe
dvander@2762
  5638
 1: acdbcdb
dvander@2762
  5639
dvander@2762
  5640
/a(?:b|c|d){5,6}?(.)/
dvander@2762
  5641
    acdbcdbe
dvander@2762
  5642
 0: acdbcdbe
dvander@2762
  5643
 1: acdbcdb
dvander@2762
  5644
dvander@2762
  5645
/a(?:b|c|d){5,7}(.)/
dvander@2762
  5646
    acdbcdbe
dvander@2762
  5647
 0: acdbcdbe
dvander@2762
  5648
 1: acdbcdb
dvander@2762
  5649
dvander@2762
  5650
/a(?:b|c|d){5,7}?(.)/
dvander@2762
  5651
    acdbcdbe
dvander@2762
  5652
 0: acdbcdbe
dvander@2762
  5653
 1: acdbcdb
dvander@2762
  5654
dvander@2762
  5655
/a(?:b|(c|e){1,2}?|d)+?(.)/
dvander@2762
  5656
    ace
dvander@2762
  5657
 0: ace
dvander@2762
  5658
dvander@2762
  5659
/^(.+)?B/
dvander@2762
  5660
    AB
dvander@2762
  5661
 0: AB
dvander@2762
  5662
dvander@2762
  5663
/^([^a-z])|(\^)$/
dvander@2762
  5664
    .
dvander@2762
  5665
 0: .
dvander@2762
  5666
dvander@2762
  5667
/^[<>]&/
dvander@2762
  5668
    <&OUT
dvander@2762
  5669
 0: <&
dvander@2762
  5670
dvander@2762
  5671
/(?:(f)(o)(o)|(b)(a)(r))*/
dvander@2762
  5672
    foobar
dvander@2762
  5673
 0: foobar
dvander@2762
  5674
 1: foo
dvander@2762
  5675
 2: 
dvander@2762
  5676
dvander@2762
  5677
/(?<=a)b/
dvander@2762
  5678
    ab
dvander@2762
  5679
 0: b
dvander@2762
  5680
    *** Failers
dvander@2762
  5681
No match
dvander@2762
  5682
    cb
dvander@2762
  5683
No match
dvander@2762
  5684
    b
dvander@2762
  5685
No match
dvander@2762
  5686
dvander@2762
  5687
/(?<!c)b/
dvander@2762
  5688
    ab
dvander@2762
  5689
 0: b
dvander@2762
  5690
    b
dvander@2762
  5691
 0: b
dvander@2762
  5692
    b
dvander@2762
  5693
 0: b
dvander@2762
  5694
dvander@2762
  5695
/(?:..)*a/
dvander@2762
  5696
    aba
dvander@2762
  5697
 0: aba
dvander@2762
  5698
 1: a
dvander@2762
  5699
dvander@2762
  5700
/(?:..)*?a/
dvander@2762
  5701
    aba
dvander@2762
  5702
 0: aba
dvander@2762
  5703
 1: a
dvander@2762
  5704
dvander@2762
  5705
/^(){3,5}/
dvander@2762
  5706
    abc
dvander@2762
  5707
 0: 
dvander@2762
  5708
dvander@2762
  5709
/^(a+)*ax/
dvander@2762
  5710
    aax
dvander@2762
  5711
 0: aax
dvander@2762
  5712
dvander@2762
  5713
/^((a|b)+)*ax/
dvander@2762
  5714
    aax
dvander@2762
  5715
 0: aax
dvander@2762
  5716
dvander@2762
  5717
/^((a|bc)+)*ax/
dvander@2762
  5718
    aax
dvander@2762
  5719
 0: aax
dvander@2762
  5720
dvander@2762
  5721
/(a|x)*ab/
dvander@2762
  5722
    cab
dvander@2762
  5723
 0: ab
dvander@2762
  5724
dvander@2762
  5725
/(a)*ab/
dvander@2762
  5726
    cab
dvander@2762
  5727
 0: ab
dvander@2762
  5728
dvander@2762
  5729
/(?:(?i)a)b/
dvander@2762
  5730
    ab
dvander@2762
  5731
 0: ab
dvander@2762
  5732
dvander@2762
  5733
/((?i)a)b/
dvander@2762
  5734
    ab
dvander@2762
  5735
 0: ab
dvander@2762
  5736
dvander@2762
  5737
/(?:(?i)a)b/
dvander@2762
  5738
    Ab
dvander@2762
  5739
 0: Ab
dvander@2762
  5740
dvander@2762
  5741
/((?i)a)b/
dvander@2762
  5742
    Ab
dvander@2762
  5743
 0: Ab
dvander@2762
  5744
dvander@2762
  5745
/(?:(?i)a)b/
dvander@2762
  5746
    *** Failers
dvander@2762
  5747
No match
dvander@2762
  5748
    cb
dvander@2762
  5749
No match
dvander@2762
  5750
    aB
dvander@2762
  5751
No match
dvander@2762
  5752
dvander@2762
  5753
/((?i)a)b/
dvander@2762
  5754
dvander@2762
  5755
/(?i:a)b/
dvander@2762
  5756
    ab
dvander@2762
  5757
 0: ab
dvander@2762
  5758
dvander@2762
  5759
/((?i:a))b/
dvander@2762
  5760
    ab
dvander@2762
  5761
 0: ab
dvander@2762
  5762
dvander@2762
  5763
/(?i:a)b/
dvander@2762
  5764
    Ab
dvander@2762
  5765
 0: Ab
dvander@2762
  5766
dvander@2762
  5767
/((?i:a))b/
dvander@2762
  5768
    Ab
dvander@2762
  5769
 0: Ab
dvander@2762
  5770
dvander@2762
  5771
/(?i:a)b/
dvander@2762
  5772
    *** Failers
dvander@2762
  5773
No match
dvander@2762
  5774
    aB
dvander@2762
  5775
No match
dvander@2762
  5776
    aB
dvander@2762
  5777
No match
dvander@2762
  5778
dvander@2762
  5779
/((?i:a))b/
dvander@2762
  5780
dvander@2762
  5781
/(?:(?-i)a)b/i
dvander@2762
  5782
    ab
dvander@2762
  5783
 0: ab
dvander@2762
  5784
dvander@2762
  5785
/((?-i)a)b/i
dvander@2762
  5786
    ab
dvander@2762
  5787
 0: ab
dvander@2762
  5788
dvander@2762
  5789
/(?:(?-i)a)b/i
dvander@2762
  5790
    aB
dvander@2762
  5791
 0: aB
dvander@2762
  5792
dvander@2762
  5793
/((?-i)a)b/i
dvander@2762
  5794
    aB
dvander@2762
  5795
 0: aB
dvander@2762
  5796
dvander@2762
  5797
/(?:(?-i)a)b/i
dvander@2762
  5798
    *** Failers
dvander@2762
  5799
No match
dvander@2762
  5800
    aB
dvander@2762
  5801
 0: aB
dvander@2762
  5802
    Ab
dvander@2762
  5803
No match
dvander@2762
  5804
dvander@2762
  5805
/((?-i)a)b/i
dvander@2762
  5806
dvander@2762
  5807
/(?:(?-i)a)b/i
dvander@2762
  5808
    aB
dvander@2762
  5809
 0: aB
dvander@2762
  5810
dvander@2762
  5811
/((?-i)a)b/i
dvander@2762
  5812
    aB
dvander@2762
  5813
 0: aB
dvander@2762
  5814
dvander@2762
  5815
/(?:(?-i)a)b/i
dvander@2762
  5816
    *** Failers
dvander@2762
  5817
No match
dvander@2762
  5818
    Ab
dvander@2762
  5819
No match
dvander@2762
  5820
    AB
dvander@2762
  5821
No match
dvander@2762
  5822
dvander@2762
  5823
/((?-i)a)b/i
dvander@2762
  5824
dvander@2762
  5825
/(?-i:a)b/i
dvander@2762
  5826
    ab
dvander@2762
  5827
 0: ab
dvander@2762
  5828
dvander@2762
  5829
/((?-i:a))b/i
dvander@2762
  5830
    ab
dvander@2762
  5831
 0: ab
dvander@2762
  5832
dvander@2762
  5833
/(?-i:a)b/i
dvander@2762
  5834
    aB
dvander@2762
  5835
 0: aB
dvander@2762
  5836
dvander@2762
  5837
/((?-i:a))b/i
dvander@2762
  5838
    aB
dvander@2762
  5839
 0: aB
dvander@2762
  5840
dvander@2762
  5841
/(?-i:a)b/i
dvander@2762
  5842
    *** Failers
dvander@2762
  5843
No match
dvander@2762
  5844
    AB
dvander@2762
  5845
No match
dvander@2762
  5846
    Ab
dvander@2762
  5847
No match
dvander@2762
  5848
dvander@2762
  5849
/((?-i:a))b/i
dvander@2762
  5850
dvander@2762
  5851
/(?-i:a)b/i
dvander@2762
  5852
    aB
dvander@2762
  5853
 0: aB
dvander@2762
  5854
dvander@2762
  5855
/((?-i:a))b/i
dvander@2762
  5856
    aB
dvander@2762
  5857
 0: aB
dvander@2762
  5858
dvander@2762
  5859
/(?-i:a)b/i
dvander@2762
  5860
    *** Failers
dvander@2762
  5861
No match
dvander@2762
  5862
    Ab
dvander@2762
  5863
No match
dvander@2762
  5864
    AB
dvander@2762
  5865
No match
dvander@2762
  5866
dvander@2762
  5867
/((?-i:a))b/i
dvander@2762
  5868
dvander@2762
  5869
/((?-i:a.))b/i
dvander@2762
  5870
    *** Failers
dvander@2762
  5871
No match
dvander@2762
  5872
    AB
dvander@2762
  5873
No match
dvander@2762
  5874
    a\nB
dvander@2762
  5875
No match
dvander@2762
  5876
dvander@2762
  5877
/((?s-i:a.))b/i
dvander@2762
  5878
    a\nB
dvander@2762
  5879
 0: a\x0aB
dvander@2762
  5880
dvander@2762
  5881
/(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
dvander@2762
  5882
    cabbbb
dvander@2762
  5883
 0: cabbbb
dvander@2762
  5884
dvander@2762
  5885
/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
dvander@2762
  5886
    caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
dvander@2762
  5887
 0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
dvander@2762
  5888
dvander@2762
  5889
/foo\w*\d{4}baz/
dvander@2762
  5890
    foobar1234baz
dvander@2762
  5891
 0: foobar1234baz
dvander@2762
  5892
dvander@2762
  5893
/x(~~)*(?:(?:F)?)?/
dvander@2762
  5894
    x~~
dvander@2762
  5895
 0: x~~
dvander@2762
  5896
 1: x
dvander@2762
  5897
dvander@2762
  5898
/^a(?#xxx){3}c/
dvander@2762
  5899
    aaac
dvander@2762
  5900
 0: aaac
dvander@2762
  5901
dvander@2762
  5902
/^a (?#xxx) (?#yyy) {3}c/x
dvander@2762
  5903
    aaac
dvander@2762
  5904
 0: aaac
dvander@2762
  5905
dvander@2762
  5906
/(?<![cd])b/
dvander@2762
  5907
    *** Failers
dvander@2762
  5908
No match
dvander@2762
  5909
    B\nB
dvander@2762
  5910
No match
dvander@2762
  5911
    dbcb
dvander@2762
  5912
No match
dvander@2762
  5913
dvander@2762
  5914
/(?<![cd])[ab]/
dvander@2762
  5915
    dbaacb
dvander@2762
  5916
 0: a
dvander@2762
  5917
dvander@2762
  5918
/(?<!(c|d))b/
dvander@2762
  5919
dvander@2762
  5920
/(?<!(c|d))[ab]/
dvander@2762
  5921
    dbaacb
dvander@2762
  5922
 0: a
dvander@2762
  5923
dvander@2762
  5924
/(?<!cd)[ab]/
dvander@2762
  5925
    cdaccb
dvander@2762
  5926
 0: b
dvander@2762
  5927
dvander@2762
  5928
/^(?:a?b?)*$/
dvander@2762
  5929
    *** Failers
dvander@2762
  5930
No match
dvander@2762
  5931
    dbcb
dvander@2762
  5932
No match
dvander@2762
  5933
    a--
dvander@2762
  5934
No match
dvander@2762
  5935
dvander@2762
  5936
/((?s)^a(.))((?m)^b$)/
dvander@2762
  5937
    a\nb\nc\n
dvander@2762
  5938
 0: a\x0ab
dvander@2762
  5939
dvander@2762
  5940
/((?m)^b$)/
dvander@2762
  5941
    a\nb\nc\n
dvander@2762
  5942
 0: b
dvander@2762
  5943
dvander@2762
  5944
/(?m)^b/
dvander@2762
  5945
    a\nb\n
dvander@2762
  5946
 0: b
dvander@2762
  5947
dvander@2762
  5948
/(?m)^(b)/
dvander@2762
  5949
    a\nb\n
dvander@2762
  5950
 0: b
dvander@2762
  5951
dvander@2762
  5952
/((?m)^b)/
dvander@2762
  5953
    a\nb\n
dvander@2762
  5954
 0: b
dvander@2762
  5955
dvander@2762
  5956
/\n((?m)^b)/
dvander@2762
  5957
    a\nb\n
dvander@2762
  5958
 0: \x0ab
dvander@2762
  5959
dvander@2762
  5960
/((?s).)c(?!.)/
dvander@2762
  5961
    a\nb\nc\n
dvander@2762
  5962
 0: \x0ac
dvander@2762
  5963
    a\nb\nc\n
dvander@2762
  5964
 0: \x0ac
dvander@2762
  5965
dvander@2762
  5966
/((?s)b.)c(?!.)/
dvander@2762
  5967
    a\nb\nc\n
dvander@2762
  5968
 0: b\x0ac
dvander@2762
  5969
    a\nb\nc\n
dvander@2762
  5970
 0: b\x0ac
dvander@2762
  5971
dvander@2762
  5972
/^b/
dvander@2762
  5973
dvander@2762
  5974
/()^b/
dvander@2762
  5975
    *** Failers
dvander@2762
  5976
No match
dvander@2762
  5977
    a\nb\nc\n
dvander@2762
  5978
No match
dvander@2762
  5979
    a\nb\nc\n
dvander@2762
  5980
No match
dvander@2762
  5981
dvander@2762
  5982
/((?m)^b)/
dvander@2762
  5983
    a\nb\nc\n
dvander@2762
  5984
 0: b
dvander@2762
  5985
dvander@2762
  5986
/(?(?!a)a|b)/
dvander@2762
  5987
dvander@2762
  5988
/(?(?!a)b|a)/
dvander@2762
  5989
    a
dvander@2762
  5990
 0: a
dvander@2762
  5991
dvander@2762
  5992
/(?(?=a)b|a)/
dvander@2762
  5993
    *** Failers
dvander@2762
  5994
No match
dvander@2762
  5995
    a
dvander@2762
  5996
No match
dvander@2762
  5997
    a
dvander@2762
  5998
No match
dvander@2762
  5999
dvander@2762
  6000
/(?(?=a)a|b)/
dvander@2762
  6001
    a
dvander@2762
  6002
 0: a
dvander@2762
  6003
dvander@2762
  6004
/(\w+:)+/
dvander@2762
  6005
    one:
dvander@2762
  6006
 0: one:
dvander@2762
  6007
dvander@2762
  6008
/$(?<=^(a))/
dvander@2762
  6009
    a
dvander@2762
  6010
 0: 
dvander@2762
  6011
dvander@2762
  6012
/([\w:]+::)?(\w+)$/
dvander@2762
  6013
    abcd
dvander@2762
  6014
 0: abcd
dvander@2762
  6015
    xy:z:::abcd
dvander@2762
  6016
 0: xy:z:::abcd
dvander@2762
  6017
dvander@2762
  6018
/^[^bcd]*(c+)/
dvander@2762
  6019
    aexycd
dvander@2762
  6020
 0: aexyc
dvander@2762
  6021
dvander@2762
  6022
/(a*)b+/
dvander@2762
  6023
    caab
dvander@2762
  6024
 0: aab
dvander@2762
  6025
dvander@2762
  6026
/([\w:]+::)?(\w+)$/
dvander@2762
  6027
    abcd
dvander@2762
  6028
 0: abcd
dvander@2762
  6029
    xy:z:::abcd
dvander@2762
  6030
 0: xy:z:::abcd
dvander@2762
  6031
    *** Failers
dvander@2762
  6032
 0: Failers
dvander@2762
  6033
    abcd:
dvander@2762
  6034
No match
dvander@2762
  6035
    abcd:
dvander@2762
  6036
No match
dvander@2762
  6037
dvander@2762
  6038
/^[^bcd]*(c+)/
dvander@2762
  6039
    aexycd
dvander@2762
  6040
 0: aexyc
dvander@2762
  6041
dvander@2762
  6042
/(>a+)ab/
dvander@2762
  6043
dvander@2762
  6044
/(?>a+)b/
dvander@2762
  6045
    aaab
dvander@2762
  6046
 0: aaab
dvander@2762
  6047
dvander@2762
  6048
/([[:]+)/
dvander@2762
  6049
    a:[b]:
dvander@2762
  6050
 0: :[
dvander@2762
  6051
 1: :
dvander@2762
  6052
dvander@2762
  6053
/([[=]+)/
dvander@2762
  6054
    a=[b]=
dvander@2762
  6055
 0: =[
dvander@2762
  6056
 1: =
dvander@2762
  6057
dvander@2762
  6058
/([[.]+)/
dvander@2762
  6059
    a.[b].
dvander@2762
  6060
 0: .[
dvander@2762
  6061
 1: .
dvander@2762
  6062
dvander@2762
  6063
/((?>a+)b)/
dvander@2762
  6064
    aaab
dvander@2762
  6065
 0: aaab
dvander@2762
  6066
dvander@2762
  6067
/(?>(a+))b/
dvander@2762
  6068
    aaab
dvander@2762
  6069
 0: aaab
dvander@2762
  6070
dvander@2762
  6071
/((?>[^()]+)|\([^()]*\))+/
dvander@2762
  6072
    ((abc(ade)ufh()()x
dvander@2762
  6073
 0: abc(ade)ufh()()x
dvander@2762
  6074
 1: abc(ade)ufh()()
dvander@2762
  6075
 2: abc(ade)ufh()
dvander@2762
  6076
 3: abc(ade)ufh
dvander@2762
  6077
 4: abc(ade)
dvander@2762
  6078
 5: abc
dvander@2762
  6079
dvander@2762
  6080
/a\Z/
dvander@2762
  6081
    *** Failers
dvander@2762
  6082
No match
dvander@2762
  6083
    aaab
dvander@2762
  6084
No match
dvander@2762
  6085
    a\nb\n
dvander@2762
  6086
No match
dvander@2762
  6087
dvander@2762
  6088
/b\Z/
dvander@2762
  6089
    a\nb\n
dvander@2762
  6090
 0: b
dvander@2762
  6091
dvander@2762
  6092
/b\z/
dvander@2762
  6093
dvander@2762
  6094
/b\Z/
dvander@2762
  6095
    a\nb
dvander@2762
  6096
 0: b
dvander@2762
  6097
dvander@2762
  6098
/b\z/
dvander@2762
  6099
    a\nb
dvander@2762
  6100
 0: b
dvander@2762
  6101
    *** Failers
dvander@2762
  6102
No match
dvander@2762
  6103
    
dvander@2762
  6104
/(?>.*)(?<=(abcd|wxyz))/
dvander@2762
  6105
    alphabetabcd
dvander@2762
  6106
 0: alphabetabcd
dvander@2762
  6107
    endingwxyz
dvander@2762
  6108
 0: endingwxyz
dvander@2762
  6109
    *** Failers
dvander@2762
  6110
No match
dvander@2762
  6111
    a rather long string that doesn't end with one of them
dvander@2762
  6112
No match
dvander@2762
  6113
dvander@2762
  6114
/word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
dvander@2762
  6115
    word cat dog elephant mussel cow horse canary baboon snake shark otherword
dvander@2762
  6116
 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
dvander@2762
  6117
    word cat dog elephant mussel cow horse canary baboon snake shark
dvander@2762
  6118
No match
dvander@2762
  6119
  
dvander@2762
  6120
/word (?>[a-zA-Z0-9]+ ){0,30}otherword/
dvander@2762
  6121
    word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope
dvander@2762
  6122
No match
dvander@2762
  6123
dvander@2762
  6124
/(?<=\d{3}(?!999))foo/
dvander@2762
  6125
    999foo
dvander@2762
  6126
 0: foo
dvander@2762
  6127
    123999foo 
dvander@2762
  6128
 0: foo
dvander@2762
  6129
    *** Failers
dvander@2762
  6130
No match
dvander@2762
  6131
    123abcfoo
dvander@2762
  6132
No match
dvander@2762
  6133
    
dvander@2762
  6134
/(?<=(?!...999)\d{3})foo/
dvander@2762
  6135
    999foo
dvander@2762
  6136
 0: foo
dvander@2762
  6137
    123999foo 
dvander@2762
  6138
 0: foo
dvander@2762
  6139
    *** Failers
dvander@2762
  6140
No match
dvander@2762
  6141
    123abcfoo
dvander@2762
  6142
No match
dvander@2762
  6143
dvander@2762
  6144
/(?<=\d{3}(?!999)...)foo/
dvander@2762
  6145
    123abcfoo
dvander@2762
  6146
 0: foo
dvander@2762
  6147
    123456foo 
dvander@2762
  6148
 0: foo
dvander@2762
  6149
    *** Failers
dvander@2762
  6150
No match
dvander@2762
  6151
    123999foo  
dvander@2762
  6152
No match
dvander@2762
  6153
    
dvander@2762
  6154
/(?<=\d{3}...)(?<!999)foo/
dvander@2762
  6155
    123abcfoo   
dvander@2762
  6156
 0: foo
dvander@2762
  6157
    123456foo 
dvander@2762
  6158
 0: foo
dvander@2762
  6159
    *** Failers
dvander@2762
  6160
No match
dvander@2762
  6161
    123999foo  
dvander@2762
  6162
No match
dvander@2762
  6163
dvander@2762
  6164
/((Z)+|A)*/
dvander@2762
  6165
    ZABCDEFG
dvander@2762
  6166
 0: ZA
dvander@2762
  6167
 1: Z
dvander@2762
  6168
 2: 
dvander@2762
  6169
dvander@2762
  6170
/(Z()|A)*/
dvander@2762
  6171
    ZABCDEFG
dvander@2762
  6172
 0: ZA
dvander@2762
  6173
 1: Z
dvander@2762
  6174
 2: 
dvander@2762
  6175
dvander@2762
  6176
/(Z(())|A)*/
dvander@2762
  6177
    ZABCDEFG
dvander@2762
  6178
 0: ZA
dvander@2762
  6179
 1: Z
dvander@2762
  6180
 2: 
dvander@2762
  6181
dvander@2762
  6182
/((?>Z)+|A)*/
dvander@2762
  6183
    ZABCDEFG
dvander@2762
  6184
 0: ZA
dvander@2762
  6185
 1: Z
dvander@2762
  6186
 2: 
dvander@2762
  6187
dvander@2762
  6188
/((?>)+|A)*/
dvander@2762
  6189
    ZABCDEFG
dvander@2762
  6190
 0: 
dvander@2762
  6191
dvander@2762
  6192
/a*/g
dvander@2762
  6193
    abbab
dvander@2762
  6194
 0: a
dvander@2762
  6195
 1: 
dvander@2762
  6196
 0: 
dvander@2762
  6197
 0: 
dvander@2762
  6198
 0: a
dvander@2762
  6199
 1: 
dvander@2762
  6200
 0: 
dvander@2762
  6201
 0: 
dvander@2762
  6202
dvander@2762
  6203
/^[a-\d]/
dvander@2762
  6204
    abcde
dvander@2762
  6205
 0: a
dvander@2762
  6206
    -things
dvander@2762
  6207
 0: -
dvander@2762
  6208
    0digit
dvander@2762
  6209
 0: 0
dvander@2762
  6210
    *** Failers
dvander@2762
  6211
No match
dvander@2762
  6212
    bcdef    
dvander@2762
  6213
No match
dvander@2762
  6214
dvander@2762
  6215
/^[\d-a]/
dvander@2762
  6216
    abcde
dvander@2762
  6217
 0: a
dvander@2762
  6218
    -things
dvander@2762
  6219
 0: -
dvander@2762
  6220
    0digit
dvander@2762
  6221
 0: 0
dvander@2762
  6222
    *** Failers
dvander@2762
  6223
No match
dvander@2762
  6224
    bcdef    
dvander@2762
  6225
No match
dvander@2762
  6226
    
dvander@2762
  6227
/[[:space:]]+/
dvander@2762
  6228
    > \x09\x0a\x0c\x0d\x0b<
dvander@2762
  6229
 0:  \x09\x0a\x0c\x0d\x0b
dvander@2762
  6230
 1:  \x09\x0a\x0c\x0d
dvander@2762
  6231
 2:  \x09\x0a\x0c
dvander@2762
  6232
 3:  \x09\x0a
dvander@2762
  6233
 4:  \x09
dvander@2762
  6234
 5:  
dvander@2762
  6235
     
dvander@2762
  6236
/[[:blank:]]+/
dvander@2762
  6237
    > \x09\x0a\x0c\x0d\x0b<
dvander@2762
  6238
 0:  \x09
dvander@2762
  6239
 1:  
dvander@2762
  6240
     
dvander@2762
  6241
/[\s]+/
dvander@2762
  6242
    > \x09\x0a\x0c\x0d\x0b<
dvander@2762
  6243
 0:  \x09\x0a\x0c\x0d
dvander@2762
  6244
 1:  \x09\x0a\x0c
dvander@2762
  6245
 2:  \x09\x0a
dvander@2762
  6246
 3:  \x09
dvander@2762
  6247
 4:  
dvander@2762
  6248
     
dvander@2762
  6249
/\s+/
dvander@2762
  6250
    > \x09\x0a\x0c\x0d\x0b<
dvander@2762
  6251
 0:  \x09\x0a\x0c\x0d
dvander@2762
  6252
 1:  \x09\x0a\x0c
dvander@2762
  6253
 2:  \x09\x0a
dvander@2762
  6254
 3:  \x09
dvander@2762
  6255
 4:  
dvander@2762
  6256
     
dvander@2762
  6257
/a
dvander@2762
  6258
b/x
dvander@2762
  6259
    ab
dvander@2762
  6260
No match
dvander@2762
  6261
dvander@2762
  6262
/(?!\A)x/m
dvander@2762
  6263
  a\nxb\n
dvander@2762
  6264
 0: x
dvander@2762
  6265
dvander@2762
  6266
/(?!^)x/m
dvander@2762
  6267
  a\nxb\n
dvander@2762
  6268
No match
dvander@2762
  6269
dvander@2762
  6270
/abc\Qabc\Eabc/
dvander@2762
  6271
    abcabcabc
dvander@2762
  6272
 0: abcabcabc
dvander@2762
  6273
    
dvander@2762
  6274
/abc\Q(*+|\Eabc/
dvander@2762
  6275
    abc(*+|abc 
dvander@2762
  6276
 0: abc(*+|abc
dvander@2762
  6277
dvander@2762
  6278
/   abc\Q abc\Eabc/x
dvander@2762
  6279
    abc abcabc
dvander@2762
  6280
 0: abc abcabc
dvander@2762
  6281
    *** Failers
dvander@2762
  6282
No match
dvander@2762
  6283
    abcabcabc  
dvander@2762
  6284
No match
dvander@2762
  6285
    
dvander@2762
  6286
/abc#comment
dvander@2762
  6287
    \Q#not comment
dvander@2762
  6288
    literal\E/x
dvander@2762
  6289
    abc#not comment\n    literal     
dvander@2762
  6290
 0: abc#not comment\x0a    literal
dvander@2762
  6291
dvander@2762
  6292
/abc#comment
dvander@2762
  6293
    \Q#not comment
dvander@2762
  6294
    literal/x
dvander@2762
  6295
    abc#not comment\n    literal     
dvander@2762
  6296
 0: abc#not comment\x0a    literal
dvander@2762
  6297
dvander@2762
  6298
/abc#comment
dvander@2762
  6299
    \Q#not comment
dvander@2762
  6300
    literal\E #more comment
dvander@2762
  6301
    /x
dvander@2762
  6302
    abc#not comment\n    literal     
dvander@2762
  6303
 0: abc#not comment\x0a    literal
dvander@2762
  6304
dvander@2762
  6305
/abc#comment
dvander@2762
  6306
    \Q#not comment
dvander@2762
  6307
    literal\E #more comment/x
dvander@2762
  6308
    abc#not comment\n    literal     
dvander@2762
  6309
 0: abc#not comment\x0a    literal
dvander@2762
  6310
dvander@2762
  6311
/\Qabc\$xyz\E/
dvander@2762
  6312
    abc\\\$xyz
dvander@2762
  6313
 0: abc\$xyz
dvander@2762
  6314
dvander@2762
  6315
/\Qabc\E\$\Qxyz\E/
dvander@2762
  6316
    abc\$xyz
dvander@2762
  6317
 0: abc$xyz
dvander@2762
  6318
dvander@2762
  6319
/\Gabc/
dvander@2762
  6320
    abc
dvander@2762
  6321
 0: abc
dvander@2762
  6322
    *** Failers
dvander@2762
  6323
No match
dvander@2762
  6324
    xyzabc  
dvander@2762
  6325
No match
dvander@2762
  6326
dvander@2762
  6327
/\Gabc./g
dvander@2762
  6328
    abc1abc2xyzabc3
dvander@2762
  6329
 0: abc1
dvander@2762
  6330
 0: abc2
dvander@2762
  6331
dvander@2762
  6332
/abc./g
dvander@2762
  6333
    abc1abc2xyzabc3 
dvander@2762
  6334
 0: abc1
dvander@2762
  6335
 0: abc2
dvander@2762
  6336
 0: abc3
dvander@2762
  6337
dvander@2762
  6338
/a(?x: b c )d/
dvander@2762
  6339
    XabcdY
dvander@2762
  6340
 0: abcd
dvander@2762
  6341
    *** Failers 
dvander@2762
  6342
No match
dvander@2762
  6343
    Xa b c d Y 
dvander@2762
  6344
No match
dvander@2762
  6345
dvander@2762
  6346
/((?x)x y z | a b c)/
dvander@2762
  6347
    XabcY
dvander@2762
  6348
 0: abc
dvander@2762
  6349
    AxyzB 
dvander@2762
  6350
 0: xyz
dvander@2762
  6351
dvander@2762
  6352
/(?i)AB(?-i)C/
dvander@2762
  6353
    XabCY
dvander@2762
  6354
 0: abC
dvander@2762
  6355
    *** Failers
dvander@2762
  6356
No match
dvander@2762
  6357
    XabcY  
dvander@2762
  6358
No match
dvander@2762
  6359
dvander@2762
  6360
/((?i)AB(?-i)C|D)E/
dvander@2762
  6361
    abCE
dvander@2762
  6362
 0: abCE
dvander@2762
  6363
    DE
dvander@2762
  6364
 0: DE
dvander@2762
  6365
    *** Failers
dvander@2762
  6366
No match
dvander@2762
  6367
    abcE
dvander@2762
  6368
No match
dvander@2762
  6369
    abCe  
dvander@2762
  6370
No match
dvander@2762
  6371
    dE
dvander@2762
  6372
No match
dvander@2762
  6373
    De    
dvander@2762
  6374
No match
dvander@2762
  6375
dvander@2762
  6376
/[z\Qa-d]\E]/
dvander@2762
  6377
    z
dvander@2762
  6378
 0: z
dvander@2762
  6379
    a
dvander@2762
  6380
 0: a
dvander@2762
  6381
    -
dvander@2762
  6382
 0: -
dvander@2762
  6383
    d
dvander@2762
  6384
 0: d
dvander@2762
  6385
    ] 
dvander@2762
  6386
 0: ]
dvander@2762
  6387
    *** Failers
dvander@2762
  6388
 0: a
dvander@2762
  6389
    b     
dvander@2762
  6390
No match
dvander@2762
  6391
dvander@2762
  6392
/[\z\C]/
dvander@2762
  6393
    z
dvander@2762
  6394
 0: z
dvander@2762
  6395
    C 
dvander@2762
  6396
 0: C
dvander@2762
  6397
    
dvander@2762
  6398
/\M/
dvander@2762
  6399
    M 
dvander@2762
  6400
 0: M
dvander@2762
  6401
    
dvander@2762
  6402
/(a+)*b/
dvander@2762
  6403
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
dvander@2762
  6404
No match
dvander@2762
  6405
    
dvander@2762
  6406
/(?i)reg(?:ul(?:[a�]|ae)r|ex)/
dvander@2762
  6407
    REGular
dvander@2762
  6408
 0: REGular
dvander@2762
  6409
    regulaer
dvander@2762
  6410
 0: regulaer
dvander@2762
  6411
    Regex  
dvander@2762
  6412
 0: Regex
dvander@2762
  6413
    regul�r 
dvander@2762
  6414
 0: regul\xe4r
dvander@2762
  6415
dvander@2762
  6416
/����[�-��-�]+/
dvander@2762
  6417
    �����
dvander@2762
  6418
 0: \xc5\xe6\xe5\xe4\xe0
dvander@2762
  6419
    �����
dvander@2762
  6420
 0: \xc5\xe6\xe5\xe4\xff
dvander@2762
  6421
    �����
dvander@2762
  6422
 0: \xc5\xe6\xe5\xe4\xc0
dvander@2762
  6423
    �����
dvander@2762
  6424
 0: \xc5\xe6\xe5\xe4\xdf
dvander@2762
  6425
dvander@2762
  6426
/(?<=Z)X./
dvander@2762
  6427
    \x84XAZXB
dvander@2762
  6428
 0: XB
dvander@2762
  6429
dvander@2762
  6430
/^(?(2)a|(1)(2))+$/
dvander@2762
  6431
    123a
dvander@2762
  6432
Error -17
dvander@2762
  6433
dvander@2762
  6434
/(?<=a|bbbb)c/
dvander@2762
  6435
    ac
dvander@2762
  6436
 0: c
dvander@2762
  6437
    bbbbc
dvander@2762
  6438
 0: c
dvander@2762
  6439
dvander@2762
  6440
/abc/>testsavedregex
dvander@2762
  6441
Compiled regex written to testsavedregex
dvander@2762
  6442
<testsavedregex
dvander@2762
  6443
Compiled regex loaded from testsavedregex
dvander@2762
  6444
No study data
dvander@2762
  6445
    abc
dvander@2762
  6446
 0: abc
dvander@2762
  6447
    *** Failers
dvander@2762
  6448
No match
dvander@2762
  6449
    bca
dvander@2762
  6450
No match
dvander@2762
  6451
    
dvander@2762
  6452
/abc/F>testsavedregex
dvander@2762
  6453
Compiled regex written to testsavedregex
dvander@2762
  6454
<testsavedregex
dvander@2762
  6455
Compiled regex (byte-inverted) loaded from testsavedregex
dvander@2762
  6456
No study data
dvander@2762
  6457
    abc
dvander@2762
  6458
 0: abc
dvander@2762
  6459
    *** Failers
dvander@2762
  6460
No match
dvander@2762
  6461
    bca
dvander@2762
  6462
No match
dvander@2762
  6463
dvander@2762
  6464
/(a|b)/S>testsavedregex
dvander@2762
  6465
Compiled regex written to testsavedregex
dvander@2762
  6466
Study data written to testsavedregex
dvander@2762
  6467
<testsavedregex
dvander@2762
  6468
Compiled regex loaded from testsavedregex
dvander@2762
  6469
Study data loaded from testsavedregex
dvander@2762
  6470
    abc
dvander@2762
  6471
 0: a
dvander@2762
  6472
    *** Failers
dvander@2762
  6473
 0: a
dvander@2762
  6474
    def  
dvander@2762
  6475
No match
dvander@2762
  6476
    
dvander@2762
  6477
/(a|b)/SF>testsavedregex
dvander@2762
  6478
Compiled regex written to testsavedregex
dvander@2762
  6479
Study data written to testsavedregex
dvander@2762
  6480
<testsavedregex
dvander@2762
  6481
Compiled regex (byte-inverted) loaded from testsavedregex
dvander@2762
  6482
Study data loaded from testsavedregex
dvander@2762
  6483
    abc
dvander@2762
  6484
 0: a
dvander@2762
  6485
    *** Failers
dvander@2762
  6486
 0: a
dvander@2762
  6487
    def  
dvander@2762
  6488
No match
dvander@2762
  6489
    
dvander@2762
  6490
/line\nbreak/
dvander@2762
  6491
    this is a line\nbreak
dvander@2762
  6492
 0: line\x0abreak
dvander@2762
  6493
    line one\nthis is a line\nbreak in the second line 
dvander@2762
  6494
 0: line\x0abreak
dvander@2762
  6495
dvander@2762
  6496
/line\nbreak/f
dvander@2762
  6497
    this is a line\nbreak
dvander@2762
  6498
 0: line\x0abreak
dvander@2762
  6499
    ** Failers 
dvander@2762
  6500
No match
dvander@2762
  6501
    line one\nthis is a line\nbreak in the second line 
dvander@2762
  6502
No match
dvander@2762
  6503
dvander@2762
  6504
/line\nbreak/mf
dvander@2762
  6505
    this is a line\nbreak
dvander@2762
  6506
 0: line\x0abreak
dvander@2762
  6507
    ** Failers 
dvander@2762
  6508
No match
dvander@2762
  6509
    line one\nthis is a line\nbreak in the second line 
dvander@2762
  6510
No match
dvander@2762
  6511
dvander@2762
  6512
/1234/
dvander@2762
  6513
    123\P
dvander@2762
  6514
Partial match: 123
dvander@2762
  6515
    a4\P\R
dvander@2762
  6516
No match
dvander@2762
  6517
dvander@2762
  6518
/1234/
dvander@2762
  6519
    123\P
dvander@2762
  6520
Partial match: 123
dvander@2762
  6521
    4\P\R
dvander@2762
  6522
 0: 4
dvander@2762
  6523
dvander@2762
  6524
/^/mg
dvander@2762
  6525
    a\nb\nc\n
dvander@2762
  6526
 0: 
dvander@2762
  6527
 0: 
dvander@2762
  6528
 0: 
dvander@2762
  6529
    \ 
dvander@2762
  6530
 0: 
dvander@2762
  6531
    
dvander@2762
  6532
/(?<=C\n)^/mg
dvander@2762
  6533
    A\nC\nC\n 
dvander@2762
  6534
 0: 
dvander@2762
  6535
dvander@2762
  6536
/(?s)A?B/
dvander@2762
  6537
    AB
dvander@2762
  6538
 0: AB
dvander@2762
  6539
    aB  
dvander@2762
  6540
 0: B
dvander@2762
  6541
dvander@2762
  6542
/(?s)A*B/
dvander@2762
  6543
    AB
dvander@2762
  6544
 0: AB
dvander@2762
  6545
    aB  
dvander@2762
  6546
 0: B
dvander@2762
  6547
dvander@2762
  6548
/(?m)A?B/
dvander@2762
  6549
    AB
dvander@2762
  6550
 0: AB
dvander@2762
  6551
    aB  
dvander@2762
  6552
 0: B
dvander@2762
  6553
dvander@2762
  6554
/(?m)A*B/
dvander@2762
  6555
    AB
dvander@2762
  6556
 0: AB
dvander@2762
  6557
    aB  
dvander@2762
  6558
 0: B
dvander@2762
  6559
dvander@2762
  6560
/Content-Type\x3A[^\r\n]{6,}/
dvander@2762
  6561
    Content-Type:xxxxxyyy 
dvander@2762
  6562
 0: Content-Type:xxxxxyyy
dvander@2762
  6563
 1: Content-Type:xxxxxyy
dvander@2762
  6564
 2: Content-Type:xxxxxy
dvander@2762
  6565
dvander@2762
  6566
/Content-Type\x3A[^\r\n]{6,}z/
dvander@2762
  6567
    Content-Type:xxxxxyyyz
dvander@2762
  6568
 0: Content-Type:xxxxxyyyz
dvander@2762
  6569
dvander@2762
  6570
/Content-Type\x3A[^a]{6,}/
dvander@2762
  6571
    Content-Type:xxxyyy 
dvander@2762
  6572
 0: Content-Type:xxxyyy
dvander@2762
  6573
dvander@2762
  6574
/Content-Type\x3A[^a]{6,}z/
dvander@2762
  6575
    Content-Type:xxxyyyz
dvander@2762
  6576
 0: Content-Type:xxxyyyz
dvander@2762
  6577
dvander@2762
  6578
/^abc/m
dvander@2762
  6579
    xyz\nabc
dvander@2762
  6580
 0: abc
dvander@2762
  6581
    xyz\nabc\<lf>
dvander@2762
  6582
 0: abc
dvander@2762
  6583
    xyz\r\nabc\<lf>
dvander@2762
  6584
 0: abc
dvander@2762
  6585
    xyz\rabc\<cr>
dvander@2762
  6586
 0: abc
dvander@2762
  6587
    xyz\r\nabc\<crlf>
dvander@2762
  6588
 0: abc
dvander@2762
  6589
    ** Failers 
dvander@2762
  6590
No match
dvander@2762
  6591
    xyz\nabc\<cr>
dvander@2762
  6592
No match
dvander@2762
  6593
    xyz\r\nabc\<cr>
dvander@2762
  6594
No match
dvander@2762
  6595
    xyz\nabc\<crlf>
dvander@2762
  6596
No match
dvander@2762
  6597
    xyz\rabc\<crlf>
dvander@2762
  6598
No match
dvander@2762
  6599
    xyz\rabc\<lf>
dvander@2762
  6600
No match
dvander@2762
  6601
    
dvander@2762
  6602
/abc$/m<lf>
dvander@2762
  6603
    xyzabc
dvander@2762
  6604
 0: abc
dvander@2762
  6605
    xyzabc\n 
dvander@2762
  6606
 0: abc
dvander@2762
  6607
    xyzabc\npqr 
dvander@2762
  6608
 0: abc
dvander@2762
  6609
    xyzabc\r\<cr> 
dvander@2762
  6610
 0: abc
dvander@2762
  6611
    xyzabc\rpqr\<cr> 
dvander@2762
  6612
 0: abc
dvander@2762
  6613
    xyzabc\r\n\<crlf> 
dvander@2762
  6614
 0: abc
dvander@2762
  6615
    xyzabc\r\npqr\<crlf> 
dvander@2762
  6616
 0: abc
dvander@2762
  6617
    ** Failers
dvander@2762
  6618
No match
dvander@2762
  6619
    xyzabc\r 
dvander@2762
  6620
No match
dvander@2762
  6621
    xyzabc\rpqr 
dvander@2762
  6622
No match
dvander@2762
  6623
    xyzabc\r\n 
dvander@2762
  6624
No match
dvander@2762
  6625
    xyzabc\r\npqr 
dvander@2762
  6626
No match
dvander@2762
  6627
    
dvander@2762
  6628
/^abc/m<cr>
dvander@2762
  6629
    xyz\rabcdef
dvander@2762
  6630
 0: abc
dvander@2762
  6631
    xyz\nabcdef\<lf>
dvander@2762
  6632
 0: abc
dvander@2762
  6633
    ** Failers  
dvander@2762
  6634
No match
dvander@2762
  6635
    xyz\nabcdef
dvander@2762
  6636
No match
dvander@2762
  6637
       
dvander@2762
  6638
/^abc/m<lf>
dvander@2762
  6639
    xyz\nabcdef
dvander@2762
  6640
 0: abc
dvander@2762
  6641
    xyz\rabcdef\<cr>
dvander@2762
  6642
 0: abc
dvander@2762
  6643
    ** Failers  
dvander@2762
  6644
No match
dvander@2762
  6645
    xyz\rabcdef
dvander@2762
  6646
No match
dvander@2762
  6647
       
dvander@2762
  6648
/^abc/m<crlf>
dvander@2762
  6649
    xyz\r\nabcdef
dvander@2762
  6650
 0: abc
dvander@2762
  6651
    xyz\rabcdef\<cr>
dvander@2762
  6652
 0: abc
dvander@2762
  6653
    ** Failers  
dvander@2762
  6654
No match
dvander@2762
  6655
    xyz\rabcdef
dvander@2762
  6656
No match
dvander@2762
  6657
    
dvander@2762
  6658
/.*/<lf>
dvander@2762
  6659
    abc\ndef
dvander@2762
  6660
 0: abc
dvander@2762
  6661
 1: ab
dvander@2762
  6662
 2: a
dvander@2762
  6663
 3: 
dvander@2762
  6664
    abc\rdef
dvander@2762
  6665
 0: abc\x0ddef
dvander@2762
  6666
 1: abc\x0dde
dvander@2762
  6667
 2: abc\x0dd
dvander@2762
  6668
 3: abc\x0d
dvander@2762
  6669
 4: abc
dvander@2762
  6670
 5: ab
dvander@2762
  6671
 6: a
dvander@2762
  6672
 7: 
dvander@2762
  6673
    abc\r\ndef
dvander@2762
  6674
 0: abc\x0d
dvander@2762
  6675
 1: abc
dvander@2762
  6676
 2: ab
dvander@2762
  6677
 3: a
dvander@2762
  6678
 4: 
dvander@2762
  6679
    \<cr>abc\ndef
dvander@2762
  6680
 0: abc\x0adef
dvander@2762
  6681
 1: abc\x0ade
dvander@2762
  6682
 2: abc\x0ad
dvander@2762
  6683
 3: abc\x0a
dvander@2762
  6684
 4: abc
dvander@2762
  6685
 5: ab
dvander@2762
  6686
 6: a
dvander@2762
  6687
 7: 
dvander@2762
  6688
    \<cr>abc\rdef
dvander@2762
  6689
 0: abc
dvander@2762
  6690
 1: ab
dvander@2762
  6691
 2: a
dvander@2762
  6692
 3: 
dvander@2762
  6693
    \<cr>abc\r\ndef
dvander@2762
  6694
 0: abc
dvander@2762
  6695
 1: ab
dvander@2762
  6696
 2: a
dvander@2762
  6697
 3: 
dvander@2762
  6698
    \<crlf>abc\ndef
dvander@2762
  6699
 0: abc\x0adef
dvander@2762
  6700
 1: abc\x0ade
dvander@2762
  6701
 2: abc\x0ad
dvander@2762
  6702
 3: abc\x0a
dvander@2762
  6703
 4: abc
dvander@2762
  6704
 5: ab
dvander@2762
  6705
 6: a
dvander@2762
  6706
 7: 
dvander@2762
  6707
    \<crlf>abc\rdef
dvander@2762
  6708
 0: abc\x0ddef
dvander@2762
  6709
 1: abc\x0dde
dvander@2762
  6710
 2: abc\x0dd
dvander@2762
  6711
 3: abc\x0d
dvander@2762
  6712
 4: abc
dvander@2762
  6713
 5: ab
dvander@2762
  6714
 6: a
dvander@2762
  6715
 7: 
dvander@2762
  6716
    \<crlf>abc\r\ndef
dvander@2762
  6717
 0: abc
dvander@2762
  6718
 1: ab
dvander@2762
  6719
 2: a
dvander@2762
  6720
 3: 
dvander@2762
  6721
dvander@2762
  6722
/\w+(.)(.)?def/s
dvander@2762
  6723
    abc\ndef
dvander@2762
  6724
 0: abc\x0adef
dvander@2762
  6725
    abc\rdef
dvander@2762
  6726
 0: abc\x0ddef
dvander@2762
  6727
    abc\r\ndef
dvander@2762
  6728
 0: abc\x0d\x0adef
dvander@2762
  6729
dvander@2762
  6730
/^\w+=.*(\\\n.*)*/
dvander@2762
  6731
    abc=xyz\\\npqr
dvander@2762
  6732
 0: abc=xyz\\x0apqr
dvander@2762
  6733
 1: abc=xyz\\x0apq
dvander@2762
  6734
 2: abc=xyz\\x0ap
dvander@2762
  6735
 3: abc=xyz\\x0a
dvander@2762
  6736
 4: abc=xyz\
dvander@2762
  6737
 5: abc=xyz
dvander@2762
  6738
 6: abc=xy
dvander@2762
  6739
 7: abc=x
dvander@2762
  6740
 8: abc=
dvander@2762
  6741
dvander@2762
  6742
/^(a()*)*/
dvander@2762
  6743
    aaaa
dvander@2762
  6744
 0: aaaa
dvander@2762
  6745
 1: aaa
dvander@2762
  6746
 2: aa
dvander@2762
  6747
 3: a
dvander@2762
  6748
 4: 
dvander@2762
  6749
dvander@2762
  6750
/^(?:a(?:(?:))*)*/
dvander@2762
  6751
    aaaa
dvander@2762
  6752
 0: aaaa
dvander@2762
  6753
 1: aaa
dvander@2762
  6754
 2: aa
dvander@2762
  6755
 3: a
dvander@2762
  6756
 4: 
dvander@2762
  6757
dvander@2762
  6758
/^(a()+)+/
dvander@2762
  6759
    aaaa
dvander@2762
  6760
 0: aaaa
dvander@2762
  6761
 1: aaa
dvander@2762
  6762
 2: aa
dvander@2762
  6763
 3: a
dvander@2762
  6764
dvander@2762
  6765
/^(?:a(?:(?:))+)+/
dvander@2762
  6766
    aaaa
dvander@2762
  6767
 0: aaaa
dvander@2762
  6768
 1: aaa
dvander@2762
  6769
 2: aa
dvander@2762
  6770
 3: a
dvander@2762
  6771
dvander@2762
  6772
/(a|)*\d/
dvander@2762
  6773
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
dvander@2762
  6774
No match
dvander@2762
  6775
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
dvander@2762
  6776
 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
dvander@2762
  6777
dvander@2762
  6778
/(?>a|)*\d/
dvander@2762
  6779
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
dvander@2762
  6780
No match
dvander@2762
  6781
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
dvander@2762
  6782
 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
dvander@2762
  6783
dvander@2762
  6784
/(?:a|)*\d/
dvander@2762
  6785
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
dvander@2762
  6786
No match
dvander@2762
  6787
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
dvander@2762
  6788
 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
dvander@2762
  6789
dvander@2762
  6790
/^a.b/<lf>
dvander@2762
  6791
    a\rb
dvander@2762
  6792
 0: a\x0db
dvander@2762
  6793
    a\nb\<cr> 
dvander@2762
  6794
 0: a\x0ab
dvander@2762
  6795
    ** Failers
dvander@2762
  6796
No match
dvander@2762
  6797
    a\nb
dvander@2762
  6798
No match
dvander@2762
  6799
    a\nb\<any>
dvander@2762
  6800
No match
dvander@2762
  6801
    a\rb\<cr>   
dvander@2762
  6802
No match
dvander@2762
  6803
    a\rb\<any>   
dvander@2762
  6804
No match
dvander@2762
  6805
dvander@2762
  6806
/^abc./mgx<any>
dvander@2762
  6807
    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
dvander@2762
  6808
 0: abc1
dvander@2762
  6809
 0: abc2
dvander@2762
  6810
 0: abc3
dvander@2762
  6811
 0: abc4
dvander@2762
  6812
 0: abc5
dvander@2762
  6813
 0: abc6
dvander@2762
  6814
 0: abc7
dvander@2762
  6815
dvander@2762
  6816
/abc.$/mgx<any>
dvander@2762
  6817
    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
dvander@2762
  6818
 0: abc1
dvander@2762
  6819
 0: abc2
dvander@2762
  6820
 0: abc3
dvander@2762
  6821
 0: abc4
dvander@2762
  6822
 0: abc5
dvander@2762
  6823
 0: abc6
dvander@2762
  6824
 0: abc9
dvander@2762
  6825
dvander@2762
  6826
/^a\Rb/<bsr_unicode>
dvander@2762
  6827
    a\nb
dvander@2762
  6828
 0: a\x0ab
dvander@2762
  6829
    a\rb
dvander@2762
  6830
 0: a\x0db
dvander@2762
  6831
    a\r\nb
dvander@2762
  6832
 0: a\x0d\x0ab
dvander@2762
  6833
    a\x0bb
dvander@2762
  6834
 0: a\x0bb
dvander@2762
  6835
    a\x0cb
dvander@2762
  6836
 0: a\x0cb
dvander@2762
  6837
    a\x85b   
dvander@2762
  6838
 0: a\x85b
dvander@2762
  6839
    ** Failers
dvander@2762
  6840
No match
dvander@2762
  6841
    a\n\rb    
dvander@2762
  6842
No match
dvander@2762
  6843
dvander@2762
  6844
/^a\R*b/<bsr_unicode>
dvander@2762
  6845
    ab
dvander@2762
  6846
 0: ab
dvander@2762
  6847
    a\nb
dvander@2762
  6848
 0: a\x0ab
dvander@2762
  6849
    a\rb
dvander@2762
  6850
 0: a\x0db
dvander@2762
  6851
    a\r\nb
dvander@2762
  6852
 0: a\x0d\x0ab
dvander@2762
  6853
    a\x0bb
dvander@2762
  6854
 0: a\x0bb
dvander@2762
  6855
    a\x0cb
dvander@2762
  6856
 0: a\x0cb
dvander@2762
  6857
    a\x85b   
dvander@2762
  6858
 0: a\x85b
dvander@2762
  6859
    a\n\rb    
dvander@2762
  6860
 0: a\x0a\x0db
dvander@2762
  6861
    a\n\r\x85\x0cb 
dvander@2762
  6862
 0: a\x0a\x0d\x85\x0cb
dvander@2762
  6863
dvander@2762
  6864
/^a\R+b/<bsr_unicode>
dvander@2762
  6865
    a\nb
dvander@2762
  6866
 0: a\x0ab
dvander@2762
  6867
    a\rb
dvander@2762
  6868
 0: a\x0db
dvander@2762
  6869
    a\r\nb
dvander@2762
  6870
 0: a\x0d\x0ab
dvander@2762
  6871
    a\x0bb
dvander@2762
  6872
 0: a\x0bb
dvander@2762
  6873
    a\x0cb
dvander@2762
  6874
 0: a\x0cb
dvander@2762
  6875
    a\x85b   
dvander@2762
  6876
 0: a\x85b
dvander@2762
  6877
    a\n\rb    
dvander@2762
  6878
 0: a\x0a\x0db
dvander@2762
  6879
    a\n\r\x85\x0cb 
dvander@2762
  6880
 0: a\x0a\x0d\x85\x0cb
dvander@2762
  6881
    ** Failers
dvander@2762
  6882
No match
dvander@2762
  6883
    ab  
dvander@2762
  6884
No match
dvander@2762
  6885
    
dvander@2762
  6886
/^a\R{1,3}b/<bsr_unicode>
dvander@2762
  6887
    a\nb
dvander@2762
  6888
 0: a\x0ab
dvander@2762
  6889
    a\n\rb
dvander@2762
  6890
 0: a\x0a\x0db
dvander@2762
  6891
    a\n\r\x85b
dvander@2762
  6892
 0: a\x0a\x0d\x85b
dvander@2762
  6893
    a\r\n\r\nb 
dvander@2762
  6894
 0: a\x0d\x0a\x0d\x0ab
dvander@2762
  6895
    a\r\n\r\n\r\nb 
dvander@2762
  6896
 0: a\x0d\x0a\x0d\x0a\x0d\x0ab
dvander@2762
  6897
    a\n\r\n\rb
dvander@2762
  6898
 0: a\x0a\x0d\x0a\x0db
dvander@2762
  6899
    a\n\n\r\nb 
dvander@2762
  6900
 0: a\x0a\x0a\x0d\x0ab
dvander@2762
  6901
    ** Failers
dvander@2762
  6902
No match
dvander@2762
  6903
    a\n\n\n\rb
dvander@2762
  6904
No match
dvander@2762
  6905
    a\r
dvander@2762
  6906
No match
dvander@2762
  6907
dvander@2762
  6908
/^a[\R]b/<bsr_unicode>
dvander@2762
  6909
    aRb
dvander@2762
  6910
 0: aRb
dvander@2762
  6911
    ** Failers
dvander@2762
  6912
No match
dvander@2762
  6913
    a\nb  
dvander@2762
  6914
No match
dvander@2762
  6915
dvander@2762
  6916
/.+foo/
dvander@2762
  6917
    afoo
dvander@2762
  6918
 0: afoo
dvander@2762
  6919
    ** Failers 
dvander@2762
  6920
No match
dvander@2762
  6921
    \r\nfoo 
dvander@2762
  6922
No match
dvander@2762
  6923
    \nfoo 
dvander@2762
  6924
No match
dvander@2762
  6925
dvander@2762
  6926
/.+foo/<crlf>
dvander@2762
  6927
    afoo
dvander@2762
  6928
 0: afoo
dvander@2762
  6929
    \nfoo 
dvander@2762
  6930
 0: \x0afoo
dvander@2762
  6931
    ** Failers 
dvander@2762
  6932
No match
dvander@2762
  6933
    \r\nfoo 
dvander@2762
  6934
No match
dvander@2762
  6935
dvander@2762
  6936
/.+foo/<any>
dvander@2762
  6937
    afoo
dvander@2762
  6938
 0: afoo
dvander@2762
  6939
    ** Failers 
dvander@2762
  6940
No match
dvander@2762
  6941
    \nfoo 
dvander@2762
  6942
No match
dvander@2762
  6943
    \r\nfoo 
dvander@2762
  6944
No match
dvander@2762
  6945
dvander@2762
  6946
/.+foo/s
dvander@2762
  6947
    afoo
dvander@2762
  6948
 0: afoo
dvander@2762
  6949
    \r\nfoo 
dvander@2762
  6950
 0: \x0d\x0afoo
dvander@2762
  6951
    \nfoo 
dvander@2762
  6952
 0: \x0afoo
dvander@2762
  6953
dvander@2762
  6954
/^$/mg<any>
dvander@2762
  6955
    abc\r\rxyz
dvander@2762
  6956
 0: 
dvander@2762
  6957
    abc\n\rxyz  
dvander@2762
  6958
 0: 
dvander@2762
  6959
    ** Failers 
dvander@2762
  6960
No match
dvander@2762
  6961
    abc\r\nxyz
dvander@2762
  6962
No match
dvander@2762
  6963
dvander@2762
  6964
/^X/m
dvander@2762
  6965
    XABC
dvander@2762
  6966
 0: X
dvander@2762
  6967
    ** Failers 
dvander@2762
  6968
No match
dvander@2762
  6969
    XABC\B
dvander@2762
  6970
No match
dvander@2762
  6971
dvander@2762
  6972
/(?m)^$/<any>g+
dvander@2762
  6973
    abc\r\n\r\n
dvander@2762
  6974
 0: 
dvander@2762
  6975
 0+ \x0d\x0a
dvander@2762
  6976
dvander@2762
  6977
/(?m)^$|^\r\n/<any>g+ 
dvander@2762
  6978
    abc\r\n\r\n
dvander@2762
  6979
 0: \x0d\x0a
dvander@2762
  6980
 0+ 
dvander@2762
  6981
 1: 
dvander@2762
  6982
    
dvander@2762
  6983
/(?m)$/<any>g+ 
dvander@2762
  6984
    abc\r\n\r\n
dvander@2762
  6985
 0: 
dvander@2762
  6986
 0+ \x0d\x0a\x0d\x0a
dvander@2762
  6987
 0: 
dvander@2762
  6988
 0+ \x0d\x0a
dvander@2762
  6989
 0: 
dvander@2762
  6990
 0+ 
dvander@2762
  6991
dvander@2762
  6992
/(?|(abc)|(xyz))/
dvander@2762
  6993
   >abc<
dvander@2762
  6994
 0: abc
dvander@2762
  6995
   >xyz< 
dvander@2762
  6996
 0: xyz
dvander@2762
  6997
dvander@2762
  6998
/(x)(?|(abc)|(xyz))(x)/
dvander@2762
  6999
    xabcx
dvander@2762
  7000
 0: xabcx
dvander@2762
  7001
    xxyzx 
dvander@2762
  7002
 0: xxyzx
dvander@2762
  7003
dvander@2762
  7004
/(x)(?|(abc)(pqr)|(xyz))(x)/
dvander@2762
  7005
    xabcpqrx
dvander@2762
  7006
 0: xabcpqrx
dvander@2762
  7007
    xxyzx 
dvander@2762
  7008
 0: xxyzx
dvander@2762
  7009
dvander@2762
  7010
/(?|(abc)|(xyz))(?1)/
dvander@2762
  7011
    abcabc
dvander@2762
  7012
 0: abcabc
dvander@2762
  7013
    xyzabc 
dvander@2762
  7014
 0: xyzabc
dvander@2762
  7015
    ** Failers 
dvander@2762
  7016
No match
dvander@2762
  7017
    xyzxyz 
dvander@2762
  7018
No match
dvander@2762
  7019
 
dvander@2762
  7020
/\H\h\V\v/
dvander@2762
  7021
    X X\x0a
dvander@2762
  7022
 0: X X\x0a
dvander@2762
  7023
    X\x09X\x0b
dvander@2762
  7024
 0: X\x09X\x0b
dvander@2762
  7025
    ** Failers
dvander@2762
  7026
No match
dvander@2762
  7027
    \xa0 X\x0a   
dvander@2762
  7028
No match
dvander@2762
  7029
    
dvander@2762
  7030
/\H*\h+\V?\v{3,4}/ 
dvander@2762
  7031
    \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
dvander@2762
  7032
 0: \x09 \xa0X\x0a\x0b\x0c\x0d
dvander@2762
  7033
 1: \x09 \xa0X\x0a\x0b\x0c
dvander@2762
  7034
    \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
dvander@2762
  7035
 0: \x09 \xa0\x0a\x0b\x0c\x0d
dvander@2762
  7036
 1: \x09 \xa0\x0a\x0b\x0c
dvander@2762
  7037
    \x09\x20\xa0\x0a\x0b\x0c
dvander@2762
  7038
 0: \x09 \xa0\x0a\x0b\x0c
dvander@2762
  7039
    ** Failers 
dvander@2762
  7040
No match
dvander@2762
  7041
    \x09\x20\xa0\x0a\x0b
dvander@2762
  7042
No match
dvander@2762
  7043
     
dvander@2762
  7044
/\H{3,4}/
dvander@2762
  7045
    XY  ABCDE
dvander@2762
  7046
 0: ABCD
dvander@2762
  7047
 1: ABC
dvander@2762
  7048
    XY  PQR ST 
dvander@2762
  7049
 0: PQR
dvander@2762
  7050
    
dvander@2762
  7051
/.\h{3,4}./
dvander@2762
  7052
    XY  AB    PQRS
dvander@2762
  7053
 0: B    P
dvander@2762
  7054
 1: B    
dvander@2762
  7055
dvander@2762
  7056
/\h*X\h?\H+Y\H?Z/
dvander@2762
  7057
    >XNNNYZ
dvander@2762
  7058
 0: XNNNYZ
dvander@2762
  7059
    >  X NYQZ
dvander@2762
  7060
 0:   X NYQZ
dvander@2762
  7061
    ** Failers
dvander@2762
  7062
No match
dvander@2762
  7063
    >XYZ   
dvander@2762
  7064
No match
dvander@2762
  7065
    >  X NY Z
dvander@2762
  7066
No match
dvander@2762
  7067
dvander@2762
  7068
/\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
dvander@2762
  7069
    >XY\x0aZ\x0aA\x0bNN\x0c
dvander@2762
  7070
 0: XY\x0aZ\x0aA\x0bNN\x0c
dvander@2762
  7071
    >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
dvander@2762
  7072
 0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
dvander@2762
  7073
dvander@2762
  7074
/.+A/<crlf>
dvander@2762
  7075
    \r\nA
dvander@2762
  7076
No match
dvander@2762
  7077
    
dvander@2762
  7078
/\nA/<crlf>
dvander@2762
  7079
    \r\nA 
dvander@2762
  7080
 0: \x0aA
dvander@2762
  7081
dvander@2762
  7082
/[\r\n]A/<crlf>
dvander@2762
  7083
    \r\nA 
dvander@2762
  7084
 0: \x0aA
dvander@2762
  7085
dvander@2762
  7086
/(\r|\n)A/<crlf>
dvander@2762
  7087
    \r\nA 
dvander@2762
  7088
 0: \x0aA
dvander@2762
  7089
dvander@2762
  7090
/a\Rb/I<bsr_anycrlf>
dvander@2762
  7091
Capturing subpattern count = 0
dvander@2762
  7092
Options: bsr_anycrlf
dvander@2762
  7093
First char = 'a'
dvander@2762
  7094
Need char = 'b'
dvander@2762
  7095
    a\rb
dvander@2762
  7096
 0: a\x0db
dvander@2762
  7097
    a\nb
dvander@2762
  7098
 0: a\x0ab
dvander@2762
  7099
    a\r\nb
dvander@2762
  7100
 0: a\x0d\x0ab
dvander@2762
  7101
    ** Failers
dvander@2762
  7102
No match
dvander@2762
  7103
    a\x85b
dvander@2762
  7104
No match
dvander@2762
  7105
    a\x0bb     
dvander@2762
  7106
No match
dvander@2762
  7107
dvander@2762
  7108
/a\Rb/I<bsr_unicode>
dvander@2762
  7109
Capturing subpattern count = 0
dvander@2762
  7110
Options: bsr_unicode
dvander@2762
  7111
First char = 'a'
dvander@2762
  7112
Need char = 'b'
dvander@2762
  7113
    a\rb
dvander@2762
  7114
 0: a\x0db
dvander@2762
  7115
    a\nb
dvander@2762
  7116
 0: a\x0ab
dvander@2762
  7117
    a\r\nb
dvander@2762
  7118
 0: a\x0d\x0ab
dvander@2762
  7119
    a\x85b
dvander@2762
  7120
 0: a\x85b
dvander@2762
  7121
    a\x0bb     
dvander@2762
  7122
 0: a\x0bb
dvander@2762
  7123
    ** Failers 
dvander@2762
  7124
No match
dvander@2762
  7125
    a\x85b\<bsr_anycrlf>
dvander@2762
  7126
No match
dvander@2762
  7127
    a\x0bb\<bsr_anycrlf>
dvander@2762
  7128
No match
dvander@2762
  7129
    
dvander@2762
  7130
/a\R?b/I<bsr_anycrlf>
dvander@2762
  7131
Capturing subpattern count = 0
dvander@2762
  7132
Options: bsr_anycrlf
dvander@2762
  7133
First char = 'a'
dvander@2762
  7134
Need char = 'b'
dvander@2762
  7135
    a\rb
dvander@2762
  7136
 0: a\x0db
dvander@2762
  7137
    a\nb
dvander@2762
  7138
 0: a\x0ab
dvander@2762
  7139
    a\r\nb
dvander@2762
  7140
 0: a\x0d\x0ab
dvander@2762
  7141
    ** Failers
dvander@2762
  7142
No match
dvander@2762
  7143
    a\x85b
dvander@2762
  7144
No match
dvander@2762
  7145
    a\x0bb     
dvander@2762
  7146
No match
dvander@2762
  7147
dvander@2762
  7148
/a\R?b/I<bsr_unicode>
dvander@2762
  7149
Capturing subpattern count = 0
dvander@2762
  7150
Options: bsr_unicode
dvander@2762
  7151
First char = 'a'
dvander@2762
  7152
Need char = 'b'
dvander@2762
  7153
    a\rb
dvander@2762
  7154
 0: a\x0db
dvander@2762
  7155
    a\nb
dvander@2762
  7156
 0: a\x0ab
dvander@2762
  7157
    a\r\nb
dvander@2762
  7158
 0: a\x0d\x0ab
dvander@2762
  7159
    a\x85b
dvander@2762
  7160
 0: a\x85b
dvander@2762
  7161
    a\x0bb     
dvander@2762
  7162
 0: a\x0bb
dvander@2762
  7163
    ** Failers 
dvander@2762
  7164
No match
dvander@2762
  7165
    a\x85b\<bsr_anycrlf>
dvander@2762
  7166
No match
dvander@2762
  7167
    a\x0bb\<bsr_anycrlf>
dvander@2762
  7168
No match
dvander@2762
  7169
    
dvander@2762
  7170
/a\R{2,4}b/I<bsr_anycrlf>
dvander@2762
  7171
Capturing subpattern count = 0
dvander@2762
  7172
Partial matching not supported
dvander@2762
  7173
Options: bsr_anycrlf
dvander@2762
  7174
First char = 'a'
dvander@2762
  7175
Need char = 'b'
dvander@2762
  7176
    a\r\n\nb
dvander@2762
  7177
 0: a\x0d\x0a\x0ab
dvander@2762
  7178
    a\n\r\rb
dvander@2762
  7179
 0: a\x0a\x0d\x0db
dvander@2762
  7180
    a\r\n\r\n\r\n\r\nb
dvander@2762
  7181
 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
dvander@2762
  7182
    ** Failers
dvander@2762
  7183
No match
dvander@2762
  7184
    a\x85\85b
dvander@2762
  7185
No match
dvander@2762
  7186
    a\x0b\0bb     
dvander@2762
  7187
No match
dvander@2762
  7188
dvander@2762
  7189
/a\R{2,4}b/I<bsr_unicode>
dvander@2762
  7190
Capturing subpattern count = 0
dvander@2762
  7191
Partial matching not supported
dvander@2762
  7192
Options: bsr_unicode
dvander@2762
  7193
First char = 'a'
dvander@2762
  7194
Need char = 'b'
dvander@2762
  7195
    a\r\rb
dvander@2762
  7196
 0: a\x0d\x0db
dvander@2762
  7197
    a\n\n\nb
dvander@2762
  7198
 0: a\x0a\x0a\x0ab
dvander@2762
  7199
    a\r\n\n\r\rb
dvander@2762
  7200
 0: a\x0d\x0a\x0a\x0d\x0db
dvander@2762
  7201
    a\x85\85b
dvander@2762
  7202
No match
dvander@2762
  7203
    a\x0b\0bb     
dvander@2762
  7204
No match
dvander@2762
  7205
    ** Failers 
dvander@2762
  7206
No match
dvander@2762
  7207
    a\r\r\r\r\rb 
dvander@2762
  7208
No match
dvander@2762
  7209
    a\x85\85b\<bsr_anycrlf>
dvander@2762
  7210
No match
dvander@2762
  7211
    a\x0b\0bb\<bsr_anycrlf>
dvander@2762
  7212
No match
dvander@2762
  7213
    
dvander@2762
  7214
/a(?!)|\wbc/
dvander@2762
  7215
    abc 
dvander@2762
  7216
 0: abc
dvander@2762
  7217
dvander@2762
  7218
/a[]b/<JS>
dvander@2762
  7219
    ** Failers
dvander@2762
  7220
No match
dvander@2762
  7221
    ab
dvander@2762
  7222
No match
dvander@2762
  7223
dvander@2762
  7224
/a[]+b/<JS>
dvander@2762
  7225
    ** Failers
dvander@2762
  7226
No match
dvander@2762
  7227
    ab 
dvander@2762
  7228
No match
dvander@2762
  7229
dvander@2762
  7230
/a[]*+b/<JS>
dvander@2762
  7231
    ** Failers
dvander@2762
  7232
No match
dvander@2762
  7233
    ab 
dvander@2762
  7234
No match
dvander@2762
  7235
dvander@2762
  7236
/a[^]b/<JS>
dvander@2762
  7237
    aXb
dvander@2762
  7238
 0: aXb
dvander@2762
  7239
    a\nb 
dvander@2762
  7240
 0: a\x0ab
dvander@2762
  7241
    ** Failers
dvander@2762
  7242
No match
dvander@2762
  7243
    ab  
dvander@2762
  7244
No match
dvander@2762
  7245
    
dvander@2762
  7246
/a[^]+b/<JS> 
dvander@2762
  7247
    aXb
dvander@2762
  7248
 0: aXb
dvander@2762
  7249
    a\nX\nXb 
dvander@2762
  7250
 0: a\x0aX\x0aXb
dvander@2762
  7251
    ** Failers
dvander@2762
  7252
No match
dvander@2762
  7253
    ab  
dvander@2762
  7254
No match
dvander@2762
  7255
dvander@2762
  7256
/X$/E
dvander@2762
  7257
    X
dvander@2762
  7258
 0: X
dvander@2762
  7259
    ** Failers 
dvander@2762
  7260
No match
dvander@2762
  7261
    X\n 
dvander@2762
  7262
No match
dvander@2762
  7263
dvander@2762
  7264
/X$/
dvander@2762
  7265
    X
dvander@2762
  7266
 0: X
dvander@2762
  7267
    X\n 
dvander@2762
  7268
 0: X
dvander@2762
  7269
dvander@2762
  7270
/xyz/C
dvander@2762
  7271
  xyz 
dvander@2762
  7272
--->xyz
dvander@2762
  7273
 +0 ^       x
dvander@2762
  7274
 +1 ^^      y
dvander@2762
  7275
 +2 ^ ^     z
dvander@2762
  7276
 +3 ^  ^    
dvander@2762
  7277
 0: xyz
dvander@2762
  7278
  abcxyz 
dvander@2762
  7279
--->abcxyz
dvander@2762
  7280
 +0    ^       x
dvander@2762
  7281
 +1    ^^      y
dvander@2762
  7282
 +2    ^ ^     z
dvander@2762
  7283
 +3    ^  ^    
dvander@2762
  7284
 0: xyz
dvander@2762
  7285
  abcxyz\Y
dvander@2762
  7286
--->abcxyz
dvander@2762
  7287
 +0 ^          x
dvander@2762
  7288
 +0  ^         x
dvander@2762
  7289
 +0   ^        x
dvander@2762
  7290
 +0    ^       x
dvander@2762
  7291
 +1    ^^      y
dvander@2762
  7292
 +2    ^ ^     z
dvander@2762
  7293
 +3    ^  ^    
dvander@2762
  7294
 0: xyz
dvander@2762
  7295
  ** Failers 
dvander@2762
  7296
No match
dvander@2762
  7297
  abc
dvander@2762
  7298
No match
dvander@2762
  7299
  abc\Y
dvander@2762
  7300
--->abc
dvander@2762
  7301
 +0 ^       x
dvander@2762
  7302
 +0  ^      x
dvander@2762
  7303
 +0   ^     x
dvander@2762
  7304
 +0    ^    x
dvander@2762
  7305
No match
dvander@2762
  7306
  abcxypqr  
dvander@2762
  7307
No match
dvander@2762
  7308
  abcxypqr\Y  
dvander@2762
  7309
--->abcxypqr
dvander@2762
  7310
 +0 ^            x
dvander@2762
  7311
 +0  ^           x
dvander@2762
  7312
 +0   ^          x
dvander@2762
  7313
 +0    ^         x
dvander@2762
  7314
 +1    ^^        y
dvander@2762
  7315
 +2    ^ ^       z
dvander@2762
  7316
 +0     ^        x
dvander@2762
  7317
 +0      ^       x
dvander@2762
  7318
 +0       ^      x
dvander@2762
  7319
 +0        ^     x
dvander@2762
  7320
 +0         ^    x
dvander@2762
  7321
No match
dvander@2762
  7322
  
dvander@2762
  7323
/(?C)ab/
dvander@2762
  7324
  ab
dvander@2762
  7325
--->ab
dvander@2762
  7326
  0 ^      a
dvander@2762
  7327
 0: ab
dvander@2762
  7328
  \C-ab
dvander@2762
  7329
 0: ab
dvander@2762
  7330
  
dvander@2762
  7331
/ab/C
dvander@2762
  7332
  ab
dvander@2762
  7333
--->ab
dvander@2762
  7334
 +0 ^      a
dvander@2762
  7335
 +1 ^^     b
dvander@2762
  7336
 +2 ^ ^    
dvander@2762
  7337
 0: ab
dvander@2762
  7338
  \C-ab    
dvander@2762
  7339
 0: ab
dvander@2762
  7340
dvander@2762
  7341
/^"((?(?=[a])[^"])|b)*"$/C
dvander@2762
  7342
    "ab"
dvander@2762
  7343
--->"ab"
dvander@2762
  7344
 +0 ^        ^
dvander@2762
  7345
 +1 ^        "
dvander@2762
  7346
 +2 ^^       ((?(?=[a])[^"])|b)*
dvander@2762
  7347
+21 ^^       "
dvander@2762
  7348
 +3 ^^       (?(?=[a])[^"])
dvander@2762
  7349
+18 ^^       b
dvander@2762
  7350
 +5 ^^       (?=[a])
dvander@2762
  7351
 +8  ^       [a]
dvander@2762
  7352
+11  ^^      )
dvander@2762
  7353
+12 ^^       [^"]
dvander@2762
  7354
+16 ^ ^      )
dvander@2762
  7355
+17 ^ ^      |
dvander@2762
  7356
+21 ^ ^      "
dvander@2762
  7357
 +3 ^ ^      (?(?=[a])[^"])
dvander@2762
  7358
+18 ^ ^      b
dvander@2762
  7359
 +5 ^ ^      (?=[a])
dvander@2762
  7360
 +8   ^      [a]
dvander@2762
  7361
+19 ^  ^     )
dvander@2762
  7362
+21 ^  ^     "
dvander@2762
  7363
 +3 ^  ^     (?(?=[a])[^"])
dvander@2762
  7364
+18 ^  ^     b
dvander@2762
  7365
 +5 ^  ^     (?=[a])
dvander@2762
  7366
 +8    ^     [a]
dvander@2762
  7367
+17 ^  ^     |
dvander@2762
  7368
+22 ^   ^    $
dvander@2762
  7369
+23 ^   ^    
dvander@2762
  7370
 0: "ab"
dvander@2762
  7371
    \C-"ab"
dvander@2762
  7372
 0: "ab"
dvander@2762
  7373