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

1.1.1.5 ! misho       1: /-- This set of tests check the DFA matching functionality of pcre_dfa_exec(),
        !             2:     excluding UTF and Unicode property support. The -dfa flag must be used with
        !             3:     pcretest when running it. --/
        !             4:     
        !             5: < forbid 8W 
1.1.1.2   misho       6:      
                      7: /abc/
                      8:     abc
                      9:     
                     10: /ab*c/
                     11:     abc
                     12:     abbbbc
                     13:     ac
                     14:     
                     15: /ab+c/
                     16:     abc
                     17:     abbbbbbc
                     18:     *** Failers 
                     19:     ac
                     20:     ab
                     21:     
1.1.1.5 ! misho      22: /a*/O
1.1.1.2   misho      23:     a
                     24:     aaaaaaaaaaaaaaaaa
                     25:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
                     26:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\F 
                     27:     
                     28: /(a|abcd|african)/
                     29:     a
                     30:     abcd
                     31:     african
                     32:     
                     33: /^abc/
                     34:     abcdef
                     35:     *** Failers
                     36:     xyzabc
                     37:     xyz\nabc    
                     38:     
                     39: /^abc/m
                     40:     abcdef
                     41:     xyz\nabc    
                     42:     *** Failers
                     43:     xyzabc
                     44:     
                     45: /\Aabc/
                     46:     abcdef
                     47:     *** Failers
                     48:     xyzabc
                     49:     xyz\nabc    
                     50:     
                     51: /\Aabc/m
                     52:     abcdef
                     53:     *** Failers
                     54:     xyzabc
                     55:     xyz\nabc    
                     56:     
                     57: /\Gabc/
                     58:     abcdef
                     59:     xyzabc\>3
                     60:     *** Failers
                     61:     xyzabc    
                     62:     xyzabc\>2 
                     63:     
                     64: /x\dy\Dz/
                     65:     x9yzz
                     66:     x0y+z
                     67:     *** Failers
                     68:     xyz
                     69:     xxy0z     
                     70:     
                     71: /x\sy\Sz/
                     72:     x yzz
                     73:     x y+z
                     74:     *** Failers
                     75:     xyz
                     76:     xxyyz
                     77:     
                     78: /x\wy\Wz/
                     79:     xxy+z
                     80:     *** Failers
                     81:     xxy0z
                     82:     x+y+z         
                     83:     
                     84: /x.y/
                     85:     x+y
                     86:     x-y
                     87:     *** Failers
                     88:     x\ny
                     89:     
                     90: /x.y/s
                     91:     x+y
                     92:     x-y
                     93:     x\ny
                     94: 
                     95: /(a.b(?s)c.d|x.y)p.q/
                     96:     a+bc+dp+q
                     97:     a+bc\ndp+q
                     98:     x\nyp+q 
                     99:     *** Failers 
                    100:     a\nbc\ndp+q
                    101:     a+bc\ndp\nq
                    102:     x\nyp\nq 
                    103: 
                    104: /a\d\z/
                    105:     ba0
                    106:     *** Failers
                    107:     ba0\n
                    108:     ba0\ncd   
                    109: 
                    110: /a\d\z/m
                    111:     ba0
                    112:     *** Failers
                    113:     ba0\n
                    114:     ba0\ncd   
                    115: 
                    116: /a\d\Z/
                    117:     ba0
                    118:     ba0\n
                    119:     *** Failers
                    120:     ba0\ncd   
                    121: 
                    122: /a\d\Z/m
                    123:     ba0
                    124:     ba0\n
                    125:     *** Failers
                    126:     ba0\ncd   
                    127: 
                    128: /a\d$/
                    129:     ba0
                    130:     ba0\n
                    131:     *** Failers
                    132:     ba0\ncd   
                    133: 
                    134: /a\d$/m
                    135:     ba0
                    136:     ba0\n
                    137:     ba0\ncd   
                    138:     *** Failers
                    139: 
                    140: /abc/i
                    141:     abc
                    142:     aBc
                    143:     ABC
                    144:     
                    145: /[^a]/
                    146:     abcd
                    147:     
                    148: /ab?\w/
                    149:     abz
                    150:     abbz
                    151:     azz  
                    152: 
                    153: /x{0,3}yz/
                    154:     ayzq
                    155:     axyzq
                    156:     axxyz
                    157:     axxxyzq
                    158:     axxxxyzq
                    159:     *** Failers
                    160:     ax
                    161:     axx     
                    162:       
                    163: /x{3}yz/
                    164:     axxxyzq
                    165:     axxxxyzq
                    166:     *** Failers
                    167:     ax
                    168:     axx     
                    169:     ayzq
                    170:     axyzq
                    171:     axxyz
                    172:       
                    173: /x{2,3}yz/
                    174:     axxyz
                    175:     axxxyzq
                    176:     axxxxyzq
                    177:     *** Failers
                    178:     ax
                    179:     axx     
                    180:     ayzq
                    181:     axyzq
                    182:       
1.1.1.5 ! misho     183: /[^a]+/O
1.1.1.2   misho     184:     bac
                    185:     bcdefax
                    186:     *** Failers
                    187:     aaaaa   
                    188: 
1.1.1.5 ! misho     189: /[^a]*/O
1.1.1.2   misho     190:     bac
                    191:     bcdefax
                    192:     *** Failers
                    193:     aaaaa   
                    194:     
1.1.1.5 ! misho     195: /[^a]{3,5}/O
1.1.1.2   misho     196:     xyz
                    197:     awxyza
                    198:     abcdefa
                    199:     abcdefghijk
                    200:     *** Failers
                    201:     axya
                    202:     axa
                    203:     aaaaa         
                    204: 
                    205: /\d*/
                    206:     1234b567
                    207:     xyz
                    208:     
                    209: /\D*/
                    210:     a1234b567
                    211:     xyz
                    212:      
                    213: /\d+/
                    214:     ab1234c56
                    215:     *** Failers
                    216:     xyz
                    217:     
                    218: /\D+/
                    219:     ab123c56
                    220:     *** Failers
                    221:     789
                    222:     
                    223: /\d?A/
                    224:     045ABC
                    225:     ABC
                    226:     *** Failers
                    227:     XYZ
                    228:     
                    229: /\D?A/
                    230:     ABC
                    231:     BAC
                    232:     9ABC             
                    233:     *** Failers
                    234: 
                    235: /a+/
                    236:     aaaa
                    237: 
                    238: /^.*xyz/
                    239:     xyz
                    240:     ggggggggxyz
                    241:     
                    242: /^.+xyz/
                    243:     abcdxyz
                    244:     axyz
                    245:     *** Failers
                    246:     xyz
                    247:     
                    248: /^.?xyz/
                    249:     xyz
                    250:     cxyz       
                    251: 
                    252: /^\d{2,3}X/
                    253:     12X
                    254:     123X
                    255:     *** Failers
                    256:     X
                    257:     1X
                    258:     1234X     
                    259: 
                    260: /^[abcd]\d/
                    261:     a45
                    262:     b93
                    263:     c99z
                    264:     d04
                    265:     *** Failers
                    266:     e45
                    267:     abcd      
                    268:     abcd1234
                    269:     1234  
                    270: 
                    271: /^[abcd]*\d/
                    272:     a45
                    273:     b93
                    274:     c99z
                    275:     d04
                    276:     abcd1234
                    277:     1234  
                    278:     *** Failers
                    279:     e45
                    280:     abcd      
                    281: 
                    282: /^[abcd]+\d/
                    283:     a45
                    284:     b93
                    285:     c99z
                    286:     d04
                    287:     abcd1234
                    288:     *** Failers
                    289:     1234  
                    290:     e45
                    291:     abcd      
                    292: 
                    293: /^a+X/
                    294:     aX
                    295:     aaX 
                    296: 
                    297: /^[abcd]?\d/
                    298:     a45
                    299:     b93
                    300:     c99z
                    301:     d04
                    302:     1234  
                    303:     *** Failers
                    304:     abcd1234
                    305:     e45
                    306: 
                    307: /^[abcd]{2,3}\d/
                    308:     ab45
                    309:     bcd93
                    310:     *** Failers
                    311:     1234 
                    312:     a36 
                    313:     abcd1234
                    314:     ee45
                    315: 
                    316: /^(abc)*\d/
                    317:     abc45
                    318:     abcabcabc45
                    319:     42xyz 
                    320:     *** Failers
                    321: 
                    322: /^(abc)+\d/
                    323:     abc45
                    324:     abcabcabc45
                    325:     *** Failers
                    326:     42xyz 
                    327: 
                    328: /^(abc)?\d/
                    329:     abc45
                    330:     42xyz 
                    331:     *** Failers
                    332:     abcabcabc45
                    333: 
                    334: /^(abc){2,3}\d/
                    335:     abcabc45
                    336:     abcabcabc45
                    337:     *** Failers
                    338:     abcabcabcabc45
                    339:     abc45
                    340:     42xyz 
                    341: 
                    342: /1(abc|xyz)2(?1)3/
                    343:     1abc2abc3456
                    344:     1abc2xyz3456 
                    345: 
                    346: /^(a*\w|ab)=(a*\w|ab)/
                    347:     ab=ab
                    348: 
                    349: /^(a*\w|ab)=(?1)/
                    350:     ab=ab
                    351: 
                    352: /^([^()]|\((?1)*\))*$/
                    353:     abc
                    354:     a(b)c
                    355:     a(b(c))d  
                    356:     *** Failers)
                    357:     a(b(c)d  
                    358: 
                    359: /^>abc>([^()]|\((?1)*\))*<xyz<$/
                    360:     >abc>123<xyz<
                    361:     >abc>1(2)3<xyz<
                    362:     >abc>(1(2)3)<xyz<
                    363: 
                    364: /^(?>a*)\d/
                    365:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876
                    366:     *** Failers 
                    367:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                    368: 
                    369: /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x
                    370:     <>
                    371:     <abcd>
                    372:     <abc <123> hij>
                    373:     <abc <def> hij>
                    374:     <abc<>def> 
                    375:     <abc<>      
                    376:     *** Failers
                    377:     <abc
                    378: 
                    379: /^(?(?=abc)\w{3}:|\d\d)$/        
                    380:     abc:                          
                    381:     12                             
                    382:     *** Failers                     
                    383:     123                       
                    384:     xyz                        
                    385:                                 
                    386: /^(?(?!abc)\d\d|\w{3}:)$/      
                    387:     abc:                        
                    388:     12         
                    389:     *** Failers
                    390:     123
                    391:     xyz    
                    392: 
                    393: /^(?=abc)\w{5}:$/        
                    394:     abcde:                          
                    395:     *** Failers                     
                    396:     abc.. 
                    397:     123                       
                    398:     vwxyz                        
                    399:                                 
                    400: /^(?!abc)\d\d$/      
                    401:     12         
                    402:     *** Failers
                    403:     abcde:
                    404:     abc..  
                    405:     123
                    406:     vwxyz    
                    407: 
                    408: /(?<=abc|xy)123/
                    409:     abc12345
                    410:     wxy123z
                    411:     *** Failers
                    412:     123abc
                    413: 
                    414: /(?<!abc|xy)123/
                    415:     123abc
                    416:     mno123456 
                    417:     *** Failers
                    418:     abc12345
                    419:     wxy123z
                    420: 
                    421: /abc(?C1)xyz/
                    422:     abcxyz
                    423:     123abcxyz999 
                    424: 
                    425: /(ab|cd){3,4}/C
                    426:   ababab
                    427:   abcdabcd
                    428:   abcdcdcdcdcd  
                    429: 
                    430: /^abc/
                    431:     abcdef
                    432:     *** Failers
                    433:     abcdef\B  
                    434: 
                    435: /^(a*|xyz)/
                    436:     bcd
                    437:     aaabcd
                    438:     xyz
                    439:     xyz\N  
                    440:     *** Failers
                    441:     bcd\N   
                    442:     
                    443: /xyz$/
                    444:     xyz
                    445:     xyz\n
                    446:     *** Failers
                    447:     xyz\Z
                    448:     xyz\n\Z    
                    449:     
                    450: /xyz$/m
                    451:     xyz
                    452:     xyz\n 
                    453:     abcxyz\npqr 
                    454:     abcxyz\npqr\Z 
                    455:     xyz\n\Z    
                    456:     *** Failers
                    457:     xyz\Z
                    458: 
                    459: /\Gabc/
                    460:     abcdef
                    461:     defabcxyz\>3 
                    462:     *** Failers 
                    463:     defabcxyz
                    464: 
                    465: /^abcdef/
                    466:     ab\P
                    467:     abcde\P
                    468:     abcdef\P
                    469:     *** Failers
                    470:     abx\P    
                    471: 
                    472: /^a{2,4}\d+z/
                    473:     a\P
                    474:     aa\P
                    475:     aa2\P 
                    476:     aaa\P
                    477:     aaa23\P 
                    478:     aaaa12345\P
                    479:     aa0z\P
                    480:     aaaa4444444444444z\P 
                    481:     *** Failers
                    482:     az\P 
                    483:     aaaaa\P 
                    484:     a56\P 
                    485: 
                    486: /^abcdef/
                    487:    abc\P
                    488:    def\R 
                    489:    
                    490: /(?<=foo)bar/
                    491:    xyzfo\P 
                    492:    foob\P\>2 
                    493:    foobar...\R\P\>4 
                    494:    xyzfo\P
                    495:    foobar\>2  
                    496:    *** Failers
                    497:    xyzfo\P
                    498:    obar\R   
                    499: 
                    500: /(ab*(cd|ef))+X/
                    501:     adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\P\Z
                    502:     lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\P\B\Z
                    503:     cdabbbbbbbb\P\R\B\Z
                    504:     efabbbbbbbbbbbbbbbb\P\R\B\Z
                    505:     bbbbbbbbbbbbcdXyasdfadf\P\R\B\Z    
                    506: 
                    507: /(a|b)/SF>testsavedregex
                    508: <testsavedregex
                    509:     abc
                    510:     ** Failers
                    511:     def  
                    512:     
                    513: /the quick brown fox/
                    514:     the quick brown fox
                    515:     The quick brown FOX
                    516:     What do you know about the quick brown fox?
                    517:     What do you know about THE QUICK BROWN FOX?
                    518: 
                    519: /The quick brown fox/i
                    520:     the quick brown fox
                    521:     The quick brown FOX
                    522:     What do you know about the quick brown fox?
                    523:     What do you know about THE QUICK BROWN FOX?
                    524: 
                    525: /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
                    526:     abcd\t\n\r\f\a\e9;\$\\?caxyz
                    527: 
                    528: /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
                    529:     abxyzpqrrrabbxyyyypqAzz
                    530:     abxyzpqrrrabbxyyyypqAzz
                    531:     aabxyzpqrrrabbxyyyypqAzz
                    532:     aaabxyzpqrrrabbxyyyypqAzz
                    533:     aaaabxyzpqrrrabbxyyyypqAzz
                    534:     abcxyzpqrrrabbxyyyypqAzz
                    535:     aabcxyzpqrrrabbxyyyypqAzz
                    536:     aaabcxyzpqrrrabbxyyyypAzz
                    537:     aaabcxyzpqrrrabbxyyyypqAzz
                    538:     aaabcxyzpqrrrabbxyyyypqqAzz
                    539:     aaabcxyzpqrrrabbxyyyypqqqAzz
                    540:     aaabcxyzpqrrrabbxyyyypqqqqAzz
                    541:     aaabcxyzpqrrrabbxyyyypqqqqqAzz
                    542:     aaabcxyzpqrrrabbxyyyypqqqqqqAzz
                    543:     aaaabcxyzpqrrrabbxyyyypqAzz
                    544:     abxyzzpqrrrabbxyyyypqAzz
                    545:     aabxyzzzpqrrrabbxyyyypqAzz
                    546:     aaabxyzzzzpqrrrabbxyyyypqAzz
                    547:     aaaabxyzzzzpqrrrabbxyyyypqAzz
                    548:     abcxyzzpqrrrabbxyyyypqAzz
                    549:     aabcxyzzzpqrrrabbxyyyypqAzz
                    550:     aaabcxyzzzzpqrrrabbxyyyypqAzz
                    551:     aaaabcxyzzzzpqrrrabbxyyyypqAzz
                    552:     aaaabcxyzzzzpqrrrabbbxyyyypqAzz
                    553:     aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
                    554:     aaabcxyzpqrrrabbxyyyypABzz
                    555:     aaabcxyzpqrrrabbxyyyypABBzz
                    556:     >>>aaabxyzpqrrrabbxyyyypqAzz
                    557:     >aaaabxyzpqrrrabbxyyyypqAzz
                    558:     >>>>abcxyzpqrrrabbxyyyypqAzz
                    559:     *** Failers
                    560:     abxyzpqrrabbxyyyypqAzz
                    561:     abxyzpqrrrrabbxyyyypqAzz
                    562:     abxyzpqrrrabxyyyypqAzz
                    563:     aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
                    564:     aaaabcxyzzzzpqrrrabbbxyyypqAzz
                    565:     aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
                    566: 
                    567: /^(abc){1,2}zz/
                    568:     abczz
                    569:     abcabczz
                    570:     *** Failers
                    571:     zz
                    572:     abcabcabczz
                    573:     >>abczz
                    574: 
                    575: /^(b+?|a){1,2}?c/
                    576:     bc
                    577:     bbc
                    578:     bbbc
                    579:     bac
                    580:     bbac
                    581:     aac
                    582:     abbbbbbbbbbbc
                    583:     bbbbbbbbbbbac
                    584:     *** Failers
                    585:     aaac
                    586:     abbbbbbbbbbbac
                    587: 
                    588: /^(b+|a){1,2}c/
                    589:     bc
                    590:     bbc
                    591:     bbbc
                    592:     bac
                    593:     bbac
                    594:     aac
                    595:     abbbbbbbbbbbc
                    596:     bbbbbbbbbbbac
                    597:     *** Failers
                    598:     aaac
                    599:     abbbbbbbbbbbac
                    600: 
                    601: /^(b+|a){1,2}?bc/
                    602:     bbc
                    603: 
                    604: /^(b*|ba){1,2}?bc/
                    605:     babc
                    606:     bbabc
                    607:     bababc
                    608:     *** Failers
                    609:     bababbc
                    610:     babababc
                    611: 
                    612: /^(ba|b*){1,2}?bc/
                    613:     babc
                    614:     bbabc
                    615:     bababc
                    616:     *** Failers
                    617:     bababbc
                    618:     babababc
                    619: 
                    620: /^\ca\cA\c[\c{\c:/
                    621:     \x01\x01\e;z
                    622: 
                    623: /^[ab\]cde]/
                    624:     athing
                    625:     bthing
                    626:     ]thing
                    627:     cthing
                    628:     dthing
                    629:     ething
                    630:     *** Failers
                    631:     fthing
                    632:     [thing
                    633:     \\thing
                    634: 
                    635: /^[]cde]/
                    636:     ]thing
                    637:     cthing
                    638:     dthing
                    639:     ething
                    640:     *** Failers
                    641:     athing
                    642:     fthing
                    643: 
                    644: /^[^ab\]cde]/
                    645:     fthing
                    646:     [thing
                    647:     \\thing
                    648:     *** Failers
                    649:     athing
                    650:     bthing
                    651:     ]thing
                    652:     cthing
                    653:     dthing
                    654:     ething
                    655: 
                    656: /^[^]cde]/
                    657:     athing
                    658:     fthing
                    659:     *** Failers
                    660:     ]thing
                    661:     cthing
                    662:     dthing
                    663:     ething
                    664: 
                    665: /^\/
                    666:     
                    667: 
                    668: /^/
                    669:     
                    670: 
                    671: /^[0-9]+$/
                    672:     0
                    673:     1
                    674:     2
                    675:     3
                    676:     4
                    677:     5
                    678:     6
                    679:     7
                    680:     8
                    681:     9
                    682:     10
                    683:     100
                    684:     *** Failers
                    685:     abc
                    686: 
                    687: /^.*nter/
                    688:     enter
                    689:     inter
                    690:     uponter
                    691: 
                    692: /^xxx[0-9]+$/
                    693:     xxx0
                    694:     xxx1234
                    695:     *** Failers
                    696:     xxx
                    697: 
                    698: /^.+[0-9][0-9][0-9]$/
                    699:     x123
                    700:     xx123
                    701:     123456
                    702:     *** Failers
                    703:     123
                    704:     x1234
                    705: 
                    706: /^.+?[0-9][0-9][0-9]$/
                    707:     x123
                    708:     xx123
                    709:     123456
                    710:     *** Failers
                    711:     123
                    712:     x1234
                    713: 
                    714: /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
                    715:     abc!pqr=apquxz.ixr.zzz.ac.uk
                    716:     *** Failers
                    717:     !pqr=apquxz.ixr.zzz.ac.uk
                    718:     abc!=apquxz.ixr.zzz.ac.uk
                    719:     abc!pqr=apquxz:ixr.zzz.ac.uk
                    720:     abc!pqr=apquxz.ixr.zzz.ac.ukk
                    721: 
                    722: /:/
                    723:     Well, we need a colon: somewhere
                    724:     *** Fail if we don't
                    725: 
                    726: /([\da-f:]+)$/i
                    727:     0abc
                    728:     abc
                    729:     fed
                    730:     E
                    731:     ::
                    732:     5f03:12C0::932e
                    733:     fed def
                    734:     Any old stuff
                    735:     *** Failers
                    736:     0zzz
                    737:     gzzz
                    738:     fed\x20
                    739:     Any old rubbish
                    740: 
                    741: /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
                    742:     .1.2.3
                    743:     A.12.123.0
                    744:     *** Failers
                    745:     .1.2.3333
                    746:     1.2.3
                    747:     1234.2.3
                    748: 
                    749: /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
                    750:     1 IN SOA non-sp1 non-sp2(
                    751:     1    IN    SOA    non-sp1    non-sp2   (
                    752:     *** Failers
                    753:     1IN SOA non-sp1 non-sp2(
                    754: 
                    755: /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
                    756:     a.
                    757:     Z.
                    758:     2.
                    759:     ab-c.pq-r.
                    760:     sxk.zzz.ac.uk.
                    761:     x-.y-.
                    762:     *** Failers
                    763:     -abc.peq.
                    764: 
                    765: /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
                    766:     *.a
                    767:     *.b0-a
                    768:     *.c3-b.c
                    769:     *.c-a.b-c
                    770:     *** Failers
                    771:     *.0
                    772:     *.a-
                    773:     *.a-b.c-
                    774:     *.c-a.0-c
                    775: 
                    776: /^(?=ab(de))(abd)(e)/
                    777:     abde
                    778: 
                    779: /^(?!(ab)de|x)(abd)(f)/
                    780:     abdf
                    781: 
                    782: /^(?=(ab(cd)))(ab)/
                    783:     abcd
                    784: 
                    785: /^[\da-f](\.[\da-f])*$/i
                    786:     a.b.c.d
                    787:     A.B.C.D
                    788:     a.b.c.1.2.3.C
                    789: 
                    790: /^\".*\"\s*(;.*)?$/
                    791:     \"1234\"
                    792:     \"abcd\" ;
                    793:     \"\" ; rhubarb
                    794:     *** Failers
                    795:     \"1234\" : things
                    796: 
                    797: /^$/
                    798:     \
                    799:     *** Failers
                    800: 
                    801: /   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/x
                    802:     ab c
                    803:     *** Failers
                    804:     abc
                    805:     ab cde
                    806: 
                    807: /(?x)   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/
                    808:     ab c
                    809:     *** Failers
                    810:     abc
                    811:     ab cde
                    812: 
                    813: /^   a\ b[c ]d       $/x
                    814:     a bcd
                    815:     a b d
                    816:     *** Failers
                    817:     abcd
                    818:     ab d
                    819: 
                    820: /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
                    821:     abcdefhijklm
                    822: 
                    823: /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
                    824:     abcdefhijklm
                    825: 
                    826: /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
                    827:     a+ Z0+\x08\n\x1d\x12
                    828: 
                    829: /^[.^$|()*+?{,}]+/
                    830:     .^\$(*+)|{?,?}
                    831: 
                    832: /^a*\w/
                    833:     z
                    834:     az
                    835:     aaaz
                    836:     a
                    837:     aa
                    838:     aaaa
                    839:     a+
                    840:     aa+
                    841: 
                    842: /^a*?\w/
                    843:     z
                    844:     az
                    845:     aaaz
                    846:     a
                    847:     aa
                    848:     aaaa
                    849:     a+
                    850:     aa+
                    851: 
                    852: /^a+\w/
                    853:     az
                    854:     aaaz
                    855:     aa
                    856:     aaaa
                    857:     aa+
                    858: 
                    859: /^a+?\w/
                    860:     az
                    861:     aaaz
                    862:     aa
                    863:     aaaa
                    864:     aa+
                    865: 
                    866: /^\d{8}\w{2,}/
                    867:     1234567890
                    868:     12345678ab
                    869:     12345678__
                    870:     *** Failers
                    871:     1234567
                    872: 
                    873: /^[aeiou\d]{4,5}$/
                    874:     uoie
                    875:     1234
                    876:     12345
                    877:     aaaaa
                    878:     *** Failers
                    879:     123456
                    880: 
                    881: /^[aeiou\d]{4,5}?/
                    882:     uoie
                    883:     1234
                    884:     12345
                    885:     aaaaa
                    886:     123456
                    887: 
                    888: /^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]/
                    889:     From abcd  Mon Sep 01 12:33:02 1997
                    890: 
                    891: /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
                    892:     From abcd  Mon Sep 01 12:33:02 1997
                    893:     From abcd  Mon Sep  1 12:33:02 1997
                    894:     *** Failers
                    895:     From abcd  Sep 01 12:33:02 1997
                    896: 
                    897: /^12.34/s
                    898:     12\n34
                    899:     12\r34
                    900: 
                    901: /\w+(?=\t)/
                    902:     the quick brown\t fox
                    903: 
                    904: /foo(?!bar)(.*)/
                    905:     foobar is foolish see?
                    906: 
                    907: /(?:(?!foo)...|^.{0,2})bar(.*)/
                    908:     foobar crowbar etc
                    909:     barrel
                    910:     2barrel
                    911:     A barrel
                    912: 
                    913: /^(\D*)(?=\d)(?!123)/
                    914:     abc456
                    915:     *** Failers
                    916:     abc123
                    917: 
                    918: /^1234(?# test newlines
                    919:   inside)/
                    920:     1234
                    921: 
                    922: /^1234 #comment in extended re
                    923:   /x
                    924:     1234
                    925: 
                    926: /#rhubarb
                    927:   abcd/x
                    928:     abcd
                    929: 
                    930: /^abcd#rhubarb/x
                    931:     abcd
                    932: 
                    933: /(?!^)abc/
                    934:     the abc
                    935:     *** Failers
                    936:     abc
                    937: 
                    938: /(?=^)abc/
                    939:     abc
                    940:     *** Failers
                    941:     the abc
                    942: 
1.1.1.5 ! misho     943: /^[ab]{1,3}(ab*|b)/O
1.1.1.2   misho     944:     aabbbbb
                    945: 
1.1.1.5 ! misho     946: /^[ab]{1,3}?(ab*|b)/O
1.1.1.2   misho     947:     aabbbbb
                    948: 
1.1.1.5 ! misho     949: /^[ab]{1,3}?(ab*?|b)/O
1.1.1.2   misho     950:     aabbbbb
                    951: 
1.1.1.5 ! misho     952: /^[ab]{1,3}(ab*?|b)/O
1.1.1.2   misho     953:     aabbbbb
                    954: 
                    955: /  (?: [\040\t] |  \(
                    956: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    957: \)  )*                          # optional leading comment
                    958: (?:    (?:
                    959: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                    960: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                    961: |
                    962: " (?:                      # opening quote...
                    963: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                    964: |                     #    or
                    965: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                    966: )* "  # closing quote
                    967: )                    # initial word
                    968: (?:  (?: [\040\t] |  \(
                    969: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    970: \)  )*  \.  (?: [\040\t] |  \(
                    971: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    972: \)  )*   (?:
                    973: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                    974: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                    975: |
                    976: " (?:                      # opening quote...
                    977: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                    978: |                     #    or
                    979: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                    980: )* "  # closing quote
                    981: )  )* # further okay, if led by a period
                    982: (?: [\040\t] |  \(
                    983: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    984: \)  )*  @  (?: [\040\t] |  \(
                    985: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    986: \)  )*    (?:
                    987: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                    988: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                    989: |   \[                         # [
                    990: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                    991: \]                        #           ]
                    992: )                           # initial subdomain
                    993: (?:                                  #
                    994: (?: [\040\t] |  \(
                    995: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    996: \)  )*  \.                        # if led by a period...
                    997: (?: [\040\t] |  \(
                    998: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                    999: \)  )*   (?:
                   1000: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1001: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1002: |   \[                         # [
                   1003: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                   1004: \]                        #           ]
                   1005: )                     #   ...further okay
                   1006: )*
                   1007: # address
                   1008: |                     #  or
                   1009: (?:
                   1010: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1011: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1012: |
                   1013: " (?:                      # opening quote...
                   1014: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                   1015: |                     #    or
                   1016: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                   1017: )* "  # closing quote
                   1018: )             # one word, optionally followed by....
                   1019: (?:
                   1020: [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
                   1021: \(
                   1022: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1023: \)       |  # comments, or...
                   1024: 
                   1025: " (?:                      # opening quote...
                   1026: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                   1027: |                     #    or
                   1028: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                   1029: )* "  # closing quote
                   1030: # quoted strings
                   1031: )*
                   1032: <  (?: [\040\t] |  \(
                   1033: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1034: \)  )*                     # leading <
                   1035: (?:  @  (?: [\040\t] |  \(
                   1036: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1037: \)  )*    (?:
                   1038: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1039: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1040: |   \[                         # [
                   1041: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                   1042: \]                        #           ]
                   1043: )                           # initial subdomain
                   1044: (?:                                  #
                   1045: (?: [\040\t] |  \(
                   1046: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1047: \)  )*  \.                        # if led by a period...
                   1048: (?: [\040\t] |  \(
                   1049: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1050: \)  )*   (?:
                   1051: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1052: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1053: |   \[                         # [
                   1054: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                   1055: \]                        #           ]
                   1056: )                     #   ...further okay
                   1057: )*
                   1058: 
                   1059: (?:  (?: [\040\t] |  \(
                   1060: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1061: \)  )*  ,  (?: [\040\t] |  \(
                   1062: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1063: \)  )*  @  (?: [\040\t] |  \(
                   1064: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1065: \)  )*    (?:
                   1066: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1067: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1068: |   \[                         # [
                   1069: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                   1070: \]                        #           ]
                   1071: )                           # initial subdomain
                   1072: (?:                                  #
                   1073: (?: [\040\t] |  \(
                   1074: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1075: \)  )*  \.                        # if led by a period...
                   1076: (?: [\040\t] |  \(
                   1077: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1078: \)  )*   (?:
                   1079: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1080: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1081: |   \[                         # [
                   1082: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                   1083: \]                        #           ]
                   1084: )                     #   ...further okay
                   1085: )*
                   1086: )* # further okay, if led by comma
                   1087: :                                # closing colon
                   1088: (?: [\040\t] |  \(
                   1089: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1090: \)  )*  )? #       optional route
                   1091: (?:
                   1092: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1093: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1094: |
                   1095: " (?:                      # opening quote...
                   1096: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                   1097: |                     #    or
                   1098: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                   1099: )* "  # closing quote
                   1100: )                    # initial word
                   1101: (?:  (?: [\040\t] |  \(
                   1102: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1103: \)  )*  \.  (?: [\040\t] |  \(
                   1104: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1105: \)  )*   (?:
                   1106: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1107: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1108: |
                   1109: " (?:                      # opening quote...
                   1110: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                   1111: |                     #    or
                   1112: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                   1113: )* "  # closing quote
                   1114: )  )* # further okay, if led by a period
                   1115: (?: [\040\t] |  \(
                   1116: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1117: \)  )*  @  (?: [\040\t] |  \(
                   1118: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1119: \)  )*    (?:
                   1120: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1121: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1122: |   \[                         # [
                   1123: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                   1124: \]                        #           ]
                   1125: )                           # initial subdomain
                   1126: (?:                                  #
                   1127: (?: [\040\t] |  \(
                   1128: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1129: \)  )*  \.                        # if led by a period...
                   1130: (?: [\040\t] |  \(
                   1131: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1132: \)  )*   (?:
                   1133: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1134: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1135: |   \[                         # [
                   1136: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                   1137: \]                        #           ]
                   1138: )                     #   ...further okay
                   1139: )*
                   1140: #       address spec
                   1141: (?: [\040\t] |  \(
                   1142: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1143: \)  )*  > #                  trailing >
                   1144: # name and address
                   1145: )  (?: [\040\t] |  \(
                   1146: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   1147: \)  )*                       # optional trailing comment
                   1148: /x
                   1149:     Alan Other <user\@dom.ain>
                   1150:     <user\@dom.ain>
                   1151:     user\@dom.ain
                   1152:     \"A. Other\" <user.1234\@dom.ain> (a comment)
                   1153:     A. Other <user.1234\@dom.ain> (a comment)
                   1154:     \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
                   1155:     A missing angle <user\@some.where
                   1156:     *** Failers
                   1157:     The quick brown fox
                   1158: 
                   1159: /[\040\t]*                    # Nab whitespace.
                   1160: (?:
                   1161: \(                              #  (
                   1162: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1163: (?:                                 #       (
                   1164: (?:  \\ [^\x80-\xff]  |
                   1165: \(                            #  (
                   1166: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1167: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1168: \)                           #                       )
                   1169: )    #         special
                   1170: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1171: )*                                  #            )*
                   1172: \)                             #                )
                   1173: [\040\t]* )*    # If comment found, allow more spaces.
                   1174: # optional leading comment
                   1175: (?:
                   1176: (?:
                   1177: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1178: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1179: # Atom
                   1180: |                       #  or
                   1181: "                                     # "
                   1182: [^\\\x80-\xff\n\015"] *                            #   normal
                   1183: (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
                   1184: "                                     #        "
                   1185: # Quoted string
                   1186: )
                   1187: [\040\t]*                    # Nab whitespace.
                   1188: (?:
                   1189: \(                              #  (
                   1190: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1191: (?:                                 #       (
                   1192: (?:  \\ [^\x80-\xff]  |
                   1193: \(                            #  (
                   1194: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1195: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1196: \)                           #                       )
                   1197: )    #         special
                   1198: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1199: )*                                  #            )*
                   1200: \)                             #                )
                   1201: [\040\t]* )*    # If comment found, allow more spaces.
                   1202: (?:
                   1203: \.
                   1204: [\040\t]*                    # Nab whitespace.
                   1205: (?:
                   1206: \(                              #  (
                   1207: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1208: (?:                                 #       (
                   1209: (?:  \\ [^\x80-\xff]  |
                   1210: \(                            #  (
                   1211: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1212: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1213: \)                           #                       )
                   1214: )    #         special
                   1215: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1216: )*                                  #            )*
                   1217: \)                             #                )
                   1218: [\040\t]* )*    # If comment found, allow more spaces.
                   1219: (?:
                   1220: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1221: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1222: # Atom
                   1223: |                       #  or
                   1224: "                                     # "
                   1225: [^\\\x80-\xff\n\015"] *                            #   normal
                   1226: (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
                   1227: "                                     #        "
                   1228: # Quoted string
                   1229: )
                   1230: [\040\t]*                    # Nab whitespace.
                   1231: (?:
                   1232: \(                              #  (
                   1233: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1234: (?:                                 #       (
                   1235: (?:  \\ [^\x80-\xff]  |
                   1236: \(                            #  (
                   1237: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1238: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1239: \)                           #                       )
                   1240: )    #         special
                   1241: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1242: )*                                  #            )*
                   1243: \)                             #                )
                   1244: [\040\t]* )*    # If comment found, allow more spaces.
                   1245: # additional words
                   1246: )*
                   1247: @
                   1248: [\040\t]*                    # Nab whitespace.
                   1249: (?:
                   1250: \(                              #  (
                   1251: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1252: (?:                                 #       (
                   1253: (?:  \\ [^\x80-\xff]  |
                   1254: \(                            #  (
                   1255: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1256: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1257: \)                           #                       )
                   1258: )    #         special
                   1259: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1260: )*                                  #            )*
                   1261: \)                             #                )
                   1262: [\040\t]* )*    # If comment found, allow more spaces.
                   1263: (?:
                   1264: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1265: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1266: |
                   1267: \[                            # [
                   1268: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
                   1269: \]                           #           ]
                   1270: )
                   1271: [\040\t]*                    # Nab whitespace.
                   1272: (?:
                   1273: \(                              #  (
                   1274: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1275: (?:                                 #       (
                   1276: (?:  \\ [^\x80-\xff]  |
                   1277: \(                            #  (
                   1278: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1279: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1280: \)                           #                       )
                   1281: )    #         special
                   1282: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1283: )*                                  #            )*
                   1284: \)                             #                )
                   1285: [\040\t]* )*    # If comment found, allow more spaces.
                   1286: # optional trailing comments
                   1287: (?:
                   1288: \.
                   1289: [\040\t]*                    # Nab whitespace.
                   1290: (?:
                   1291: \(                              #  (
                   1292: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1293: (?:                                 #       (
                   1294: (?:  \\ [^\x80-\xff]  |
                   1295: \(                            #  (
                   1296: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1297: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1298: \)                           #                       )
                   1299: )    #         special
                   1300: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1301: )*                                  #            )*
                   1302: \)                             #                )
                   1303: [\040\t]* )*    # If comment found, allow more spaces.
                   1304: (?:
                   1305: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1306: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1307: |
                   1308: \[                            # [
                   1309: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
                   1310: \]                           #           ]
                   1311: )
                   1312: [\040\t]*                    # Nab whitespace.
                   1313: (?:
                   1314: \(                              #  (
                   1315: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1316: (?:                                 #       (
                   1317: (?:  \\ [^\x80-\xff]  |
                   1318: \(                            #  (
                   1319: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1320: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1321: \)                           #                       )
                   1322: )    #         special
                   1323: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1324: )*                                  #            )*
                   1325: \)                             #                )
                   1326: [\040\t]* )*    # If comment found, allow more spaces.
                   1327: # optional trailing comments
                   1328: )*
                   1329: # address
                   1330: |                             #  or
                   1331: (?:
                   1332: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1333: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1334: # Atom
                   1335: |                       #  or
                   1336: "                                     # "
                   1337: [^\\\x80-\xff\n\015"] *                            #   normal
                   1338: (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
                   1339: "                                     #        "
                   1340: # Quoted string
                   1341: )
                   1342: # leading word
                   1343: [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *               # "normal" atoms and or spaces
                   1344: (?:
                   1345: (?:
                   1346: \(                              #  (
                   1347: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1348: (?:                                 #       (
                   1349: (?:  \\ [^\x80-\xff]  |
                   1350: \(                            #  (
                   1351: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1352: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1353: \)                           #                       )
                   1354: )    #         special
                   1355: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1356: )*                                  #            )*
                   1357: \)                             #                )
                   1358: |
                   1359: "                                     # "
                   1360: [^\\\x80-\xff\n\015"] *                            #   normal
                   1361: (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
                   1362: "                                     #        "
                   1363: ) # "special" comment or quoted string
                   1364: [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *            #  more "normal"
                   1365: )*
                   1366: <
                   1367: [\040\t]*                    # Nab whitespace.
                   1368: (?:
                   1369: \(                              #  (
                   1370: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1371: (?:                                 #       (
                   1372: (?:  \\ [^\x80-\xff]  |
                   1373: \(                            #  (
                   1374: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1375: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1376: \)                           #                       )
                   1377: )    #         special
                   1378: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1379: )*                                  #            )*
                   1380: \)                             #                )
                   1381: [\040\t]* )*    # If comment found, allow more spaces.
                   1382: # <
                   1383: (?:
                   1384: @
                   1385: [\040\t]*                    # Nab whitespace.
                   1386: (?:
                   1387: \(                              #  (
                   1388: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1389: (?:                                 #       (
                   1390: (?:  \\ [^\x80-\xff]  |
                   1391: \(                            #  (
                   1392: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1393: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1394: \)                           #                       )
                   1395: )    #         special
                   1396: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1397: )*                                  #            )*
                   1398: \)                             #                )
                   1399: [\040\t]* )*    # If comment found, allow more spaces.
                   1400: (?:
                   1401: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1402: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1403: |
                   1404: \[                            # [
                   1405: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
                   1406: \]                           #           ]
                   1407: )
                   1408: [\040\t]*                    # Nab whitespace.
                   1409: (?:
                   1410: \(                              #  (
                   1411: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1412: (?:                                 #       (
                   1413: (?:  \\ [^\x80-\xff]  |
                   1414: \(                            #  (
                   1415: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1416: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1417: \)                           #                       )
                   1418: )    #         special
                   1419: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1420: )*                                  #            )*
                   1421: \)                             #                )
                   1422: [\040\t]* )*    # If comment found, allow more spaces.
                   1423: # optional trailing comments
                   1424: (?:
                   1425: \.
                   1426: [\040\t]*                    # Nab whitespace.
                   1427: (?:
                   1428: \(                              #  (
                   1429: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1430: (?:                                 #       (
                   1431: (?:  \\ [^\x80-\xff]  |
                   1432: \(                            #  (
                   1433: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1434: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1435: \)                           #                       )
                   1436: )    #         special
                   1437: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1438: )*                                  #            )*
                   1439: \)                             #                )
                   1440: [\040\t]* )*    # If comment found, allow more spaces.
                   1441: (?:
                   1442: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1443: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1444: |
                   1445: \[                            # [
                   1446: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
                   1447: \]                           #           ]
                   1448: )
                   1449: [\040\t]*                    # Nab whitespace.
                   1450: (?:
                   1451: \(                              #  (
                   1452: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1453: (?:                                 #       (
                   1454: (?:  \\ [^\x80-\xff]  |
                   1455: \(                            #  (
                   1456: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1457: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1458: \)                           #                       )
                   1459: )    #         special
                   1460: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1461: )*                                  #            )*
                   1462: \)                             #                )
                   1463: [\040\t]* )*    # If comment found, allow more spaces.
                   1464: # optional trailing comments
                   1465: )*
                   1466: (?: ,
                   1467: [\040\t]*                    # Nab whitespace.
                   1468: (?:
                   1469: \(                              #  (
                   1470: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1471: (?:                                 #       (
                   1472: (?:  \\ [^\x80-\xff]  |
                   1473: \(                            #  (
                   1474: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1475: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1476: \)                           #                       )
                   1477: )    #         special
                   1478: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1479: )*                                  #            )*
                   1480: \)                             #                )
                   1481: [\040\t]* )*    # If comment found, allow more spaces.
                   1482: @
                   1483: [\040\t]*                    # Nab whitespace.
                   1484: (?:
                   1485: \(                              #  (
                   1486: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1487: (?:                                 #       (
                   1488: (?:  \\ [^\x80-\xff]  |
                   1489: \(                            #  (
                   1490: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1491: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1492: \)                           #                       )
                   1493: )    #         special
                   1494: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1495: )*                                  #            )*
                   1496: \)                             #                )
                   1497: [\040\t]* )*    # If comment found, allow more spaces.
                   1498: (?:
                   1499: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1500: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1501: |
                   1502: \[                            # [
                   1503: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
                   1504: \]                           #           ]
                   1505: )
                   1506: [\040\t]*                    # Nab whitespace.
                   1507: (?:
                   1508: \(                              #  (
                   1509: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1510: (?:                                 #       (
                   1511: (?:  \\ [^\x80-\xff]  |
                   1512: \(                            #  (
                   1513: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1514: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1515: \)                           #                       )
                   1516: )    #         special
                   1517: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1518: )*                                  #            )*
                   1519: \)                             #                )
                   1520: [\040\t]* )*    # If comment found, allow more spaces.
                   1521: # optional trailing comments
                   1522: (?:
                   1523: \.
                   1524: [\040\t]*                    # Nab whitespace.
                   1525: (?:
                   1526: \(                              #  (
                   1527: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1528: (?:                                 #       (
                   1529: (?:  \\ [^\x80-\xff]  |
                   1530: \(                            #  (
                   1531: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1532: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1533: \)                           #                       )
                   1534: )    #         special
                   1535: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1536: )*                                  #            )*
                   1537: \)                             #                )
                   1538: [\040\t]* )*    # If comment found, allow more spaces.
                   1539: (?:
                   1540: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1541: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1542: |
                   1543: \[                            # [
                   1544: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
                   1545: \]                           #           ]
                   1546: )
                   1547: [\040\t]*                    # Nab whitespace.
                   1548: (?:
                   1549: \(                              #  (
                   1550: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1551: (?:                                 #       (
                   1552: (?:  \\ [^\x80-\xff]  |
                   1553: \(                            #  (
                   1554: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1555: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1556: \)                           #                       )
                   1557: )    #         special
                   1558: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1559: )*                                  #            )*
                   1560: \)                             #                )
                   1561: [\040\t]* )*    # If comment found, allow more spaces.
                   1562: # optional trailing comments
                   1563: )*
                   1564: )*  # additional domains
                   1565: :
                   1566: [\040\t]*                    # Nab whitespace.
                   1567: (?:
                   1568: \(                              #  (
                   1569: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1570: (?:                                 #       (
                   1571: (?:  \\ [^\x80-\xff]  |
                   1572: \(                            #  (
                   1573: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1574: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1575: \)                           #                       )
                   1576: )    #         special
                   1577: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1578: )*                                  #            )*
                   1579: \)                             #                )
                   1580: [\040\t]* )*    # If comment found, allow more spaces.
                   1581: # optional trailing comments
                   1582: )?     #       optional route
                   1583: (?:
                   1584: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1585: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1586: # Atom
                   1587: |                       #  or
                   1588: "                                     # "
                   1589: [^\\\x80-\xff\n\015"] *                            #   normal
                   1590: (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
                   1591: "                                     #        "
                   1592: # Quoted string
                   1593: )
                   1594: [\040\t]*                    # Nab whitespace.
                   1595: (?:
                   1596: \(                              #  (
                   1597: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1598: (?:                                 #       (
                   1599: (?:  \\ [^\x80-\xff]  |
                   1600: \(                            #  (
                   1601: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1602: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1603: \)                           #                       )
                   1604: )    #         special
                   1605: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1606: )*                                  #            )*
                   1607: \)                             #                )
                   1608: [\040\t]* )*    # If comment found, allow more spaces.
                   1609: (?:
                   1610: \.
                   1611: [\040\t]*                    # Nab whitespace.
                   1612: (?:
                   1613: \(                              #  (
                   1614: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1615: (?:                                 #       (
                   1616: (?:  \\ [^\x80-\xff]  |
                   1617: \(                            #  (
                   1618: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1619: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1620: \)                           #                       )
                   1621: )    #         special
                   1622: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1623: )*                                  #            )*
                   1624: \)                             #                )
                   1625: [\040\t]* )*    # If comment found, allow more spaces.
                   1626: (?:
                   1627: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1628: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1629: # Atom
                   1630: |                       #  or
                   1631: "                                     # "
                   1632: [^\\\x80-\xff\n\015"] *                            #   normal
                   1633: (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
                   1634: "                                     #        "
                   1635: # Quoted string
                   1636: )
                   1637: [\040\t]*                    # Nab whitespace.
                   1638: (?:
                   1639: \(                              #  (
                   1640: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1641: (?:                                 #       (
                   1642: (?:  \\ [^\x80-\xff]  |
                   1643: \(                            #  (
                   1644: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1645: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1646: \)                           #                       )
                   1647: )    #         special
                   1648: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1649: )*                                  #            )*
                   1650: \)                             #                )
                   1651: [\040\t]* )*    # If comment found, allow more spaces.
                   1652: # additional words
                   1653: )*
                   1654: @
                   1655: [\040\t]*                    # Nab whitespace.
                   1656: (?:
                   1657: \(                              #  (
                   1658: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1659: (?:                                 #       (
                   1660: (?:  \\ [^\x80-\xff]  |
                   1661: \(                            #  (
                   1662: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1663: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1664: \)                           #                       )
                   1665: )    #         special
                   1666: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1667: )*                                  #            )*
                   1668: \)                             #                )
                   1669: [\040\t]* )*    # If comment found, allow more spaces.
                   1670: (?:
                   1671: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1672: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1673: |
                   1674: \[                            # [
                   1675: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
                   1676: \]                           #           ]
                   1677: )
                   1678: [\040\t]*                    # Nab whitespace.
                   1679: (?:
                   1680: \(                              #  (
                   1681: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1682: (?:                                 #       (
                   1683: (?:  \\ [^\x80-\xff]  |
                   1684: \(                            #  (
                   1685: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1686: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1687: \)                           #                       )
                   1688: )    #         special
                   1689: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1690: )*                                  #            )*
                   1691: \)                             #                )
                   1692: [\040\t]* )*    # If comment found, allow more spaces.
                   1693: # optional trailing comments
                   1694: (?:
                   1695: \.
                   1696: [\040\t]*                    # Nab whitespace.
                   1697: (?:
                   1698: \(                              #  (
                   1699: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1700: (?:                                 #       (
                   1701: (?:  \\ [^\x80-\xff]  |
                   1702: \(                            #  (
                   1703: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1704: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1705: \)                           #                       )
                   1706: )    #         special
                   1707: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1708: )*                                  #            )*
                   1709: \)                             #                )
                   1710: [\040\t]* )*    # If comment found, allow more spaces.
                   1711: (?:
                   1712: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   1713: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   1714: |
                   1715: \[                            # [
                   1716: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
                   1717: \]                           #           ]
                   1718: )
                   1719: [\040\t]*                    # Nab whitespace.
                   1720: (?:
                   1721: \(                              #  (
                   1722: [^\\\x80-\xff\n\015()] *                             #     normal*
                   1723: (?:                                 #       (
                   1724: (?:  \\ [^\x80-\xff]  |
                   1725: \(                            #  (
                   1726: [^\\\x80-\xff\n\015()] *                            #     normal*
                   1727: (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
                   1728: \)                           #                       )
                   1729: )    #         special
                   1730: [^\\\x80-\xff\n\015()] *                         #         normal*
                   1731: )*                                  #            )*
                   1732: \)                             #                )
                   1733: [\040\t]* )*    # If comment found, allow more spaces.
                   1734: # optional trailing comments
                   1735: )*
                   1736: #       address spec
                   1737: >                    #                 >
                   1738: # name and address
                   1739: )
                   1740: /x
                   1741:     Alan Other <user\@dom.ain>
                   1742:     <user\@dom.ain>
                   1743:     user\@dom.ain
                   1744:     \"A. Other\" <user.1234\@dom.ain> (a comment)
                   1745:     A. Other <user.1234\@dom.ain> (a comment)
                   1746:     \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
                   1747:     A missing angle <user\@some.where
                   1748:     *** Failers
                   1749:     The quick brown fox
                   1750: 
                   1751: /abc\0def\00pqr\000xyz\0000AB/
                   1752:     abc\0def\00pqr\000xyz\0000AB
                   1753:     abc456 abc\0def\00pqr\000xyz\0000ABCDE
                   1754: 
                   1755: /abc\x0def\x00pqr\x000xyz\x0000AB/
                   1756:     abc\x0def\x00pqr\x000xyz\x0000AB
                   1757:     abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
                   1758: 
                   1759: /^[\000-\037]/
                   1760:     \0A
                   1761:     \01B
                   1762:     \037C
                   1763: 
                   1764: /\0*/
                   1765:     \0\0\0\0
                   1766: 
                   1767: /A\x0{2,3}Z/
                   1768:     The A\x0\x0Z
                   1769:     An A\0\x0\0Z
                   1770:     *** Failers
                   1771:     A\0Z
                   1772:     A\0\x0\0\x0Z
                   1773: 
                   1774: /^\s/
                   1775:     \040abc
                   1776:     \x0cabc
                   1777:     \nabc
                   1778:     \rabc
                   1779:     \tabc
                   1780:     *** Failers
                   1781:     abc
                   1782: 
                   1783: /^a    b
                   1784:       c/x
                   1785:     abc
                   1786: 
                   1787: /ab{1,3}bc/
                   1788:     abbbbc
                   1789:     abbbc
                   1790:     abbc
                   1791:     *** Failers
                   1792:     abc
                   1793:     abbbbbc
                   1794: 
                   1795: /([^.]*)\.([^:]*):[T ]+(.*)/
                   1796:     track1.title:TBlah blah blah
                   1797: 
                   1798: /([^.]*)\.([^:]*):[T ]+(.*)/i
                   1799:     track1.title:TBlah blah blah
                   1800: 
                   1801: /([^.]*)\.([^:]*):[t ]+(.*)/i
                   1802:     track1.title:TBlah blah blah
                   1803: 
                   1804: /^[W-c]+$/
                   1805:     WXY_^abc
                   1806:     *** Failers
                   1807:     wxy
                   1808: 
                   1809: /^[W-c]+$/i
                   1810:     WXY_^abc
                   1811:     wxy_^ABC
                   1812: 
                   1813: /^[\x3f-\x5F]+$/i
                   1814:     WXY_^abc
                   1815:     wxy_^ABC
                   1816: 
                   1817: /^abc$/m
                   1818:     abc
                   1819:     qqq\nabc
                   1820:     abc\nzzz
                   1821:     qqq\nabc\nzzz
                   1822: 
                   1823: /^abc$/
                   1824:     abc
                   1825:     *** Failers
                   1826:     qqq\nabc
                   1827:     abc\nzzz
                   1828:     qqq\nabc\nzzz
                   1829: 
                   1830: /\Aabc\Z/m
                   1831:     abc
                   1832:     abc\n 
                   1833:     *** Failers
                   1834:     qqq\nabc
                   1835:     abc\nzzz
                   1836:     qqq\nabc\nzzz
                   1837:     
                   1838: /\A(.)*\Z/s
                   1839:     abc\ndef
                   1840: 
                   1841: /\A(.)*\Z/m
                   1842:     *** Failers
                   1843:     abc\ndef
                   1844: 
                   1845: /(?:b)|(?::+)/
                   1846:     b::c
                   1847:     c::b
                   1848: 
                   1849: /[-az]+/
                   1850:     az-
                   1851:     *** Failers
                   1852:     b
                   1853: 
                   1854: /[az-]+/
                   1855:     za-
                   1856:     *** Failers
                   1857:     b
                   1858: 
                   1859: /[a\-z]+/
                   1860:     a-z
                   1861:     *** Failers
                   1862:     b
                   1863: 
                   1864: /[a-z]+/
                   1865:     abcdxyz
                   1866: 
                   1867: /[\d-]+/
                   1868:     12-34
                   1869:     *** Failers
                   1870:     aaa
                   1871: 
                   1872: /[\d-z]+/
                   1873:     12-34z
                   1874:     *** Failers
                   1875:     aaa
                   1876: 
                   1877: /\x5c/
                   1878:     \\
                   1879: 
                   1880: /\x20Z/
                   1881:     the Zoo
                   1882:     *** Failers
                   1883:     Zulu
                   1884: 
                   1885: /ab{3cd/
                   1886:     ab{3cd
                   1887: 
                   1888: /ab{3,cd/
                   1889:     ab{3,cd
                   1890: 
                   1891: /ab{3,4a}cd/
                   1892:     ab{3,4a}cd
                   1893: 
                   1894: /{4,5a}bc/
                   1895:     {4,5a}bc
                   1896: 
                   1897: /^a.b/<lf>
                   1898:     a\rb
                   1899:     *** Failers
                   1900:     a\nb
                   1901: 
                   1902: /abc$/
                   1903:     abc
                   1904:     abc\n
                   1905:     *** Failers
                   1906:     abc\ndef
                   1907: 
                   1908: /(abc)\123/
                   1909:     abc\x53
                   1910: 
                   1911: /(abc)\223/
                   1912:     abc\x93
                   1913: 
                   1914: /(abc)\323/
                   1915:     abc\xd3
                   1916: 
                   1917: /(abc)\100/
                   1918:     abc\x40
                   1919:     abc\100
                   1920: 
                   1921: /(abc)\1000/
                   1922:     abc\x400
                   1923:     abc\x40\x30
                   1924:     abc\1000
                   1925:     abc\100\x30
                   1926:     abc\100\060
                   1927:     abc\100\60
                   1928: 
1.1.1.5 ! misho    1929: /^A\8B\9C$/
        !          1930:     A8B9C
        !          1931:     *** Failers
        !          1932:     A\08B\09C  
        !          1933:     
        !          1934: /^[A\8B\9C]+$/
        !          1935:     A8B9C
        !          1936:     *** Failers 
        !          1937:     A8B9C\x00
        !          1938:     
1.1.1.2   misho    1939: /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
                   1940:     abcdefghijk\12S
                   1941: 
                   1942: /ab\idef/
                   1943:     abidef
                   1944: 
                   1945: /a{0}bc/
                   1946:     bc
                   1947: 
                   1948: /(a|(bc)){0,0}?xyz/
                   1949:     xyz
                   1950: 
                   1951: /abc[\10]de/
                   1952:     abc\010de
                   1953: 
                   1954: /abc[\1]de/
                   1955:     abc\1de
                   1956: 
                   1957: /(abc)[\1]de/
                   1958:     abc\1de
                   1959: 
                   1960: /(?s)a.b/
                   1961:     a\nb
                   1962: 
                   1963: /^([^a])([^\b])([^c]*)([^d]{3,4})/
                   1964:     baNOTccccd
                   1965:     baNOTcccd
                   1966:     baNOTccd
                   1967:     bacccd
                   1968:     *** Failers
                   1969:     anything
                   1970:     b\bc   
                   1971:     baccd
                   1972: 
                   1973: /[^a]/
                   1974:     Abc
                   1975:   
                   1976: /[^a]/i
                   1977:     Abc 
                   1978: 
                   1979: /[^a]+/
                   1980:     AAAaAbc
                   1981:   
                   1982: /[^a]+/i
                   1983:     AAAaAbc 
                   1984: 
                   1985: /[^a]+/
                   1986:     bbb\nccc
                   1987:    
                   1988: /[^k]$/
                   1989:     abc
                   1990:     *** Failers
                   1991:     abk   
                   1992:    
                   1993: /[^k]{2,3}$/
                   1994:     abc
                   1995:     kbc
                   1996:     kabc 
                   1997:     *** Failers
                   1998:     abk
                   1999:     akb
                   2000:     akk 
                   2001: 
                   2002: /^\d{8,}\@.+[^k]$/
                   2003:     12345678\@a.b.c.d
                   2004:     123456789\@x.y.z
                   2005:     *** Failers
                   2006:     12345678\@x.y.uk
                   2007:     1234567\@a.b.c.d       
                   2008: 
                   2009: /[^a]/
                   2010:     aaaabcd
                   2011:     aaAabcd 
                   2012: 
                   2013: /[^a]/i
                   2014:     aaaabcd
                   2015:     aaAabcd 
                   2016: 
                   2017: /[^az]/
                   2018:     aaaabcd
                   2019:     aaAabcd 
                   2020: 
                   2021: /[^az]/i
                   2022:     aaaabcd
                   2023:     aaAabcd 
                   2024: 
                   2025: /\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/
                   2026:  \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
                   2027: 
                   2028: /P[^*]TAIRE[^*]{1,6}?LL/
                   2029:     xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
                   2030: 
                   2031: /P[^*]TAIRE[^*]{1,}?LL/
                   2032:     xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
                   2033: 
                   2034: /(\.\d\d[1-9]?)\d+/
                   2035:     1.230003938
                   2036:     1.875000282   
                   2037:     1.235  
                   2038:                   
                   2039: /(\.\d\d((?=0)|\d(?=\d)))/
                   2040:     1.230003938      
                   2041:     1.875000282
                   2042:     *** Failers 
                   2043:     1.235 
                   2044:     
                   2045: /a(?)b/
                   2046:     ab 
                   2047:  
                   2048: /\b(foo)\s+(\w+)/i
                   2049:     Food is on the foo table
                   2050:     
                   2051: /foo(.*)bar/
                   2052:     The food is under the bar in the barn.
                   2053:     
                   2054: /foo(.*?)bar/  
                   2055:     The food is under the bar in the barn.
                   2056: 
1.1.1.5 ! misho    2057: /(.*)(\d*)/O
1.1.1.2   misho    2058:     I have 2 numbers: 53147
                   2059:     
                   2060: /(.*)(\d+)/
                   2061:     I have 2 numbers: 53147
                   2062:  
1.1.1.5 ! misho    2063: /(.*?)(\d*)/O
1.1.1.2   misho    2064:     I have 2 numbers: 53147
                   2065: 
                   2066: /(.*?)(\d+)/
                   2067:     I have 2 numbers: 53147
                   2068: 
                   2069: /(.*)(\d+)$/
                   2070:     I have 2 numbers: 53147
                   2071: 
                   2072: /(.*?)(\d+)$/
                   2073:     I have 2 numbers: 53147
                   2074: 
                   2075: /(.*)\b(\d+)$/
                   2076:     I have 2 numbers: 53147
                   2077: 
                   2078: /(.*\D)(\d+)$/
                   2079:     I have 2 numbers: 53147
                   2080: 
                   2081: /^\D*(?!123)/
                   2082:     ABC123
                   2083:      
                   2084: /^(\D*)(?=\d)(?!123)/
                   2085:     ABC445
                   2086:     *** Failers
                   2087:     ABC123
                   2088:     
                   2089: /^[W-]46]/
                   2090:     W46]789 
                   2091:     -46]789
                   2092:     *** Failers
                   2093:     Wall
                   2094:     Zebra
                   2095:     42
                   2096:     [abcd] 
                   2097:     ]abcd[
                   2098:        
                   2099: /^[W-\]46]/
                   2100:     W46]789 
                   2101:     Wall
                   2102:     Zebra
                   2103:     Xylophone  
                   2104:     42
                   2105:     [abcd] 
                   2106:     ]abcd[
                   2107:     \\backslash 
                   2108:     *** Failers
                   2109:     -46]789
                   2110:     well
                   2111:     
                   2112: /\d\d\/\d\d\/\d\d\d\d/
                   2113:     01/01/2000
                   2114: 
                   2115: /word (?:[a-zA-Z0-9]+ ){0,10}otherword/
                   2116:   word cat dog elephant mussel cow horse canary baboon snake shark otherword
                   2117:   word cat dog elephant mussel cow horse canary baboon snake shark
                   2118: 
                   2119: /word (?:[a-zA-Z0-9]+ ){0,300}otherword/
                   2120:   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
                   2121: 
                   2122: /^(a){0,0}/
                   2123:     bcd
                   2124:     abc
                   2125:     aab     
                   2126: 
                   2127: /^(a){0,1}/
                   2128:     bcd
                   2129:     abc
                   2130:     aab  
                   2131: 
                   2132: /^(a){0,2}/
                   2133:     bcd
                   2134:     abc
                   2135:     aab  
                   2136: 
                   2137: /^(a){0,3}/
                   2138:     bcd
                   2139:     abc
                   2140:     aab
                   2141:     aaa   
                   2142: 
                   2143: /^(a){0,}/
                   2144:     bcd
                   2145:     abc
                   2146:     aab
                   2147:     aaa
                   2148:     aaaaaaaa    
                   2149: 
                   2150: /^(a){1,1}/
                   2151:     bcd
                   2152:     abc
                   2153:     aab  
                   2154: 
                   2155: /^(a){1,2}/
                   2156:     bcd
                   2157:     abc
                   2158:     aab  
                   2159: 
                   2160: /^(a){1,3}/
                   2161:     bcd
                   2162:     abc
                   2163:     aab
                   2164:     aaa   
                   2165: 
                   2166: /^(a){1,}/
                   2167:     bcd
                   2168:     abc
                   2169:     aab
                   2170:     aaa
                   2171:     aaaaaaaa    
                   2172: 
                   2173: /.*\.gif/
                   2174:     borfle\nbib.gif\nno
                   2175: 
                   2176: /.{0,}\.gif/
                   2177:     borfle\nbib.gif\nno
                   2178: 
                   2179: /.*\.gif/m
                   2180:     borfle\nbib.gif\nno
                   2181: 
                   2182: /.*\.gif/s
                   2183:     borfle\nbib.gif\nno
                   2184: 
                   2185: /.*\.gif/ms
                   2186:     borfle\nbib.gif\nno
                   2187:     
                   2188: /.*$/
                   2189:     borfle\nbib.gif\nno
                   2190: 
                   2191: /.*$/m
                   2192:     borfle\nbib.gif\nno
                   2193: 
                   2194: /.*$/s
                   2195:     borfle\nbib.gif\nno
                   2196: 
                   2197: /.*$/ms
                   2198:     borfle\nbib.gif\nno
                   2199:     
                   2200: /.*$/
                   2201:     borfle\nbib.gif\nno\n
                   2202: 
                   2203: /.*$/m
                   2204:     borfle\nbib.gif\nno\n
                   2205: 
                   2206: /.*$/s
                   2207:     borfle\nbib.gif\nno\n
                   2208: 
                   2209: /.*$/ms
                   2210:     borfle\nbib.gif\nno\n
                   2211:     
                   2212: /(.*X|^B)/
                   2213:     abcde\n1234Xyz
                   2214:     BarFoo 
                   2215:     *** Failers
                   2216:     abcde\nBar  
                   2217: 
                   2218: /(.*X|^B)/m
                   2219:     abcde\n1234Xyz
                   2220:     BarFoo 
                   2221:     abcde\nBar  
                   2222: 
                   2223: /(.*X|^B)/s
                   2224:     abcde\n1234Xyz
                   2225:     BarFoo 
                   2226:     *** Failers
                   2227:     abcde\nBar  
                   2228: 
                   2229: /(.*X|^B)/ms
                   2230:     abcde\n1234Xyz
                   2231:     BarFoo 
                   2232:     abcde\nBar  
                   2233: 
                   2234: /(?s)(.*X|^B)/
                   2235:     abcde\n1234Xyz
                   2236:     BarFoo 
                   2237:     *** Failers 
                   2238:     abcde\nBar  
                   2239: 
                   2240: /(?s:.*X|^B)/
                   2241:     abcde\n1234Xyz
                   2242:     BarFoo 
                   2243:     *** Failers 
                   2244:     abcde\nBar  
                   2245: 
                   2246: /^.*B/
                   2247:     **** Failers
                   2248:     abc\nB
                   2249:      
                   2250: /(?s)^.*B/
                   2251:     abc\nB
                   2252: 
                   2253: /(?m)^.*B/
                   2254:     abc\nB
                   2255:      
                   2256: /(?ms)^.*B/
                   2257:     abc\nB
                   2258: 
                   2259: /(?ms)^B/
                   2260:     abc\nB
                   2261: 
                   2262: /(?s)B$/
                   2263:     B\n
                   2264: 
                   2265: /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
                   2266:     123456654321
                   2267:   
                   2268: /^\d\d\d\d\d\d\d\d\d\d\d\d/
                   2269:     123456654321 
                   2270: 
                   2271: /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
                   2272:     123456654321
                   2273:   
                   2274: /^[abc]{12}/
                   2275:     abcabcabcabc
                   2276:     
                   2277: /^[a-c]{12}/
                   2278:     abcabcabcabc
                   2279:     
                   2280: /^(a|b|c){12}/
                   2281:     abcabcabcabc 
                   2282: 
                   2283: /^[abcdefghijklmnopqrstuvwxy0123456789]/
                   2284:     n
                   2285:     *** Failers 
                   2286:     z 
                   2287: 
                   2288: /abcde{0,0}/
                   2289:     abcd
                   2290:     *** Failers
                   2291:     abce  
                   2292: 
                   2293: /ab[cd]{0,0}e/
                   2294:     abe
                   2295:     *** Failers
                   2296:     abcde 
                   2297:     
                   2298: /ab(c){0,0}d/
                   2299:     abd
                   2300:     *** Failers
                   2301:     abcd   
                   2302: 
                   2303: /a(b*)/
                   2304:     a
                   2305:     ab
                   2306:     abbbb
                   2307:     *** Failers
                   2308:     bbbbb    
                   2309:     
                   2310: /ab\d{0}e/
                   2311:     abe
                   2312:     *** Failers
                   2313:     ab1e   
                   2314:     
                   2315: /"([^\\"]+|\\.)*"/
                   2316:     the \"quick\" brown fox
                   2317:     \"the \\\"quick\\\" brown fox\" 
                   2318: 
                   2319: /.*?/g+
                   2320:     abc
                   2321:   
                   2322: /\b/g+
                   2323:     abc 
                   2324: 
                   2325: /\b/+g
                   2326:     abc 
                   2327: 
                   2328: //g
                   2329:     abc
                   2330: 
                   2331: /<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
                   2332:   <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>
                   2333: 
                   2334: /a[^a]b/
                   2335:     acb
                   2336:     a\nb
                   2337:     
                   2338: /a.b/
                   2339:     acb
                   2340:     *** Failers 
                   2341:     a\nb   
                   2342:     
                   2343: /a[^a]b/s
                   2344:     acb
                   2345:     a\nb  
                   2346:     
                   2347: /a.b/s
                   2348:     acb
                   2349:     a\nb  
                   2350: 
                   2351: /^(b+?|a){1,2}?c/
                   2352:     bac
                   2353:     bbac
                   2354:     bbbac
                   2355:     bbbbac
                   2356:     bbbbbac 
                   2357: 
                   2358: /^(b+|a){1,2}?c/
                   2359:     bac
                   2360:     bbac
                   2361:     bbbac
                   2362:     bbbbac
                   2363:     bbbbbac 
                   2364:     
                   2365: /(?!\A)x/m
                   2366:     x\nb\n
                   2367:     a\bx\n  
                   2368:     
                   2369: /\x0{ab}/
                   2370:     \0{ab} 
                   2371: 
                   2372: /(A|B)*?CD/
                   2373:     CD 
                   2374:     
                   2375: /(A|B)*CD/
                   2376:     CD 
                   2377: 
                   2378: /(?<!bar)foo/
                   2379:     foo
                   2380:     catfood
                   2381:     arfootle
                   2382:     rfoosh
                   2383:     *** Failers
                   2384:     barfoo
                   2385:     towbarfoo
                   2386: 
                   2387: /\w{3}(?<!bar)foo/
                   2388:     catfood
                   2389:     *** Failers
                   2390:     foo
                   2391:     barfoo
                   2392:     towbarfoo
                   2393: 
                   2394: /(?<=(foo)a)bar/
                   2395:     fooabar
                   2396:     *** Failers
                   2397:     bar
                   2398:     foobbar
                   2399:       
                   2400: /\Aabc\z/m
                   2401:     abc
                   2402:     *** Failers
                   2403:     abc\n   
                   2404:     qqq\nabc
                   2405:     abc\nzzz
                   2406:     qqq\nabc\nzzz
                   2407: 
                   2408: "(?>.*/)foo"
                   2409:     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
                   2410: 
                   2411: "(?>.*/)foo"
                   2412:     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
                   2413: 
                   2414: /(?>(\.\d\d[1-9]?))\d+/
                   2415:     1.230003938
                   2416:     1.875000282
                   2417:     *** Failers 
                   2418:     1.235 
                   2419: 
                   2420: /^((?>\w+)|(?>\s+))*$/
                   2421:     now is the time for all good men to come to the aid of the party
                   2422:     *** Failers
                   2423:     this is not a line with only words and spaces!
                   2424:     
                   2425: /(\d+)(\w)/
                   2426:     12345a
                   2427:     12345+ 
                   2428: 
                   2429: /((?>\d+))(\w)/
                   2430:     12345a
                   2431:     *** Failers
                   2432:     12345+ 
                   2433: 
                   2434: /(?>a+)b/
                   2435:     aaab
                   2436: 
                   2437: /((?>a+)b)/
                   2438:     aaab
                   2439: 
                   2440: /(?>(a+))b/
                   2441:     aaab
                   2442: 
                   2443: /(?>b)+/
                   2444:     aaabbbccc
                   2445: 
                   2446: /(?>a+|b+|c+)*c/
                   2447:     aaabbbbccccd
                   2448:     
                   2449: /(a+|b+|c+)*c/
                   2450:     aaabbbbccccd
                   2451: 
                   2452: /((?>[^()]+)|\([^()]*\))+/
                   2453:     ((abc(ade)ufh()()x
                   2454:     
                   2455: /\(((?>[^()]+)|\([^()]+\))+\)/ 
                   2456:     (abc)
                   2457:     (abc(def)xyz)
                   2458:     *** Failers
                   2459:     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   
                   2460: 
                   2461: /a(?-i)b/i
                   2462:     ab
                   2463:     Ab
                   2464:     *** Failers 
                   2465:     aB
                   2466:     AB
                   2467:         
                   2468: /(a (?x)b c)d e/
                   2469:     a bcd e
                   2470:     *** Failers
                   2471:     a b cd e
                   2472:     abcd e   
                   2473:     a bcde 
                   2474:  
                   2475: /(a b(?x)c d (?-x)e f)/
                   2476:     a bcde f
                   2477:     *** Failers
                   2478:     abcdef  
                   2479: 
                   2480: /(a(?i)b)c/
                   2481:     abc
                   2482:     aBc
                   2483:     *** Failers
                   2484:     abC
                   2485:     aBC  
                   2486:     Abc
                   2487:     ABc
                   2488:     ABC
                   2489:     AbC
                   2490:     
                   2491: /a(?i:b)c/
                   2492:     abc
                   2493:     aBc
                   2494:     *** Failers 
                   2495:     ABC
                   2496:     abC
                   2497:     aBC
                   2498:     
                   2499: /a(?i:b)*c/
                   2500:     aBc
                   2501:     aBBc
                   2502:     *** Failers 
                   2503:     aBC
                   2504:     aBBC
                   2505:     
                   2506: /a(?=b(?i)c)\w\wd/
                   2507:     abcd
                   2508:     abCd
                   2509:     *** Failers
                   2510:     aBCd
                   2511:     abcD     
                   2512:     
                   2513: /(?s-i:more.*than).*million/i
                   2514:     more than million
                   2515:     more than MILLION
                   2516:     more \n than Million 
                   2517:     *** Failers
                   2518:     MORE THAN MILLION    
                   2519:     more \n than \n million 
                   2520: 
                   2521: /(?:(?s-i)more.*than).*million/i
                   2522:     more than million
                   2523:     more than MILLION
                   2524:     more \n than Million 
                   2525:     *** Failers
                   2526:     MORE THAN MILLION    
                   2527:     more \n than \n million 
                   2528:     
                   2529: /(?>a(?i)b+)+c/ 
                   2530:     abc
                   2531:     aBbc
                   2532:     aBBc 
                   2533:     *** Failers
                   2534:     Abc
                   2535:     abAb    
                   2536:     abbC 
                   2537:     
                   2538: /(?=a(?i)b)\w\wc/
                   2539:     abc
                   2540:     aBc
                   2541:     *** Failers
                   2542:     Ab 
                   2543:     abC
                   2544:     aBC     
                   2545:     
                   2546: /(?<=a(?i)b)(\w\w)c/
                   2547:     abxxc
                   2548:     aBxxc
                   2549:     *** Failers
                   2550:     Abxxc
                   2551:     ABxxc
                   2552:     abxxC      
                   2553: 
                   2554: /^(?(?=abc)\w{3}:|\d\d)$/
                   2555:     abc:
                   2556:     12
                   2557:     *** Failers
                   2558:     123
                   2559:     xyz    
                   2560: 
                   2561: /^(?(?!abc)\d\d|\w{3}:)$/
                   2562:     abc:
                   2563:     12
                   2564:     *** Failers
                   2565:     123
                   2566:     xyz    
                   2567:     
                   2568: /(?(?<=foo)bar|cat)/
                   2569:     foobar
                   2570:     cat
                   2571:     fcat
                   2572:     focat   
                   2573:     *** Failers
                   2574:     foocat  
                   2575: 
                   2576: /(?(?<!foo)cat|bar)/
                   2577:     foobar
                   2578:     cat
                   2579:     fcat
                   2580:     focat   
                   2581:     *** Failers
                   2582:     foocat  
                   2583: 
                   2584: /(?>a*)*/
                   2585:     a
                   2586:     aa
                   2587:     aaaa
                   2588:     
                   2589: /(abc|)+/
                   2590:     abc
                   2591:     abcabc
                   2592:     abcabcabc
                   2593:     xyz      
                   2594: 
                   2595: /([a]*)*/
                   2596:     a
                   2597:     aaaaa 
                   2598:  
                   2599: /([ab]*)*/
                   2600:     a
                   2601:     b
                   2602:     ababab
                   2603:     aaaabcde
                   2604:     bbbb    
                   2605:  
                   2606: /([^a]*)*/
                   2607:     b
                   2608:     bbbb
                   2609:     aaa   
                   2610:  
                   2611: /([^ab]*)*/
                   2612:     cccc
                   2613:     abab  
                   2614:  
                   2615: /([a]*?)*/
                   2616:     a
                   2617:     aaaa 
                   2618:  
                   2619: /([ab]*?)*/
                   2620:     a
                   2621:     b
                   2622:     abab
                   2623:     baba   
                   2624:  
                   2625: /([^a]*?)*/
                   2626:     b
                   2627:     bbbb
                   2628:     aaa   
                   2629:  
                   2630: /([^ab]*?)*/
                   2631:     c
                   2632:     cccc
                   2633:     baba   
                   2634:  
                   2635: /(?>a*)*/
                   2636:     a
                   2637:     aaabcde 
                   2638:  
                   2639: /((?>a*))*/
                   2640:     aaaaa
                   2641:     aabbaa 
                   2642:  
                   2643: /((?>a*?))*/
                   2644:     aaaaa
                   2645:     aabbaa 
                   2646: 
                   2647: /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x
                   2648:     12-sep-98
                   2649:     12-09-98
                   2650:     *** Failers
                   2651:     sep-12-98
                   2652:         
                   2653: /(?i:saturday|sunday)/
                   2654:     saturday
                   2655:     sunday
                   2656:     Saturday
                   2657:     Sunday
                   2658:     SATURDAY
                   2659:     SUNDAY
                   2660:     SunDay
                   2661:     
                   2662: /(a(?i)bc|BB)x/
                   2663:     abcx
                   2664:     aBCx
                   2665:     bbx
                   2666:     BBx
                   2667:     *** Failers
                   2668:     abcX
                   2669:     aBCX
                   2670:     bbX
                   2671:     BBX               
                   2672: 
                   2673: /^([ab](?i)[cd]|[ef])/
                   2674:     ac
                   2675:     aC
                   2676:     bD
                   2677:     elephant
                   2678:     Europe 
                   2679:     frog
                   2680:     France
                   2681:     *** Failers
                   2682:     Africa     
                   2683: 
                   2684: /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
                   2685:     ab
                   2686:     aBd
                   2687:     xy
                   2688:     xY
                   2689:     zebra
                   2690:     Zambesi
                   2691:     *** Failers
                   2692:     aCD  
                   2693:     XY  
                   2694: 
                   2695: /(?<=foo\n)^bar/m
                   2696:     foo\nbar
                   2697:     *** Failers
                   2698:     bar
                   2699:     baz\nbar   
                   2700: 
                   2701: /(?<=(?<!foo)bar)baz/
                   2702:     barbaz
                   2703:     barbarbaz 
                   2704:     koobarbaz 
                   2705:     *** Failers
                   2706:     baz
                   2707:     foobarbaz 
                   2708: 
                   2709: /The following tests are taken from the Perl 5.005 test suite; some of them/
                   2710: /are compatible with 5.004, but I'd rather not have to sort them out./
                   2711: 
                   2712: /abc/
                   2713:     abc
                   2714:     xabcy
                   2715:     ababc
                   2716:     *** Failers
                   2717:     xbc
                   2718:     axc
                   2719:     abx
                   2720: 
                   2721: /ab*c/
                   2722:     abc
                   2723: 
                   2724: /ab*bc/
                   2725:     abc
                   2726:     abbc
                   2727:     abbbbc
                   2728: 
                   2729: /.{1}/
                   2730:     abbbbc
                   2731: 
                   2732: /.{3,4}/
                   2733:     abbbbc
                   2734: 
                   2735: /ab{0,}bc/
                   2736:     abbbbc
                   2737: 
                   2738: /ab+bc/
                   2739:     abbc
                   2740:     *** Failers
                   2741:     abc
                   2742:     abq
                   2743: 
                   2744: /ab+bc/
                   2745:     abbbbc
                   2746: 
                   2747: /ab{1,}bc/
                   2748:     abbbbc
                   2749: 
                   2750: /ab{1,3}bc/
                   2751:     abbbbc
                   2752: 
                   2753: /ab{3,4}bc/
                   2754:     abbbbc
                   2755: 
                   2756: /ab{4,5}bc/
                   2757:     *** Failers
                   2758:     abq
                   2759:     abbbbc
                   2760: 
                   2761: /ab?bc/
                   2762:     abbc
                   2763:     abc
                   2764: 
                   2765: /ab{0,1}bc/
                   2766:     abc
                   2767: 
                   2768: /ab?bc/
                   2769: 
                   2770: /ab?c/
                   2771:     abc
                   2772: 
                   2773: /ab{0,1}c/
                   2774:     abc
                   2775: 
                   2776: /^abc$/
                   2777:     abc
                   2778:     *** Failers
                   2779:     abbbbc
                   2780:     abcc
                   2781: 
                   2782: /^abc/
                   2783:     abcc
                   2784: 
                   2785: /^abc$/
                   2786: 
                   2787: /abc$/
                   2788:     aabc
                   2789:     *** Failers
                   2790:     aabc
                   2791:     aabcd
                   2792: 
                   2793: /^/
                   2794:     abc
                   2795: 
                   2796: /$/
                   2797:     abc
                   2798: 
                   2799: /a.c/
                   2800:     abc
                   2801:     axc
                   2802: 
                   2803: /a.*c/
                   2804:     axyzc
                   2805: 
                   2806: /a[bc]d/
                   2807:     abd
                   2808:     *** Failers
                   2809:     axyzd
                   2810:     abc
                   2811: 
                   2812: /a[b-d]e/
                   2813:     ace
                   2814: 
                   2815: /a[b-d]/
                   2816:     aac
                   2817: 
                   2818: /a[-b]/
                   2819:     a-
                   2820: 
                   2821: /a[b-]/
                   2822:     a-
                   2823: 
                   2824: /a]/
                   2825:     a]
                   2826: 
                   2827: /a[]]b/
                   2828:     a]b
                   2829: 
                   2830: /a[^bc]d/
                   2831:     aed
                   2832:     *** Failers
                   2833:     abd
                   2834:     abd
                   2835: 
                   2836: /a[^-b]c/
                   2837:     adc
                   2838: 
                   2839: /a[^]b]c/
                   2840:     adc
                   2841:     *** Failers
                   2842:     a-c
                   2843:     a]c
                   2844: 
                   2845: /\ba\b/
                   2846:     a-
                   2847:     -a
                   2848:     -a-
                   2849: 
                   2850: /\by\b/
                   2851:     *** Failers
                   2852:     xy
                   2853:     yz
                   2854:     xyz
                   2855: 
                   2856: /\Ba\B/
                   2857:     *** Failers
                   2858:     a-
                   2859:     -a
                   2860:     -a-
                   2861: 
                   2862: /\By\b/
                   2863:     xy
                   2864: 
                   2865: /\by\B/
                   2866:     yz
                   2867: 
                   2868: /\By\B/
                   2869:     xyz
                   2870: 
                   2871: /\w/
                   2872:     a
                   2873: 
                   2874: /\W/
                   2875:     -
                   2876:     *** Failers
                   2877:     -
                   2878:     a
                   2879: 
                   2880: /a\sb/
                   2881:     a b
                   2882: 
                   2883: /a\Sb/
                   2884:     a-b
                   2885:     *** Failers
                   2886:     a-b
                   2887:     a b
                   2888: 
                   2889: /\d/
                   2890:     1
                   2891: 
                   2892: /\D/
                   2893:     -
                   2894:     *** Failers
                   2895:     -
                   2896:     1
                   2897: 
                   2898: /[\w]/
                   2899:     a
                   2900: 
                   2901: /[\W]/
                   2902:     -
                   2903:     *** Failers
                   2904:     -
                   2905:     a
                   2906: 
                   2907: /a[\s]b/
                   2908:     a b
                   2909: 
                   2910: /a[\S]b/
                   2911:     a-b
                   2912:     *** Failers
                   2913:     a-b
                   2914:     a b
                   2915: 
                   2916: /[\d]/
                   2917:     1
                   2918: 
                   2919: /[\D]/
                   2920:     -
                   2921:     *** Failers
                   2922:     -
                   2923:     1
                   2924: 
                   2925: /ab|cd/
                   2926:     abc
                   2927:     abcd
                   2928: 
                   2929: /()ef/
                   2930:     def
                   2931: 
                   2932: /$b/
                   2933: 
                   2934: /a\(b/
                   2935:     a(b
                   2936: 
                   2937: /a\(*b/
                   2938:     ab
                   2939:     a((b
                   2940: 
                   2941: /a\\b/
                   2942:     a\b
                   2943: 
                   2944: /((a))/
                   2945:     abc
                   2946: 
                   2947: /(a)b(c)/
                   2948:     abc
                   2949: 
                   2950: /a+b+c/
                   2951:     aabbabc
                   2952: 
                   2953: /a{1,}b{1,}c/
                   2954:     aabbabc
                   2955: 
                   2956: /a.+?c/
                   2957:     abcabc
                   2958: 
                   2959: /(a+|b)*/
                   2960:     ab
                   2961: 
                   2962: /(a+|b){0,}/
                   2963:     ab
                   2964: 
                   2965: /(a+|b)+/
                   2966:     ab
                   2967: 
                   2968: /(a+|b){1,}/
                   2969:     ab
                   2970: 
                   2971: /(a+|b)?/
                   2972:     ab
                   2973: 
                   2974: /(a+|b){0,1}/
                   2975:     ab
                   2976: 
                   2977: /[^ab]*/
                   2978:     cde
                   2979: 
                   2980: /abc/
                   2981:     *** Failers
                   2982:     b
                   2983:     
                   2984: 
                   2985: /a*/
                   2986:     
                   2987: 
                   2988: /([abc])*d/
                   2989:     abbbcd
                   2990: 
                   2991: /([abc])*bcd/
                   2992:     abcd
                   2993: 
                   2994: /a|b|c|d|e/
                   2995:     e
                   2996: 
                   2997: /(a|b|c|d|e)f/
                   2998:     ef
                   2999: 
                   3000: /abcd*efg/
                   3001:     abcdefg
                   3002: 
                   3003: /ab*/
                   3004:     xabyabbbz
                   3005:     xayabbbz
                   3006: 
                   3007: /(ab|cd)e/
                   3008:     abcde
                   3009: 
                   3010: /[abhgefdc]ij/
                   3011:     hij
                   3012: 
                   3013: /^(ab|cd)e/
                   3014: 
                   3015: /(abc|)ef/
                   3016:     abcdef
                   3017: 
                   3018: /(a|b)c*d/
                   3019:     abcd
                   3020: 
                   3021: /(ab|ab*)bc/
                   3022:     abc
                   3023: 
                   3024: /a([bc]*)c*/
                   3025:     abc
                   3026: 
                   3027: /a([bc]*)(c*d)/
                   3028:     abcd
                   3029: 
                   3030: /a([bc]+)(c*d)/
                   3031:     abcd
                   3032: 
                   3033: /a([bc]*)(c+d)/
                   3034:     abcd
                   3035: 
                   3036: /a[bcd]*dcdcde/
                   3037:     adcdcde
                   3038: 
                   3039: /a[bcd]+dcdcde/
                   3040:     *** Failers
                   3041:     abcde
                   3042:     adcdcde
                   3043: 
                   3044: /(ab|a)b*c/
                   3045:     abc
                   3046: 
                   3047: /((a)(b)c)(d)/
                   3048:     abcd
                   3049: 
                   3050: /[a-zA-Z_][a-zA-Z0-9_]*/
                   3051:     alpha
                   3052: 
                   3053: /^a(bc+|b[eh])g|.h$/
                   3054:     abh
                   3055: 
                   3056: /(bc+d$|ef*g.|h?i(j|k))/
                   3057:     effgz
                   3058:     ij
                   3059:     reffgz
                   3060:     *** Failers
                   3061:     effg
                   3062:     bcdd
                   3063: 
                   3064: /((((((((((a))))))))))/
                   3065:     a
                   3066: 
                   3067: /(((((((((a)))))))))/
                   3068:     a
                   3069: 
                   3070: /multiple words of text/
                   3071:     *** Failers
                   3072:     aa
                   3073:     uh-uh
                   3074: 
                   3075: /multiple words/
                   3076:     multiple words, yeah
                   3077: 
                   3078: /(.*)c(.*)/
                   3079:     abcde
                   3080: 
                   3081: /\((.*), (.*)\)/
                   3082:     (a, b)
                   3083: 
                   3084: /[k]/
                   3085: 
                   3086: /abcd/
                   3087:     abcd
                   3088: 
                   3089: /a(bc)d/
                   3090:     abcd
                   3091: 
                   3092: /a[-]?c/
                   3093:     ac
                   3094: 
                   3095: /abc/i
                   3096:     ABC
                   3097:     XABCY
                   3098:     ABABC
                   3099:     *** Failers
                   3100:     aaxabxbaxbbx
                   3101:     XBC
                   3102:     AXC
                   3103:     ABX
                   3104: 
                   3105: /ab*c/i
                   3106:     ABC
                   3107: 
                   3108: /ab*bc/i
                   3109:     ABC
                   3110:     ABBC
                   3111: 
                   3112: /ab*?bc/i
                   3113:     ABBBBC
                   3114: 
                   3115: /ab{0,}?bc/i
                   3116:     ABBBBC
                   3117: 
                   3118: /ab+?bc/i
                   3119:     ABBC
                   3120: 
                   3121: /ab+bc/i
                   3122:     *** Failers
                   3123:     ABC
                   3124:     ABQ
                   3125: 
                   3126: /ab{1,}bc/i
                   3127: 
                   3128: /ab+bc/i
                   3129:     ABBBBC
                   3130: 
                   3131: /ab{1,}?bc/i
                   3132:     ABBBBC
                   3133: 
                   3134: /ab{1,3}?bc/i
                   3135:     ABBBBC
                   3136: 
                   3137: /ab{3,4}?bc/i
                   3138:     ABBBBC
                   3139: 
                   3140: /ab{4,5}?bc/i
                   3141:     *** Failers
                   3142:     ABQ
                   3143:     ABBBBC
                   3144: 
                   3145: /ab??bc/i
                   3146:     ABBC
                   3147:     ABC
                   3148: 
                   3149: /ab{0,1}?bc/i
                   3150:     ABC
                   3151: 
                   3152: /ab??bc/i
                   3153: 
                   3154: /ab??c/i
                   3155:     ABC
                   3156: 
                   3157: /ab{0,1}?c/i
                   3158:     ABC
                   3159: 
                   3160: /^abc$/i
                   3161:     ABC
                   3162:     *** Failers
                   3163:     ABBBBC
                   3164:     ABCC
                   3165: 
                   3166: /^abc/i
                   3167:     ABCC
                   3168: 
                   3169: /^abc$/i
                   3170: 
                   3171: /abc$/i
                   3172:     AABC
                   3173: 
                   3174: /^/i
                   3175:     ABC
                   3176: 
                   3177: /$/i
                   3178:     ABC
                   3179: 
                   3180: /a.c/i
                   3181:     ABC
                   3182:     AXC
                   3183: 
                   3184: /a.*?c/i
                   3185:     AXYZC
                   3186: 
                   3187: /a.*c/i
                   3188:     *** Failers
                   3189:     AABC
                   3190:     AXYZD
                   3191: 
                   3192: /a[bc]d/i
                   3193:     ABD
                   3194: 
                   3195: /a[b-d]e/i
                   3196:     ACE
                   3197:     *** Failers
                   3198:     ABC
                   3199:     ABD
                   3200: 
                   3201: /a[b-d]/i
                   3202:     AAC
                   3203: 
                   3204: /a[-b]/i
                   3205:     A-
                   3206: 
                   3207: /a[b-]/i
                   3208:     A-
                   3209: 
                   3210: /a]/i
                   3211:     A]
                   3212: 
                   3213: /a[]]b/i
                   3214:     A]B
                   3215: 
                   3216: /a[^bc]d/i
                   3217:     AED
                   3218: 
                   3219: /a[^-b]c/i
                   3220:     ADC
                   3221:     *** Failers
                   3222:     ABD
                   3223:     A-C
                   3224: 
                   3225: /a[^]b]c/i
                   3226:     ADC
                   3227: 
                   3228: /ab|cd/i
                   3229:     ABC
                   3230:     ABCD
                   3231: 
                   3232: /()ef/i
                   3233:     DEF
                   3234: 
                   3235: /$b/i
                   3236:     *** Failers
                   3237:     A]C
                   3238:     B
                   3239: 
                   3240: /a\(b/i
                   3241:     A(B
                   3242: 
                   3243: /a\(*b/i
                   3244:     AB
                   3245:     A((B
                   3246: 
                   3247: /a\\b/i
                   3248:     A\B
                   3249: 
                   3250: /((a))/i
                   3251:     ABC
                   3252: 
                   3253: /(a)b(c)/i
                   3254:     ABC
                   3255: 
                   3256: /a+b+c/i
                   3257:     AABBABC
                   3258: 
                   3259: /a{1,}b{1,}c/i
                   3260:     AABBABC
                   3261: 
                   3262: /a.+?c/i
                   3263:     ABCABC
                   3264: 
                   3265: /a.*?c/i
                   3266:     ABCABC
                   3267: 
                   3268: /a.{0,5}?c/i
                   3269:     ABCABC
                   3270: 
                   3271: /(a+|b)*/i
                   3272:     AB
                   3273: 
                   3274: /(a+|b){0,}/i
                   3275:     AB
                   3276: 
                   3277: /(a+|b)+/i
                   3278:     AB
                   3279: 
                   3280: /(a+|b){1,}/i
                   3281:     AB
                   3282: 
                   3283: /(a+|b)?/i
                   3284:     AB
                   3285: 
                   3286: /(a+|b){0,1}/i
                   3287:     AB
                   3288: 
                   3289: /(a+|b){0,1}?/i
                   3290:     AB
                   3291: 
                   3292: /[^ab]*/i
                   3293:     CDE
                   3294: 
                   3295: /abc/i
                   3296: 
                   3297: /a*/i
                   3298:     
                   3299: 
                   3300: /([abc])*d/i
                   3301:     ABBBCD
                   3302: 
                   3303: /([abc])*bcd/i
                   3304:     ABCD
                   3305: 
                   3306: /a|b|c|d|e/i
                   3307:     E
                   3308: 
                   3309: /(a|b|c|d|e)f/i
                   3310:     EF
                   3311: 
                   3312: /abcd*efg/i
                   3313:     ABCDEFG
                   3314: 
                   3315: /ab*/i
                   3316:     XABYABBBZ
                   3317:     XAYABBBZ
                   3318: 
                   3319: /(ab|cd)e/i
                   3320:     ABCDE
                   3321: 
                   3322: /[abhgefdc]ij/i
                   3323:     HIJ
                   3324: 
                   3325: /^(ab|cd)e/i
                   3326:     ABCDE
                   3327: 
                   3328: /(abc|)ef/i
                   3329:     ABCDEF
                   3330: 
                   3331: /(a|b)c*d/i
                   3332:     ABCD
                   3333: 
                   3334: /(ab|ab*)bc/i
                   3335:     ABC
                   3336: 
                   3337: /a([bc]*)c*/i
                   3338:     ABC
                   3339: 
                   3340: /a([bc]*)(c*d)/i
                   3341:     ABCD
                   3342: 
                   3343: /a([bc]+)(c*d)/i
                   3344:     ABCD
                   3345: 
                   3346: /a([bc]*)(c+d)/i
                   3347:     ABCD
                   3348: 
                   3349: /a[bcd]*dcdcde/i
                   3350:     ADCDCDE
                   3351: 
                   3352: /a[bcd]+dcdcde/i
                   3353: 
                   3354: /(ab|a)b*c/i
                   3355:     ABC
                   3356: 
                   3357: /((a)(b)c)(d)/i
                   3358:     ABCD
                   3359: 
                   3360: /[a-zA-Z_][a-zA-Z0-9_]*/i
                   3361:     ALPHA
                   3362: 
                   3363: /^a(bc+|b[eh])g|.h$/i
                   3364:     ABH
                   3365: 
                   3366: /(bc+d$|ef*g.|h?i(j|k))/i
                   3367:     EFFGZ
                   3368:     IJ
                   3369:     REFFGZ
                   3370:     *** Failers
                   3371:     ADCDCDE
                   3372:     EFFG
                   3373:     BCDD
                   3374: 
                   3375: /((((((((((a))))))))))/i
                   3376:     A
                   3377: 
                   3378: /(((((((((a)))))))))/i
                   3379:     A
                   3380: 
                   3381: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
                   3382:     A
                   3383: 
                   3384: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
                   3385:     C
                   3386: 
                   3387: /multiple words of text/i
                   3388:     *** Failers
                   3389:     AA
                   3390:     UH-UH
                   3391: 
                   3392: /multiple words/i
                   3393:     MULTIPLE WORDS, YEAH
                   3394: 
                   3395: /(.*)c(.*)/i
                   3396:     ABCDE
                   3397: 
                   3398: /\((.*), (.*)\)/i
                   3399:     (A, B)
                   3400: 
                   3401: /[k]/i
                   3402: 
                   3403: /abcd/i
                   3404:     ABCD
                   3405: 
                   3406: /a(bc)d/i
                   3407:     ABCD
                   3408: 
                   3409: /a[-]?c/i
                   3410:     AC
                   3411: 
                   3412: /a(?!b)./
                   3413:     abad
                   3414: 
                   3415: /a(?=d)./
                   3416:     abad
                   3417: 
                   3418: /a(?=c|d)./
                   3419:     abad
                   3420: 
                   3421: /a(?:b|c|d)(.)/
                   3422:     ace
                   3423: 
                   3424: /a(?:b|c|d)*(.)/
                   3425:     ace
                   3426: 
                   3427: /a(?:b|c|d)+?(.)/
                   3428:     ace
                   3429:     acdbcdbe
                   3430: 
                   3431: /a(?:b|c|d)+(.)/
                   3432:     acdbcdbe
                   3433: 
                   3434: /a(?:b|c|d){2}(.)/
                   3435:     acdbcdbe
                   3436: 
                   3437: /a(?:b|c|d){4,5}(.)/
                   3438:     acdbcdbe
                   3439: 
                   3440: /a(?:b|c|d){4,5}?(.)/
                   3441:     acdbcdbe
                   3442: 
                   3443: /((foo)|(bar))*/
                   3444:     foobar
                   3445: 
                   3446: /a(?:b|c|d){6,7}(.)/
                   3447:     acdbcdbe
1.1       misho    3448: 
1.1.1.2   misho    3449: /a(?:b|c|d){6,7}?(.)/
                   3450:     acdbcdbe
                   3451: 
                   3452: /a(?:b|c|d){5,6}(.)/
                   3453:     acdbcdbe
                   3454: 
                   3455: /a(?:b|c|d){5,6}?(.)/
                   3456:     acdbcdbe
                   3457: 
                   3458: /a(?:b|c|d){5,7}(.)/
                   3459:     acdbcdbe
                   3460: 
                   3461: /a(?:b|c|d){5,7}?(.)/
                   3462:     acdbcdbe
                   3463: 
                   3464: /a(?:b|(c|e){1,2}?|d)+?(.)/
                   3465:     ace
                   3466: 
                   3467: /^(.+)?B/
                   3468:     AB
                   3469: 
                   3470: /^([^a-z])|(\^)$/
                   3471:     .
                   3472: 
                   3473: /^[<>]&/
                   3474:     <&OUT
                   3475: 
                   3476: /(?:(f)(o)(o)|(b)(a)(r))*/
                   3477:     foobar
                   3478: 
                   3479: /(?<=a)b/
1.1       misho    3480:     ab
1.1.1.2   misho    3481:     *** Failers
                   3482:     cb
                   3483:     b
                   3484: 
                   3485: /(?<!c)b/
1.1       misho    3486:     ab
1.1.1.2   misho    3487:     b
                   3488:     b
1.1       misho    3489: 
1.1.1.2   misho    3490: /(?:..)*a/
                   3491:     aba
1.1       misho    3492: 
1.1.1.2   misho    3493: /(?:..)*?a/
                   3494:     aba
1.1       misho    3495: 
1.1.1.2   misho    3496: /^(){3,5}/
                   3497:     abc
1.1       misho    3498: 
1.1.1.2   misho    3499: /^(a+)*ax/
                   3500:     aax
1.1       misho    3501: 
1.1.1.2   misho    3502: /^((a|b)+)*ax/
                   3503:     aax
1.1       misho    3504: 
1.1.1.2   misho    3505: /^((a|bc)+)*ax/
                   3506:     aax
1.1       misho    3507: 
1.1.1.2   misho    3508: /(a|x)*ab/
                   3509:     cab
1.1       misho    3510: 
1.1.1.2   misho    3511: /(a)*ab/
                   3512:     cab
1.1       misho    3513: 
1.1.1.2   misho    3514: /(?:(?i)a)b/
                   3515:     ab
1.1       misho    3516: 
1.1.1.2   misho    3517: /((?i)a)b/
                   3518:     ab
1.1       misho    3519: 
1.1.1.2   misho    3520: /(?:(?i)a)b/
                   3521:     Ab
1.1       misho    3522: 
1.1.1.2   misho    3523: /((?i)a)b/
                   3524:     Ab
1.1       misho    3525: 
1.1.1.2   misho    3526: /(?:(?i)a)b/
1.1       misho    3527:     *** Failers
1.1.1.2   misho    3528:     cb
                   3529:     aB
1.1       misho    3530: 
1.1.1.2   misho    3531: /((?i)a)b/
1.1       misho    3532: 
1.1.1.2   misho    3533: /(?i:a)b/
                   3534:     ab
1.1       misho    3535: 
1.1.1.2   misho    3536: /((?i:a))b/
                   3537:     ab
1.1       misho    3538: 
1.1.1.2   misho    3539: /(?i:a)b/
                   3540:     Ab
1.1       misho    3541: 
1.1.1.2   misho    3542: /((?i:a))b/
                   3543:     Ab
                   3544: 
                   3545: /(?i:a)b/
1.1       misho    3546:     *** Failers
1.1.1.2   misho    3547:     aB
                   3548:     aB
1.1       misho    3549: 
1.1.1.2   misho    3550: /((?i:a))b/
1.1       misho    3551: 
1.1.1.2   misho    3552: /(?:(?-i)a)b/i
                   3553:     ab
1.1       misho    3554: 
1.1.1.2   misho    3555: /((?-i)a)b/i
                   3556:     ab
1.1       misho    3557: 
1.1.1.2   misho    3558: /(?:(?-i)a)b/i
                   3559:     aB
1.1       misho    3560: 
1.1.1.2   misho    3561: /((?-i)a)b/i
                   3562:     aB
                   3563: 
                   3564: /(?:(?-i)a)b/i
1.1       misho    3565:     *** Failers
1.1.1.2   misho    3566:     aB
                   3567:     Ab
1.1       misho    3568: 
1.1.1.2   misho    3569: /((?-i)a)b/i
1.1       misho    3570: 
1.1.1.2   misho    3571: /(?:(?-i)a)b/i
                   3572:     aB
1.1       misho    3573: 
1.1.1.2   misho    3574: /((?-i)a)b/i
                   3575:     aB
1.1       misho    3576: 
1.1.1.2   misho    3577: /(?:(?-i)a)b/i
                   3578:     *** Failers
                   3579:     Ab
                   3580:     AB
1.1       misho    3581: 
1.1.1.2   misho    3582: /((?-i)a)b/i
1.1       misho    3583: 
1.1.1.2   misho    3584: /(?-i:a)b/i
                   3585:     ab
1.1       misho    3586: 
1.1.1.2   misho    3587: /((?-i:a))b/i
                   3588:     ab
1.1       misho    3589: 
1.1.1.2   misho    3590: /(?-i:a)b/i
                   3591:     aB
1.1       misho    3592: 
1.1.1.2   misho    3593: /((?-i:a))b/i
                   3594:     aB
1.1       misho    3595: 
1.1.1.2   misho    3596: /(?-i:a)b/i
                   3597:     *** Failers
                   3598:     AB
                   3599:     Ab
1.1       misho    3600: 
1.1.1.2   misho    3601: /((?-i:a))b/i
1.1       misho    3602: 
1.1.1.2   misho    3603: /(?-i:a)b/i
                   3604:     aB
1.1       misho    3605: 
1.1.1.2   misho    3606: /((?-i:a))b/i
                   3607:     aB
1.1       misho    3608: 
1.1.1.2   misho    3609: /(?-i:a)b/i
                   3610:     *** Failers
                   3611:     Ab
                   3612:     AB
1.1       misho    3613: 
1.1.1.2   misho    3614: /((?-i:a))b/i
1.1       misho    3615: 
1.1.1.2   misho    3616: /((?-i:a.))b/i
1.1       misho    3617:     *** Failers
1.1.1.2   misho    3618:     AB
                   3619:     a\nB
1.1       misho    3620: 
1.1.1.2   misho    3621: /((?s-i:a.))b/i
                   3622:     a\nB
1.1       misho    3623: 
1.1.1.2   misho    3624: /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
                   3625:     cabbbb
1.1       misho    3626: 
1.1.1.2   misho    3627: /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
                   3628:     caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
1.1       misho    3629: 
1.1.1.2   misho    3630: /foo\w*\d{4}baz/
                   3631:     foobar1234baz
1.1       misho    3632: 
1.1.1.2   misho    3633: /x(~~)*(?:(?:F)?)?/
                   3634:     x~~
1.1       misho    3635: 
1.1.1.2   misho    3636: /^a(?#xxx){3}c/
                   3637:     aaac
1.1       misho    3638: 
1.1.1.2   misho    3639: /^a (?#xxx) (?#yyy) {3}c/x
                   3640:     aaac
1.1       misho    3641: 
1.1.1.2   misho    3642: /(?<![cd])b/
1.1       misho    3643:     *** Failers
1.1.1.2   misho    3644:     B\nB
                   3645:     dbcb
1.1       misho    3646: 
1.1.1.2   misho    3647: /(?<![cd])[ab]/
                   3648:     dbaacb
1.1       misho    3649: 
1.1.1.2   misho    3650: /(?<!(c|d))b/
1.1       misho    3651: 
1.1.1.2   misho    3652: /(?<!(c|d))[ab]/
                   3653:     dbaacb
1.1       misho    3654: 
1.1.1.2   misho    3655: /(?<!cd)[ab]/
                   3656:     cdaccb
1.1       misho    3657: 
1.1.1.2   misho    3658: /^(?:a?b?)*$/
1.1       misho    3659:     *** Failers
1.1.1.2   misho    3660:     dbcb
                   3661:     a--
1.1       misho    3662: 
1.1.1.2   misho    3663: /((?s)^a(.))((?m)^b$)/
                   3664:     a\nb\nc\n
                   3665: 
                   3666: /((?m)^b$)/
                   3667:     a\nb\nc\n
                   3668: 
                   3669: /(?m)^b/
                   3670:     a\nb\n
                   3671: 
                   3672: /(?m)^(b)/
                   3673:     a\nb\n
                   3674: 
                   3675: /((?m)^b)/
                   3676:     a\nb\n
                   3677: 
                   3678: /\n((?m)^b)/
                   3679:     a\nb\n
                   3680: 
                   3681: /((?s).)c(?!.)/
                   3682:     a\nb\nc\n
                   3683:     a\nb\nc\n
                   3684: 
                   3685: /((?s)b.)c(?!.)/
                   3686:     a\nb\nc\n
                   3687:     a\nb\nc\n
1.1       misho    3688: 
1.1.1.2   misho    3689: /^b/
                   3690: 
                   3691: /()^b/
1.1       misho    3692:     *** Failers
1.1.1.2   misho    3693:     a\nb\nc\n
                   3694:     a\nb\nc\n
                   3695: 
                   3696: /((?m)^b)/
                   3697:     a\nb\nc\n
                   3698: 
                   3699: /(?(?!a)a|b)/
                   3700: 
                   3701: /(?(?!a)b|a)/
                   3702:     a
1.1       misho    3703: 
1.1.1.2   misho    3704: /(?(?=a)b|a)/
1.1       misho    3705:     *** Failers
1.1.1.2   misho    3706:     a
                   3707:     a
                   3708: 
                   3709: /(?(?=a)a|b)/
                   3710:     a
                   3711: 
                   3712: /(\w+:)+/
                   3713:     one:
                   3714: 
                   3715: /$(?<=^(a))/
                   3716:     a
                   3717: 
                   3718: /([\w:]+::)?(\w+)$/
                   3719:     abcd
                   3720:     xy:z:::abcd
                   3721: 
                   3722: /^[^bcd]*(c+)/
                   3723:     aexycd
1.1       misho    3724: 
1.1.1.2   misho    3725: /(a*)b+/
                   3726:     caab
                   3727: 
                   3728: /([\w:]+::)?(\w+)$/
                   3729:     abcd
                   3730:     xy:z:::abcd
1.1       misho    3731:     *** Failers
1.1.1.2   misho    3732:     abcd:
                   3733:     abcd:
1.1       misho    3734: 
1.1.1.2   misho    3735: /^[^bcd]*(c+)/
                   3736:     aexycd
1.1       misho    3737: 
1.1.1.2   misho    3738: /(>a+)ab/
1.1       misho    3739: 
1.1.1.2   misho    3740: /(?>a+)b/
                   3741:     aaab
1.1       misho    3742: 
1.1.1.2   misho    3743: /([[:]+)/
                   3744:     a:[b]:
1.1       misho    3745: 
1.1.1.2   misho    3746: /([[=]+)/
                   3747:     a=[b]=
1.1       misho    3748: 
1.1.1.2   misho    3749: /([[.]+)/
                   3750:     a.[b].
1.1       misho    3751: 
1.1.1.2   misho    3752: /((?>a+)b)/
                   3753:     aaab
1.1       misho    3754: 
1.1.1.2   misho    3755: /(?>(a+))b/
                   3756:     aaab
1.1       misho    3757: 
1.1.1.2   misho    3758: /((?>[^()]+)|\([^()]*\))+/
                   3759:     ((abc(ade)ufh()()x
                   3760: 
                   3761: /a\Z/
                   3762:     *** Failers
                   3763:     aaab
                   3764:     a\nb\n
1.1       misho    3765: 
1.1.1.2   misho    3766: /b\Z/
                   3767:     a\nb\n
1.1       misho    3768: 
1.1.1.2   misho    3769: /b\z/
1.1       misho    3770: 
1.1.1.2   misho    3771: /b\Z/
                   3772:     a\nb
1.1       misho    3773: 
1.1.1.2   misho    3774: /b\z/
                   3775:     a\nb
                   3776:     *** Failers
                   3777:     
                   3778: /(?>.*)(?<=(abcd|wxyz))/
                   3779:     alphabetabcd
                   3780:     endingwxyz
1.1       misho    3781:     *** Failers
1.1.1.2   misho    3782:     a rather long string that doesn't end with one of them
1.1       misho    3783: 
1.1.1.2   misho    3784: /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
                   3785:     word cat dog elephant mussel cow horse canary baboon snake shark otherword
                   3786:     word cat dog elephant mussel cow horse canary baboon snake shark
                   3787:   
                   3788: /word (?>[a-zA-Z0-9]+ ){0,30}otherword/
                   3789:     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
                   3790: 
                   3791: /(?<=\d{3}(?!999))foo/
                   3792:     999foo
                   3793:     123999foo 
                   3794:     *** Failers
                   3795:     123abcfoo
                   3796:     
                   3797: /(?<=(?!...999)\d{3})foo/
                   3798:     999foo
                   3799:     123999foo 
1.1       misho    3800:     *** Failers
1.1.1.2   misho    3801:     123abcfoo
1.1       misho    3802: 
1.1.1.2   misho    3803: /(?<=\d{3}(?!999)...)foo/
                   3804:     123abcfoo
                   3805:     123456foo 
1.1       misho    3806:     *** Failers
1.1.1.2   misho    3807:     123999foo  
                   3808:     
                   3809: /(?<=\d{3}...)(?<!999)foo/
                   3810:     123abcfoo   
                   3811:     123456foo 
                   3812:     *** Failers
                   3813:     123999foo  
                   3814: 
                   3815: /((Z)+|A)*/
                   3816:     ZABCDEFG
                   3817: 
                   3818: /(Z()|A)*/
                   3819:     ZABCDEFG
                   3820: 
                   3821: /(Z(())|A)*/
                   3822:     ZABCDEFG
                   3823: 
                   3824: /((?>Z)+|A)*/
                   3825:     ZABCDEFG
                   3826: 
                   3827: /((?>)+|A)*/
                   3828:     ZABCDEFG
                   3829: 
                   3830: /a*/g
                   3831:     abbab
1.1       misho    3832: 
1.1.1.2   misho    3833: /^[\d-a]/
                   3834:     abcde
                   3835:     -things
                   3836:     0digit
1.1       misho    3837:     *** Failers
1.1.1.2   misho    3838:     bcdef    
                   3839:     
                   3840: /[[:space:]]+/
                   3841:     > \x09\x0a\x0c\x0d\x0b<
                   3842:      
                   3843: /[[:blank:]]+/
                   3844:     > \x09\x0a\x0c\x0d\x0b<
                   3845:      
                   3846: /[\s]+/
                   3847:     > \x09\x0a\x0c\x0d\x0b<
                   3848:      
                   3849: /\s+/
                   3850:     > \x09\x0a\x0c\x0d\x0b<
                   3851:      
                   3852: /ab/x
                   3853:     ab
                   3854: 
                   3855: /(?!\A)x/m
                   3856:   a\nxb\n
                   3857: 
                   3858: /(?!^)x/m
                   3859:   a\nxb\n
1.1       misho    3860: 
1.1.1.2   misho    3861: /abc\Qabc\Eabc/
                   3862:     abcabcabc
                   3863:     
                   3864: /abc\Q(*+|\Eabc/
                   3865:     abc(*+|abc 
                   3866: 
                   3867: /   abc\Q abc\Eabc/x
                   3868:     abc abcabc
1.1       misho    3869:     *** Failers
1.1.1.2   misho    3870:     abcabcabc  
                   3871:     
                   3872: /abc#comment
                   3873:     \Q#not comment
                   3874:     literal\E/x
                   3875:     abc#not comment\n    literal     
                   3876: 
                   3877: /abc#comment
                   3878:     \Q#not comment
                   3879:     literal/x
                   3880:     abc#not comment\n    literal     
                   3881: 
                   3882: /abc#comment
                   3883:     \Q#not comment
                   3884:     literal\E #more comment
                   3885:     /x
                   3886:     abc#not comment\n    literal     
                   3887: 
                   3888: /abc#comment
                   3889:     \Q#not comment
                   3890:     literal\E #more comment/x
                   3891:     abc#not comment\n    literal     
1.1       misho    3892: 
1.1.1.2   misho    3893: /\Qabc\$xyz\E/
                   3894:     abc\\\$xyz
                   3895: 
                   3896: /\Qabc\E\$\Qxyz\E/
                   3897:     abc\$xyz
                   3898: 
                   3899: /\Gabc/
                   3900:     abc
1.1       misho    3901:     *** Failers
1.1.1.2   misho    3902:     xyzabc  
1.1       misho    3903: 
1.1.1.2   misho    3904: /\Gabc./g
                   3905:     abc1abc2xyzabc3
1.1       misho    3906: 
1.1.1.2   misho    3907: /abc./g
                   3908:     abc1abc2xyzabc3 
1.1       misho    3909: 
1.1.1.2   misho    3910: /a(?x: b c )d/
                   3911:     XabcdY
                   3912:     *** Failers 
                   3913:     Xa b c d Y 
1.1       misho    3914: 
1.1.1.2   misho    3915: /((?x)x y z | a b c)/
                   3916:     XabcY
                   3917:     AxyzB 
1.1       misho    3918: 
1.1.1.2   misho    3919: /(?i)AB(?-i)C/
                   3920:     XabCY
                   3921:     *** Failers
                   3922:     XabcY  
1.1       misho    3923: 
1.1.1.2   misho    3924: /((?i)AB(?-i)C|D)E/
                   3925:     abCE
                   3926:     DE
                   3927:     *** Failers
                   3928:     abcE
                   3929:     abCe  
                   3930:     dE
                   3931:     De    
1.1       misho    3932: 
1.1.1.2   misho    3933: /[z\Qa-d]\E]/
                   3934:     z
                   3935:     a
                   3936:     -
                   3937:     d
                   3938:     ] 
                   3939:     *** Failers
                   3940:     b     
1.1       misho    3941: 
1.1.1.2   misho    3942: /[\z\C]/
                   3943:     z
                   3944:     C 
                   3945:     
                   3946: /\M/
                   3947:     M 
                   3948:     
                   3949: /(a+)*b/
                   3950:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
                   3951:     
                   3952: /(?i)reg(?:ul(?:[a]|ae)r|ex)/
                   3953:     REGular
                   3954:     regulaer
                   3955:     Regex  
                   3956:     regulr 
                   3957: 
                   3958: /[--]+/
                   3959:     
                   3960:     
                   3961:     
                   3962:     
                   3963: 
                   3964: /(?<=Z)X./
                   3965:     \x84XAZXB
                   3966: 
                   3967: /^(?(2)a|(1)(2))+$/
                   3968:     123a
                   3969: 
                   3970: /(?<=a|bbbb)c/
                   3971:     ac
                   3972:     bbbbc
                   3973: 
                   3974: /abc/SS>testsavedregex
                   3975: <testsavedregex
                   3976:     abc
                   3977:     *** Failers
                   3978:     bca
                   3979:     
                   3980: /abc/FSS>testsavedregex
                   3981: <testsavedregex
                   3982:     abc
                   3983:     *** Failers
                   3984:     bca
                   3985: 
                   3986: /(a|b)/S>testsavedregex
                   3987: <testsavedregex
                   3988:     abc
                   3989:     *** Failers
                   3990:     def  
                   3991:     
                   3992: /(a|b)/SF>testsavedregex
                   3993: <testsavedregex
                   3994:     abc
                   3995:     *** Failers
                   3996:     def  
                   3997:     
                   3998: /line\nbreak/
                   3999:     this is a line\nbreak
                   4000:     line one\nthis is a line\nbreak in the second line 
                   4001: 
                   4002: /line\nbreak/f
                   4003:     this is a line\nbreak
                   4004:     ** Failers 
                   4005:     line one\nthis is a line\nbreak in the second line 
                   4006: 
                   4007: /line\nbreak/mf
                   4008:     this is a line\nbreak
                   4009:     ** Failers 
                   4010:     line one\nthis is a line\nbreak in the second line 
                   4011: 
                   4012: /1234/
                   4013:     123\P
                   4014:     a4\P\R
                   4015: 
                   4016: /1234/
                   4017:     123\P
                   4018:     4\P\R
                   4019: 
                   4020: /^/mg
                   4021:     a\nb\nc\n
                   4022:     \ 
                   4023:     
                   4024: /(?<=C\n)^/mg
                   4025:     A\nC\nC\n 
1.1       misho    4026: 
1.1.1.2   misho    4027: /(?s)A?B/
                   4028:     AB
                   4029:     aB  
                   4030: 
                   4031: /(?s)A*B/
                   4032:     AB
                   4033:     aB  
                   4034: 
                   4035: /(?m)A?B/
                   4036:     AB
                   4037:     aB  
                   4038: 
                   4039: /(?m)A*B/
                   4040:     AB
                   4041:     aB  
                   4042: 
                   4043: /Content-Type\x3A[^\r\n]{6,}/
                   4044:     Content-Type:xxxxxyyy 
                   4045: 
                   4046: /Content-Type\x3A[^\r\n]{6,}z/
                   4047:     Content-Type:xxxxxyyyz
                   4048: 
                   4049: /Content-Type\x3A[^a]{6,}/
                   4050:     Content-Type:xxxyyy 
                   4051: 
                   4052: /Content-Type\x3A[^a]{6,}z/
                   4053:     Content-Type:xxxyyyz
                   4054: 
                   4055: /^abc/m
                   4056:     xyz\nabc
                   4057:     xyz\nabc\<lf>
                   4058:     xyz\r\nabc\<lf>
                   4059:     xyz\rabc\<cr>
                   4060:     xyz\r\nabc\<crlf>
                   4061:     ** Failers 
                   4062:     xyz\nabc\<cr>
                   4063:     xyz\r\nabc\<cr>
                   4064:     xyz\nabc\<crlf>
                   4065:     xyz\rabc\<crlf>
                   4066:     xyz\rabc\<lf>
                   4067:     
                   4068: /abc$/m<lf>
                   4069:     xyzabc
                   4070:     xyzabc\n 
                   4071:     xyzabc\npqr 
                   4072:     xyzabc\r\<cr> 
                   4073:     xyzabc\rpqr\<cr> 
                   4074:     xyzabc\r\n\<crlf> 
                   4075:     xyzabc\r\npqr\<crlf> 
                   4076:     ** Failers
                   4077:     xyzabc\r 
                   4078:     xyzabc\rpqr 
                   4079:     xyzabc\r\n 
                   4080:     xyzabc\r\npqr 
                   4081:     
                   4082: /^abc/m<cr>
                   4083:     xyz\rabcdef
                   4084:     xyz\nabcdef\<lf>
                   4085:     ** Failers  
                   4086:     xyz\nabcdef
                   4087:        
                   4088: /^abc/m<lf>
                   4089:     xyz\nabcdef
                   4090:     xyz\rabcdef\<cr>
                   4091:     ** Failers  
                   4092:     xyz\rabcdef
                   4093:        
                   4094: /^abc/m<crlf>
                   4095:     xyz\r\nabcdef
                   4096:     xyz\rabcdef\<cr>
                   4097:     ** Failers  
                   4098:     xyz\rabcdef
                   4099:     
                   4100: /.*/<lf>
                   4101:     abc\ndef
                   4102:     abc\rdef
                   4103:     abc\r\ndef
                   4104:     \<cr>abc\ndef
                   4105:     \<cr>abc\rdef
                   4106:     \<cr>abc\r\ndef
                   4107:     \<crlf>abc\ndef
                   4108:     \<crlf>abc\rdef
                   4109:     \<crlf>abc\r\ndef
                   4110: 
                   4111: /\w+(.)(.)?def/s
                   4112:     abc\ndef
                   4113:     abc\rdef
                   4114:     abc\r\ndef
                   4115: 
                   4116: /^\w+=.*(\\\n.*)*/
                   4117:     abc=xyz\\\npqr
                   4118: 
                   4119: /^(a()*)*/
                   4120:     aaaa
                   4121: 
                   4122: /^(?:a(?:(?:))*)*/
                   4123:     aaaa
                   4124: 
                   4125: /^(a()+)+/
                   4126:     aaaa
                   4127: 
                   4128: /^(?:a(?:(?:))+)+/
                   4129:     aaaa
                   4130: 
                   4131: /(a|)*\d/
                   4132:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                   4133:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
                   4134: 
                   4135: /(?>a|)*\d/
                   4136:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                   4137:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
                   4138: 
                   4139: /(?:a|)*\d/
                   4140:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                   4141:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
1.1       misho    4142: 
1.1.1.2   misho    4143: /^a.b/<lf>
                   4144:     a\rb
                   4145:     a\nb\<cr> 
                   4146:     ** Failers
                   4147:     a\nb
                   4148:     a\nb\<any>
                   4149:     a\rb\<cr>   
                   4150:     a\rb\<any>   
1.1       misho    4151: 
1.1.1.2   misho    4152: /^abc./mgx<any>
                   4153:     abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
1.1       misho    4154: 
1.1.1.2   misho    4155: /abc.$/mgx<any>
                   4156:     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
1.1       misho    4157: 
1.1.1.2   misho    4158: /^a\Rb/<bsr_unicode>
1.1       misho    4159:     a\nb
                   4160:     a\rb
                   4161:     a\r\nb
                   4162:     a\x0bb
                   4163:     a\x0cb
1.1.1.2   misho    4164:     a\x85b   
1.1       misho    4165:     ** Failers
                   4166:     a\n\rb    
                   4167: 
1.1.1.2   misho    4168: /^a\R*b/<bsr_unicode>
1.1       misho    4169:     ab
                   4170:     a\nb
                   4171:     a\rb
                   4172:     a\r\nb
                   4173:     a\x0bb
1.1.1.2   misho    4174:     a\x0cb
                   4175:     a\x85b   
1.1       misho    4176:     a\n\rb    
1.1.1.2   misho    4177:     a\n\r\x85\x0cb 
1.1       misho    4178: 
1.1.1.2   misho    4179: /^a\R+b/<bsr_unicode>
1.1       misho    4180:     a\nb
                   4181:     a\rb
                   4182:     a\r\nb
                   4183:     a\x0bb
1.1.1.2   misho    4184:     a\x0cb
                   4185:     a\x85b   
1.1       misho    4186:     a\n\rb    
1.1.1.2   misho    4187:     a\n\r\x85\x0cb 
1.1       misho    4188:     ** Failers
                   4189:     ab  
1.1.1.2   misho    4190:     
                   4191: /^a\R{1,3}b/<bsr_unicode>
1.1       misho    4192:     a\nb
                   4193:     a\n\rb
1.1.1.2   misho    4194:     a\n\r\x85b
1.1       misho    4195:     a\r\n\r\nb 
                   4196:     a\r\n\r\n\r\nb 
                   4197:     a\n\r\n\rb
                   4198:     a\n\n\r\nb 
                   4199:     ** Failers
                   4200:     a\n\n\n\rb
                   4201:     a\r
                   4202: 
1.1.1.2   misho    4203: /^a[\R]b/<bsr_unicode>
                   4204:     aRb
                   4205:     ** Failers
                   4206:     a\nb  
                   4207: 
                   4208: /.+foo/
                   4209:     afoo
                   4210:     ** Failers 
                   4211:     \r\nfoo 
                   4212:     \nfoo 
                   4213: 
                   4214: /.+foo/<crlf>
                   4215:     afoo
                   4216:     \nfoo 
                   4217:     ** Failers 
                   4218:     \r\nfoo 
                   4219: 
                   4220: /.+foo/<any>
                   4221:     afoo
                   4222:     ** Failers 
                   4223:     \nfoo 
                   4224:     \r\nfoo 
                   4225: 
                   4226: /.+foo/s
                   4227:     afoo
                   4228:     \r\nfoo 
                   4229:     \nfoo 
                   4230: 
                   4231: /^$/mg<any>
                   4232:     abc\r\rxyz
                   4233:     abc\n\rxyz  
                   4234:     ** Failers 
                   4235:     abc\r\nxyz
1.1       misho    4236: 
1.1.1.2   misho    4237: /^X/m
                   4238:     XABC
                   4239:     ** Failers 
                   4240:     XABC\B
1.1       misho    4241: 
1.1.1.2   misho    4242: /(?m)^$/<any>g+
                   4243:     abc\r\n\r\n
1.1       misho    4244: 
1.1.1.2   misho    4245: /(?m)^$|^\r\n/<any>g+ 
                   4246:     abc\r\n\r\n
                   4247:     
                   4248: /(?m)$/<any>g+ 
                   4249:     abc\r\n\r\n
1.1       misho    4250: 
1.1.1.2   misho    4251: /(?|(abc)|(xyz))/
                   4252:    >abc<
                   4253:    >xyz< 
                   4254: 
                   4255: /(x)(?|(abc)|(xyz))(x)/
                   4256:     xabcx
                   4257:     xxyzx 
                   4258: 
                   4259: /(x)(?|(abc)(pqr)|(xyz))(x)/
                   4260:     xabcpqrx
                   4261:     xxyzx 
                   4262: 
                   4263: /(?|(abc)|(xyz))(?1)/
                   4264:     abcabc
                   4265:     xyzabc 
                   4266:     ** Failers 
                   4267:     xyzxyz 
                   4268:  
                   4269: /\H\h\V\v/
1.1       misho    4270:     X X\x0a
                   4271:     X\x09X\x0b
                   4272:     ** Failers
1.1.1.2   misho    4273:     \xa0 X\x0a   
1.1       misho    4274:     
1.1.1.2   misho    4275: /\H*\h+\V?\v{3,4}/ 
                   4276:     \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
                   4277:     \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
                   4278:     \x09\x20\xa0\x0a\x0b\x0c
1.1       misho    4279:     ** Failers 
1.1.1.2   misho    4280:     \x09\x20\xa0\x0a\x0b
1.1       misho    4281:      
1.1.1.2   misho    4282: /\H{3,4}/
                   4283:     XY  ABCDE
                   4284:     XY  PQR ST 
                   4285:     
                   4286: /.\h{3,4}./
                   4287:     XY  AB    PQRS
                   4288: 
                   4289: /\h*X\h?\H+Y\H?Z/
                   4290:     >XNNNYZ
                   4291:     >  X NYQZ
                   4292:     ** Failers
                   4293:     >XYZ   
                   4294:     >  X NY Z
                   4295: 
                   4296: /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
                   4297:     >XY\x0aZ\x0aA\x0bNN\x0c
                   4298:     >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
                   4299: 
                   4300: /.+A/<crlf>
                   4301:     \r\nA
                   4302:     
                   4303: /\nA/<crlf>
                   4304:     \r\nA 
                   4305: 
                   4306: /[\r\n]A/<crlf>
                   4307:     \r\nA 
                   4308: 
                   4309: /(\r|\n)A/<crlf>
                   4310:     \r\nA 
                   4311: 
                   4312: /a\Rb/I<bsr_anycrlf>
1.1       misho    4313:     a\rb
                   4314:     a\nb
                   4315:     a\r\nb
                   4316:     ** Failers
1.1.1.2   misho    4317:     a\x85b
1.1       misho    4318:     a\x0bb     
                   4319: 
1.1.1.2   misho    4320: /a\Rb/I<bsr_unicode>
1.1       misho    4321:     a\rb
                   4322:     a\nb
                   4323:     a\r\nb
1.1.1.2   misho    4324:     a\x85b
1.1       misho    4325:     a\x0bb     
                   4326:     ** Failers 
1.1.1.2   misho    4327:     a\x85b\<bsr_anycrlf>
1.1       misho    4328:     a\x0bb\<bsr_anycrlf>
                   4329:     
1.1.1.2   misho    4330: /a\R?b/I<bsr_anycrlf>
1.1       misho    4331:     a\rb
                   4332:     a\nb
                   4333:     a\r\nb
                   4334:     ** Failers
1.1.1.2   misho    4335:     a\x85b
1.1       misho    4336:     a\x0bb     
                   4337: 
1.1.1.2   misho    4338: /a\R?b/I<bsr_unicode>
1.1       misho    4339:     a\rb
                   4340:     a\nb
                   4341:     a\r\nb
1.1.1.2   misho    4342:     a\x85b
1.1       misho    4343:     a\x0bb     
                   4344:     ** Failers 
1.1.1.2   misho    4345:     a\x85b\<bsr_anycrlf>
1.1       misho    4346:     a\x0bb\<bsr_anycrlf>
1.1.1.2   misho    4347:     
                   4348: /a\R{2,4}b/I<bsr_anycrlf>
                   4349:     a\r\n\nb
                   4350:     a\n\r\rb
                   4351:     a\r\n\r\n\r\n\r\nb
                   4352:     ** Failers
                   4353:     a\x85\85b
                   4354:     a\x0b\0bb     
                   4355: 
                   4356: /a\R{2,4}b/I<bsr_unicode>
                   4357:     a\r\rb
                   4358:     a\n\n\nb
                   4359:     a\r\n\n\r\rb
                   4360:     a\x85\85b
                   4361:     a\x0b\0bb     
                   4362:     ** Failers 
                   4363:     a\r\r\r\r\rb 
                   4364:     a\x85\85b\<bsr_anycrlf>
                   4365:     a\x0b\0bb\<bsr_anycrlf>
                   4366:     
                   4367: /a(?!)|\wbc/
                   4368:     abc 
                   4369: 
                   4370: /a[]b/<JS>
                   4371:     ** Failers
                   4372:     ab
                   4373: 
                   4374: /a[]+b/<JS>
                   4375:     ** Failers
                   4376:     ab 
                   4377: 
                   4378: /a[]*+b/<JS>
                   4379:     ** Failers
                   4380:     ab 
                   4381: 
                   4382: /a[^]b/<JS>
                   4383:     aXb
                   4384:     a\nb 
                   4385:     ** Failers
                   4386:     ab  
                   4387:     
                   4388: /a[^]+b/<JS> 
                   4389:     aXb
                   4390:     a\nX\nXb 
                   4391:     ** Failers
                   4392:     ab  
                   4393: 
                   4394: /X$/E
                   4395:     X
                   4396:     ** Failers 
                   4397:     X\n 
                   4398: 
                   4399: /X$/
                   4400:     X
                   4401:     X\n 
                   4402: 
                   4403: /xyz/C
                   4404:   xyz 
                   4405:   abcxyz 
                   4406:   abcxyz\Y
                   4407:   ** Failers 
                   4408:   abc
                   4409:   abc\Y
                   4410:   abcxypqr  
                   4411:   abcxypqr\Y  
                   4412: 
                   4413: /(*NO_START_OPT)xyz/C
                   4414:   abcxyz 
                   4415:   
                   4416: /(?C)ab/
                   4417:   ab
                   4418:   \C-ab
                   4419:   
                   4420: /ab/C
                   4421:   ab
                   4422:   \C-ab    
                   4423: 
                   4424: /^"((?(?=[a])[^"])|b)*"$/C
                   4425:     "ab"
                   4426:     \C-"ab"
                   4427: 
                   4428: /\d+X|9+Y/
                   4429:     ++++123999\P
                   4430:     ++++123999Y\P
                   4431: 
                   4432: /Z(*F)/
                   4433:     Z\P
                   4434:     ZA\P 
                   4435:     
                   4436: /Z(?!)/
                   4437:     Z\P 
                   4438:     ZA\P 
                   4439: 
                   4440: /dog(sbody)?/
                   4441:     dogs\P
                   4442:     dogs\P\P 
                   4443:     
                   4444: /dog(sbody)??/
                   4445:     dogs\P
                   4446:     dogs\P\P 
                   4447: 
                   4448: /dog|dogsbody/
                   4449:     dogs\P
                   4450:     dogs\P\P 
1.1       misho    4451:  
1.1.1.2   misho    4452: /dogsbody|dog/
                   4453:     dogs\P
                   4454:     dogs\P\P 
                   4455: 
                   4456: /Z(*F)Q|ZXY/
                   4457:     Z\P
                   4458:     ZA\P 
                   4459:     X\P 
                   4460: 
                   4461: /\bthe cat\b/
                   4462:     the cat\P
                   4463:     the cat\P\P
                   4464: 
                   4465: /dog(sbody)?/
                   4466:     dogs\D\P
                   4467:     body\D\R
                   4468: 
                   4469: /dog(sbody)?/
                   4470:     dogs\D\P\P
                   4471:     body\D\R
                   4472: 
                   4473: /abc/
                   4474:    abc\P
                   4475:    abc\P\P
                   4476: 
                   4477: /abc\K123/
                   4478:     xyzabc123pqr
                   4479:     
                   4480: /(?<=abc)123/
                   4481:     xyzabc123pqr 
                   4482:     xyzabc12\P
                   4483:     xyzabc12\P\P
                   4484: 
                   4485: /\babc\b/
                   4486:     +++abc+++
                   4487:     +++ab\P
                   4488:     +++ab\P\P  
                   4489: 
                   4490: /(?=C)/g+
                   4491:     ABCDECBA
                   4492: 
                   4493: /(abc|def|xyz)/I
                   4494:     terhjk;abcdaadsfe
                   4495:     the quick xyz brown fox 
                   4496:     \Yterhjk;abcdaadsfe
                   4497:     \Ythe quick xyz brown fox 
                   4498:     ** Failers
                   4499:     thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
                   4500:     \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
                   4501: 
                   4502: /(abc|def|xyz)/SI
                   4503:     terhjk;abcdaadsfe
                   4504:     the quick xyz brown fox 
                   4505:     \Yterhjk;abcdaadsfe
                   4506:     \Ythe quick xyz brown fox 
                   4507:     ** Failers
                   4508:     thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
                   4509:     \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
1.1       misho    4510: 
1.1.1.2   misho    4511: /abcd*/+
1.1       misho    4512:     xxxxabcd\P
                   4513:     xxxxabcd\P\P
1.1.1.2   misho    4514:     dddxxx\R 
                   4515:     xxxxabcd\P\P
                   4516:     xxx\R 
1.1       misho    4517: 
1.1.1.2   misho    4518: /abcd*/i
1.1       misho    4519:     xxxxabcd\P
                   4520:     xxxxabcd\P\P
                   4521:     XXXXABCD\P
                   4522:     XXXXABCD\P\P
                   4523: 
1.1.1.2   misho    4524: /abc\d*/
1.1       misho    4525:     xxxxabc1\P
                   4526:     xxxxabc1\P\P
                   4527: 
1.1.1.2   misho    4528: /abc[de]*/
1.1       misho    4529:     xxxxabcde\P
                   4530:     xxxxabcde\P\P
                   4531: 
1.1.1.2   misho    4532: /(?:(?1)|B)(A(*F)|C)/
                   4533:     ABCD
                   4534:     CCD
                   4535:     ** Failers
                   4536:     CAD   
1.1       misho    4537: 
1.1.1.2   misho    4538: /^(?:(?1)|B)(A(*F)|C)/
                   4539:     CCD
                   4540:     BCD 
                   4541:     ** Failers
                   4542:     ABCD
                   4543:     CAD
                   4544:     BAD    
1.1       misho    4545: 
1.1.1.2   misho    4546: /^(?!a(*SKIP)b)/
                   4547:     ac
                   4548:     
                   4549: /^(?=a(*SKIP)b|ac)/
                   4550:     ** Failers
                   4551:     ac
                   4552:     
                   4553: /^(?=a(*THEN)b|ac)/
                   4554:     ac
                   4555:     
                   4556: /^(?=a(*PRUNE)b)/
                   4557:     ab  
                   4558:     ** Failers 
                   4559:     ac
                   4560: 
                   4561: /^(?(?!a(*SKIP)b))/
                   4562:     ac
                   4563: 
                   4564: /(?<=abc)def/
                   4565:     abc\P\P
                   4566: 
                   4567: /abc$/
                   4568:     abc
                   4569:     abc\P
                   4570:     abc\P\P
                   4571: 
                   4572: /abc$/m
                   4573:     abc
                   4574:     abc\n
                   4575:     abc\P\P
                   4576:     abc\n\P\P 
                   4577:     abc\P
                   4578:     abc\n\P
                   4579: 
                   4580: /abc\z/
                   4581:     abc
                   4582:     abc\P
                   4583:     abc\P\P
                   4584: 
                   4585: /abc\Z/
                   4586:     abc
                   4587:     abc\P
                   4588:     abc\P\P
                   4589: 
                   4590: /abc\b/
                   4591:     abc
                   4592:     abc\P
                   4593:     abc\P\P
                   4594: 
                   4595: /abc\B/
                   4596:     abc
                   4597:     abc\P
                   4598:     abc\P\P
                   4599: 
                   4600: /.+/
                   4601:     abc\>0
                   4602:     abc\>1
                   4603:     abc\>2
                   4604:     abc\>3
                   4605:     abc\>4
                   4606:     abc\>-4 
                   4607: 
                   4608: /^(?:a)++\w/
                   4609:      aaaab
                   4610:      ** Failers 
                   4611:      aaaa 
                   4612:      bbb 
                   4613: 
                   4614: /^(?:aa|(?:a)++\w)/
                   4615:      aaaab
                   4616:      aaaa 
                   4617:      ** Failers 
                   4618:      bbb 
                   4619: 
                   4620: /^(?:a)*+\w/
                   4621:      aaaab
                   4622:      bbb 
                   4623:      ** Failers 
                   4624:      aaaa 
                   4625: 
                   4626: /^(a)++\w/
                   4627:      aaaab
                   4628:      ** Failers 
                   4629:      aaaa 
                   4630:      bbb 
                   4631: 
                   4632: /^(a|)++\w/
                   4633:      aaaab
                   4634:      ** Failers 
                   4635:      aaaa 
                   4636:      bbb 
                   4637: 
                   4638: /(?=abc){3}abc/+
                   4639:     abcabcabc
                   4640:     ** Failers
                   4641:     xyz  
                   4642:     
                   4643: /(?=abc)+abc/+
                   4644:     abcabcabc
                   4645:     ** Failers
                   4646:     xyz  
                   4647:     
                   4648: /(?=abc)++abc/+
                   4649:     abcabcabc
                   4650:     ** Failers
                   4651:     xyz  
                   4652:     
                   4653: /(?=abc){0}xyz/
                   4654:     xyz 
                   4655: 
                   4656: /(?=abc){1}xyz/
                   4657:     ** Failers
                   4658:     xyz 
                   4659:     
                   4660: /(?=(a))?./
                   4661:     ab
                   4662:     bc
                   4663:       
                   4664: /(?=(a))??./
                   4665:     ab
                   4666:     bc
                   4667: 
                   4668: /^(?=(a)){0}b(?1)/
                   4669:     backgammon
                   4670: 
                   4671: /^(?=(?1))?[az]([abc])d/
                   4672:     abd 
                   4673:     zcdxx 
                   4674: 
                   4675: /^(?!a){0}\w+/
                   4676:     aaaaa
                   4677: 
                   4678: /(?<=(abc))?xyz/
                   4679:     abcxyz
                   4680:     pqrxyz 
                   4681: 
                   4682: /((?2))((?1))/
                   4683:     abc
1.1       misho    4684: 
1.1.1.2   misho    4685: /(?(R)a+|(?R)b)/
                   4686:     aaaabcde
                   4687: 
                   4688: /(?(R)a+|((?R))b)/
                   4689:     aaaabcde
                   4690: 
                   4691: /((?(R)a+|(?1)b))/
                   4692:     aaaabcde
                   4693: 
                   4694: /((?(R2)a+|(?1)b))/
                   4695:     aaaabcde
                   4696: 
                   4697: /(?(R)a*(?1)|((?R))b)/
                   4698:     aaaabcde
                   4699: 
1.1.1.5 ! misho    4700: /(a+)/O
1.1.1.2   misho    4701:     \O6aaaa
                   4702:     \O8aaaa
                   4703: 
                   4704: /ab\Cde/
                   4705:     abXde
                   4706:     
                   4707: /(?<=ab\Cde)X/
                   4708:     abZdeX
1.1       misho    4709: 
1.1.1.3   misho    4710: /^\R/
                   4711:     \r\P
                   4712:     \r\P\P
                   4713:     
                   4714: /^\R{2,3}x/
                   4715:     \r\P
                   4716:     \r\P\P
                   4717:     \r\r\P 
                   4718:     \r\r\P\P
                   4719:     \r\r\r\P  
                   4720:     \r\r\r\P\P
                   4721:     \r\rx
                   4722:     \r\r\rx    
                   4723: 
                   4724: /^\R{2,3}?x/
                   4725:     \r\P
                   4726:     \r\P\P
                   4727:     \r\r\P 
                   4728:     \r\r\P\P
                   4729:     \r\r\r\P  
                   4730:     \r\r\r\P\P
                   4731:     \r\rx
                   4732:     \r\r\rx    
                   4733:     
                   4734: /^\R?x/
                   4735:     \r\P
                   4736:     \r\P\P 
                   4737:     x
                   4738:     \rx  
                   4739: 
                   4740: /^\R+x/
                   4741:     \r\P
                   4742:     \r\P\P 
                   4743:     \r\n\P
                   4744:     \r\n\P\P  
                   4745:     \rx  
                   4746: 
                   4747: /^a$/<CRLF>
                   4748:     a\r\P
                   4749:     a\r\P\P 
                   4750: 
                   4751: /^a$/m<CRLF>
                   4752:     a\r\P
                   4753:     a\r\P\P 
                   4754: 
                   4755: /^(a$|a\r)/<CRLF>
                   4756:     a\r\P
                   4757:     a\r\P\P 
                   4758: 
                   4759: /^(a$|a\r)/m<CRLF>
                   4760:     a\r\P
                   4761:     a\r\P\P 
                   4762: 
                   4763: /./<CRLF>
                   4764:     \r\P
                   4765:     \r\P\P 
                   4766:   
                   4767: /.{2,3}/<CRLF>
                   4768:     \r\P 
                   4769:     \r\P\P
                   4770:     \r\r\P
                   4771:     \r\r\P\P
                   4772:     \r\r\r\P
                   4773:     \r\r\r\P\P     
                   4774: 
                   4775: /.{2,3}?/<CRLF>
                   4776:     \r\P 
                   4777:     \r\P\P
                   4778:     \r\r\P
                   4779:     \r\r\P\P
                   4780:     \r\r\r\P
                   4781:     \r\r\r\P\P     
                   4782: 
                   4783: /-- Test simple validity check for restarts --/
                   4784: 
                   4785: /abcdef/
                   4786:    abc\R
                   4787: 
                   4788: /<H((?(?!<H|F>)(.)|(?R))++)*F>/
                   4789:     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.
                   4790: 
                   4791: /^(?>.{4})abc|^\w\w.xabcd/
                   4792:     xxxxabcd
                   4793:     xx\xa0xabcd 
                   4794: 
                   4795: /^(.{4}){2}+abc|^\w\w.x\w\w\w\wabcd/
                   4796:     xxxxxxxxabcd
                   4797:     xx\xa0xxxxxabcd 
                   4798: 
1.1.1.4   misho    4799: /abcd/
                   4800:     abcd\O0
                   4801: 
1.1.1.5 ! misho    4802: /-- These tests show up auto-possessification --/
        !          4803: 
        !          4804: /[ab]*/
        !          4805:     aaaa
        !          4806:     
        !          4807: /[ab]*?/
        !          4808:     aaaa
        !          4809:     
        !          4810: /[ab]?/
        !          4811:     aaaa
        !          4812:     
        !          4813: /[ab]??/
        !          4814:     aaaa
        !          4815:     
        !          4816: /[ab]+/
        !          4817:     aaaa
        !          4818:     
        !          4819: /[ab]+?/
        !          4820:     aaaa
        !          4821:     
        !          4822: /[ab]{2,3}/
        !          4823:     aaaa
        !          4824:     
        !          4825: /[ab]{2,3}?/
        !          4826:     aaaa
        !          4827:     
        !          4828: /[ab]{2,}/
        !          4829:     aaaa    
        !          4830: 
        !          4831: /[ab]{2,}?/
        !          4832:     aaaa    
        !          4833: 
1.1.1.2   misho    4834: /-- End of testinput8 --/

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