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

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

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