Annotation of embedaddon/pcre/testdata/testoutput8, revision 1.1.1.5

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>