Annotation of embedaddon/php/ext/pcre/pcrelib/testdata/testoutput7, revision 1.1.1.1

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

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