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

1.1       misho       1: /-- This set of tests is not Perl-compatible. It checks on special features
                      2:     of PCRE's API, error diagnostics, and the compiled code of some patterns.
                      3:     It also checks the non-Perl syntax the PCRE supports (Python, .NET, 
                      4:     Oniguruma). Finally, there are some tests where PCRE and Perl differ, 
                      5:     either because PCRE can't be compatible, or there is a possible Perl 
                      6:     bug. --/  
                      7:   
                      8: /-- Originally, the Perl >= 5.10 things were in here too, but now I have 
                      9:     separated many (most?) of them out into test 11. However, there may still 
                     10:     be some that were overlooked. --/   
                     11: 
                     12: /(a)b|/I
                     13: 
                     14: /abc/I
                     15:     abc
                     16:     defabc
                     17:     \Aabc
                     18:     *** Failers
                     19:     \Adefabc
                     20:     ABC
                     21: 
                     22: /^abc/I
                     23:     abc
                     24:     \Aabc
                     25:     *** Failers
                     26:     defabc
                     27:     \Adefabc
                     28: 
                     29: /a+bc/I
                     30: 
                     31: /a*bc/I
                     32: 
                     33: /a{3}bc/I
                     34: 
                     35: /(abc|a+z)/I
                     36: 
                     37: /^abc$/I
                     38:     abc
                     39:     *** Failers
                     40:     def\nabc
                     41: 
                     42: /ab\idef/X
                     43: 
                     44: /(?X)ab\idef/X
                     45: 
                     46: /x{5,4}/
                     47: 
                     48: /z{65536}/
                     49: 
                     50: /[abcd/
                     51: 
                     52: /(?X)[\B]/
                     53: 
                     54: /(?X)[\R]/
                     55: 
                     56: /(?X)[\X]/
                     57: 
                     58: /[\B]/BZ
                     59: 
                     60: /[\R]/BZ
                     61: 
                     62: /[\X]/BZ
                     63: 
                     64: /[z-a]/
                     65: 
                     66: /^*/
                     67: 
                     68: /(abc/
                     69: 
                     70: /(?# abc/
                     71: 
                     72: /(?z)abc/
                     73: 
                     74: /.*b/I
                     75: 
                     76: /.*?b/I
                     77: 
                     78: /cat|dog|elephant/I
                     79:     this sentence eventually mentions a cat
                     80:     this sentences rambles on and on for a while and then reaches elephant
                     81: 
                     82: /cat|dog|elephant/IS
                     83:     this sentence eventually mentions a cat
                     84:     this sentences rambles on and on for a while and then reaches elephant
                     85: 
                     86: /cat|dog|elephant/IiS
                     87:     this sentence eventually mentions a CAT cat
                     88:     this sentences rambles on and on for a while to elephant ElePhant
                     89: 
                     90: /a|[bcd]/IS
                     91: 
                     92: /(a|[^\dZ])/IS
                     93: 
                     94: /(a|b)*[\s]/IS
                     95: 
                     96: /(ab\2)/
                     97: 
                     98: /{4,5}abc/
                     99: 
                    100: /(a)(b)(c)\2/I
                    101:     abcb
                    102:     \O0abcb
                    103:     \O3abcb
                    104:     \O6abcb
                    105:     \O9abcb
                    106:     \O12abcb
                    107: 
                    108: /(a)bc|(a)(b)\2/I
                    109:     abc
                    110:     \O0abc
                    111:     \O3abc
                    112:     \O6abc
                    113:     aba
                    114:     \O0aba
                    115:     \O3aba
                    116:     \O6aba
                    117:     \O9aba
                    118:     \O12aba
                    119: 
                    120: /abc$/IE
                    121:     abc
                    122:     *** Failers
                    123:     abc\n
                    124:     abc\ndef
                    125: 
                    126: /(a)(b)(c)(d)(e)\6/
                    127: 
                    128: /the quick brown fox/I
                    129:     the quick brown fox
                    130:     this is a line with the quick brown fox
                    131: 
                    132: /the quick brown fox/IA
                    133:     the quick brown fox
                    134:     *** Failers
                    135:     this is a line with the quick brown fox
                    136: 
                    137: /ab(?z)cd/
                    138: 
                    139: /^abc|def/I
                    140:     abcdef
                    141:     abcdef\B
                    142: 
                    143: /.*((abc)$|(def))/I
                    144:     defabc
                    145:     \Zdefabc
                    146: 
                    147: /abc/P
                    148:     abc
                    149:     *** Failers
                    150: 
                    151: /^abc|def/P
                    152:     abcdef
                    153:     abcdef\B
                    154: 
                    155: /.*((abc)$|(def))/P
                    156:     defabc
                    157:     \Zdefabc
                    158: 
                    159: /the quick brown fox/P
                    160:     the quick brown fox
                    161:     *** Failers
                    162:     The Quick Brown Fox
                    163: 
                    164: /the quick brown fox/Pi
                    165:     the quick brown fox
                    166:     The Quick Brown Fox
                    167: 
                    168: /abc.def/P
                    169:     *** Failers
                    170:     abc\ndef
                    171: 
                    172: /abc$/P
                    173:     abc
                    174:     abc\n
                    175: 
                    176: /(abc)\2/P
                    177: 
                    178: /(abc\1)/P
                    179:     abc
                    180: 
                    181: /)/
                    182: 
                    183: /a[]b/
                    184: 
                    185: /[^aeiou ]{3,}/I
                    186:     co-processors, and for
                    187: 
                    188: /<.*>/I
                    189:     abc<def>ghi<klm>nop
                    190: 
                    191: /<.*?>/I
                    192:     abc<def>ghi<klm>nop
                    193: 
                    194: /<.*>/IU
                    195:     abc<def>ghi<klm>nop
                    196: 
                    197: /(?U)<.*>/I
                    198:     abc<def>ghi<klm>nop
                    199: 
                    200: /<.*?>/IU
                    201:     abc<def>ghi<klm>nop
                    202: 
                    203: /={3,}/IU
                    204:     abc========def
                    205: 
                    206: /(?U)={3,}?/I
                    207:     abc========def
                    208: 
                    209: /(?<!bar|cattle)foo/I
                    210:     foo
                    211:     catfoo
                    212:     *** Failers
                    213:     the barfoo
                    214:     and cattlefoo
                    215: 
                    216: /(?<=a+)b/
                    217: 
                    218: /(?<=aaa|b{0,3})b/
                    219: 
                    220: /(?<!(foo)a\1)bar/
                    221: 
                    222: /(?i)abc/I
                    223: 
                    224: /(a|(?m)a)/I
                    225: 
                    226: /(?i)^1234/I
                    227: 
                    228: /(^b|(?i)^d)/I
                    229: 
                    230: /(?s).*/I
                    231: 
                    232: /[abcd]/IS
                    233: 
                    234: /(?i)[abcd]/IS
                    235: 
                    236: /(?m)[xy]|(b|c)/IS
                    237: 
                    238: /(^a|^b)/Im
                    239: 
                    240: /(?i)(^a|^b)/Im
                    241: 
                    242: /(a)(?(1)a|b|c)/
                    243: 
                    244: /(?(?=a)a|b|c)/
                    245: 
                    246: /(?(1a)/
                    247: 
                    248: /(?(1a))/
                    249: 
                    250: /(?(?i))/
                    251: 
                    252: /(?(abc))/
                    253: 
                    254: /(?(?<ab))/
                    255: 
                    256: /((?s)blah)\s+\1/I
                    257: 
                    258: /((?i)blah)\s+\1/I
                    259: 
                    260: /((?i)b)/IDZS
                    261: 
                    262: /(a*b|(?i:c*(?-i)d))/IS
                    263: 
                    264: /a$/I
                    265:     a
                    266:     a\n
                    267:     *** Failers
                    268:     \Za
                    269:     \Za\n
                    270: 
                    271: /a$/Im
                    272:     a
                    273:     a\n
                    274:     \Za\n
                    275:     *** Failers
                    276:     \Za
                    277: 
                    278: /\Aabc/Im
                    279: 
                    280: /^abc/Im
                    281: 
                    282: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
                    283:   aaaaabbbbbcccccdef
                    284: 
                    285: /(?<=foo)[ab]/IS
                    286: 
                    287: /(?<!foo)(alpha|omega)/IS
                    288: 
                    289: /(?!alphabet)[ab]/IS
                    290: 
                    291: /(?<=foo\n)^bar/Im
                    292:     foo\nbarbar
                    293:     ***Failers
                    294:     rhubarb
                    295:     barbell
                    296:     abc\nbarton
                    297: 
                    298: /^(?<=foo\n)bar/Im
                    299:     foo\nbarbar
                    300:     ***Failers
                    301:     rhubarb
                    302:     barbell
                    303:     abc\nbarton
                    304: 
                    305: /(?>^abc)/Im
                    306:     abc
                    307:     def\nabc
                    308:     *** Failers
                    309:     defabc
                    310: 
                    311: /(?<=ab(c+)d)ef/
                    312: 
                    313: /(?<=ab(?<=c+)d)ef/
                    314: 
                    315: /(?<=ab(c|de)f)g/
                    316: 
                    317: /The next three are in testinput2 because they have variable length branches/
                    318: 
                    319: /(?<=bullock|donkey)-cart/I
                    320:     the bullock-cart
                    321:     a donkey-cart race
                    322:     *** Failers
                    323:     cart
                    324:     horse-and-cart
                    325: 
                    326: /(?<=ab(?i)x|y|z)/I
                    327: 
                    328: /(?>.*)(?<=(abcd)|(xyz))/I
                    329:     alphabetabcd
                    330:     endingxyz
                    331: 
                    332: /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
                    333:     abxyZZ
                    334:     abXyZZ
                    335:     ZZZ
                    336:     zZZ
                    337:     bZZ
                    338:     BZZ
                    339:     *** Failers
                    340:     ZZ
                    341:     abXYZZ
                    342:     zzz
                    343:     bzz
                    344: 
                    345: /(?<!(foo)a)bar/I
                    346:     bar
                    347:     foobbar
                    348:     *** Failers
                    349:     fooabar
                    350: 
                    351: /This one is here because Perl 5.005_02 doesn't fail it/I
                    352: 
                    353: /^(a)?(?(1)a|b)+$/I
                    354:     *** Failers
                    355:     a
                    356: 
                    357: /This one is here because Perl behaves differently; see also the following/I
                    358: 
                    359: /^(a\1?){4}$/I
                    360:     aaaa
                    361:     aaaaaa
                    362:     
                    363: /Perl does not fail these two for the final subjects. Neither did PCRE until/
                    364: /release 8.01. The problem is in backtracking into a subpattern that contains/
                    365: /a recursive reference to itself. PCRE has now made these into atomic patterns./
                    366: 
                    367: /^(xa|=?\1a){2}$/
                    368:     xa=xaa
                    369:     ** Failers
                    370:     xa=xaaa
                    371: 
                    372: /^(xa|=?\1a)+$/
                    373:     xa=xaa
                    374:     ** Failers
                    375:     xa=xaaa
                    376: 
                    377: /These are syntax tests from Perl 5.005/I
                    378: 
                    379: /a[b-a]/
                    380: 
                    381: /a[]b/
                    382: 
                    383: /a[/
                    384: 
                    385: /*a/
                    386: 
                    387: /(*)b/
                    388: 
                    389: /abc)/
                    390: 
                    391: /(abc/
                    392: 
                    393: /a**/
                    394: 
                    395: /)(/
                    396: 
                    397: /\1/
                    398: 
                    399: /\2/
                    400: 
                    401: /(a)|\2/
                    402: 
                    403: /a[b-a]/Ii
                    404: 
                    405: /a[]b/Ii
                    406: 
                    407: /a[/Ii
                    408: 
                    409: /*a/Ii
                    410: 
                    411: /(*)b/Ii
                    412: 
                    413: /abc)/Ii
                    414: 
                    415: /(abc/Ii
                    416: 
                    417: /a**/Ii
                    418: 
                    419: /)(/Ii
                    420: 
                    421: /:(?:/
                    422: 
                    423: /(?<%)b/
                    424: 
                    425: /a(?{)b/
                    426: 
                    427: /a(?{{})b/
                    428: 
                    429: /a(?{}})b/
                    430: 
                    431: /a(?{"{"})b/
                    432: 
                    433: /a(?{"{"}})b/
                    434: 
                    435: /(?(1?)a|b)/
                    436: 
                    437: /[a[:xyz:/
                    438: 
                    439: /(?<=x+)y/
                    440: 
                    441: /a{37,17}/
                    442: 
                    443: /abc/\
                    444: 
                    445: /abc/\P
                    446: 
                    447: /abc/\i
                    448: 
                    449: /(a)bc(d)/I
                    450:     abcd
                    451:     abcd\C2
                    452:     abcd\C5
                    453: 
                    454: /(.{20})/I
                    455:     abcdefghijklmnopqrstuvwxyz
                    456:     abcdefghijklmnopqrstuvwxyz\C1
                    457:     abcdefghijklmnopqrstuvwxyz\G1
                    458: 
                    459: /(.{15})/I
                    460:     abcdefghijklmnopqrstuvwxyz
                    461:     abcdefghijklmnopqrstuvwxyz\C1\G1
                    462: 
                    463: /(.{16})/I
                    464:     abcdefghijklmnopqrstuvwxyz
                    465:     abcdefghijklmnopqrstuvwxyz\C1\G1\L
                    466: 
                    467: /^(a|(bc))de(f)/I
                    468:     adef\G1\G2\G3\G4\L
                    469:     bcdef\G1\G2\G3\G4\L
                    470:     adefghijk\C0
                    471: 
                    472: /^abc\00def/I
                    473:     abc\00def\L\C0
                    474: 
                    475: /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
                    476: )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
                    477: )?)?)?)?)?)?)?)?)?otherword/I
                    478: 
                    479: /.*X/IDZ
                    480: 
                    481: /.*X/IDZs
                    482: 
                    483: /(.*X|^B)/IDZ
                    484: 
                    485: /(.*X|^B)/IDZs
                    486: 
                    487: /(?s)(.*X|^B)/IDZ
                    488: 
                    489: /(?s:.*X|^B)/IDZ
                    490: 
                    491: /\Biss\B/I+
                    492:     Mississippi
                    493: 
                    494: /\Biss\B/I+P
                    495:     Mississippi
                    496: 
                    497: /iss/IG+
                    498:     Mississippi
                    499: 
                    500: /\Biss\B/IG+
                    501:     Mississippi
                    502: 
                    503: /\Biss\B/Ig+
                    504:     Mississippi
                    505:     *** Failers
                    506:     Mississippi\A
                    507: 
                    508: /(?<=[Ms])iss/Ig+
                    509:     Mississippi
                    510: 
                    511: /(?<=[Ms])iss/IG+
                    512:     Mississippi
                    513: 
                    514: /^iss/Ig+
                    515:     ississippi
                    516: 
                    517: /.*iss/Ig+
                    518:     abciss\nxyzisspqr
                    519: 
                    520: /.i./I+g
                    521:     Mississippi
                    522:     Mississippi\A
                    523:     Missouri river
                    524:     Missouri river\A
                    525: 
                    526: /^.is/I+g
                    527:     Mississippi
                    528: 
                    529: /^ab\n/Ig+
                    530:     ab\nab\ncd
                    531: 
                    532: /^ab\n/Img+
                    533:     ab\nab\ncd
                    534: 
                    535: /abc/I
                    536: 
                    537: /abc|bac/I
                    538: 
                    539: /(abc|bac)/I
                    540: 
                    541: /(abc|(c|dc))/I
                    542: 
                    543: /(abc|(d|de)c)/I
                    544: 
                    545: /a*/I
                    546: 
                    547: /a+/I
                    548: 
                    549: /(baa|a+)/I
                    550: 
                    551: /a{0,3}/I
                    552: 
                    553: /baa{3,}/I
                    554: 
                    555: /"([^\\"]+|\\.)*"/I
                    556: 
                    557: /(abc|ab[cd])/I
                    558: 
                    559: /(a|.)/I
                    560: 
                    561: /a|ba|\w/I
                    562: 
                    563: /abc(?=pqr)/I
                    564: 
                    565: /...(?<=abc)/I
                    566: 
                    567: /abc(?!pqr)/I
                    568: 
                    569: /ab./I
                    570: 
                    571: /ab[xyz]/I
                    572: 
                    573: /abc*/I
                    574: 
                    575: /ab.c*/I
                    576: 
                    577: /a.c*/I
                    578: 
                    579: /.c*/I
                    580: 
                    581: /ac*/I
                    582: 
                    583: /(a.c*|b.c*)/I
                    584: 
                    585: /a.c*|aba/I
                    586: 
                    587: /.+a/I
                    588: 
                    589: /(?=abcda)a.*/I
                    590: 
                    591: /(?=a)a.*/I
                    592: 
                    593: /a(b)*/I
                    594: 
                    595: /a\d*/I
                    596: 
                    597: /ab\d*/I
                    598: 
                    599: /a(\d)*/I
                    600: 
                    601: /abcde{0,0}/I
                    602: 
                    603: /ab\d+/I
                    604: 
                    605: /a(?(1)b)(.)/I
                    606: 
                    607: /a(?(1)bag|big)(.)/I
                    608: 
                    609: /a(?(1)bag|big)*(.)/I
                    610: 
                    611: /a(?(1)bag|big)+(.)/I
                    612: 
                    613: /a(?(1)b..|b..)(.)/I
                    614: 
                    615: /ab\d{0}e/I
                    616: 
                    617: /a?b?/I
                    618:     a
                    619:     b
                    620:     ab
                    621:     \
                    622:     *** Failers
                    623:     \N
                    624: 
                    625: /|-/I
                    626:     abcd
                    627:     -abc
                    628:     \Nab-c
                    629:     *** Failers
                    630:     \Nabc
                    631: 
                    632: /a*(b+)(z)(z)/P
                    633:     aaaabbbbzzzz
                    634:     aaaabbbbzzzz\O0
                    635:     aaaabbbbzzzz\O1
                    636:     aaaabbbbzzzz\O2
                    637:     aaaabbbbzzzz\O3
                    638:     aaaabbbbzzzz\O4
                    639:     aaaabbbbzzzz\O5
                    640: 
                    641: /^.?abcd/IS
                    642: 
                    643: /\(             # ( at start
                    644:   (?:           # Non-capturing bracket
                    645:   (?>[^()]+)    # Either a sequence of non-brackets (no backtracking)
                    646:   |             # Or
                    647:   (?R)          # Recurse - i.e. nested bracketed string
                    648:   )*            # Zero or more contents
                    649:   \)            # Closing )
                    650:   /Ix
                    651:     (abcd)
                    652:     (abcd)xyz
                    653:     xyz(abcd)
                    654:     (ab(xy)cd)pqr
                    655:     (ab(xycd)pqr
                    656:     () abc ()
                    657:     12(abcde(fsh)xyz(foo(bar))lmno)89
                    658:     *** Failers
                    659:     abcd
                    660:     abcd)
                    661:     (abcd
                    662: 
                    663: /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
                    664:     (ab(xy)cd)pqr
                    665:     1(abcd)(x(y)z)pqr
                    666: 
                    667: /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
                    668:     (abcd)
                    669:     (ab(xy)cd)
                    670:     (a(b(c)d)e)
                    671:     ((ab))
                    672:     *** Failers
                    673:     ()
                    674: 
                    675: /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
                    676:     ()
                    677:     12(abcde(fsh)xyz(foo(bar))lmno)89
                    678: 
                    679: /\(  ( (?>[^()]+) | (?R) )* \) /Ix
                    680:     (ab(xy)cd)
                    681: 
                    682: /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
                    683:     (ab(xy)cd)
                    684: 
                    685: /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
                    686:     (ab(xy)cd)
                    687:     (123ab(xy)cd)
                    688: 
                    689: /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
                    690:     (ab(xy)cd)
                    691:     (123ab(xy)cd)
                    692: 
                    693: /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
                    694:     (ab(xy)cd)
                    695: 
                    696: /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
                    697:     (abcd(xyz<p>qrs)123)
                    698: 
                    699: /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
                    700:     (ab(cd)ef)
                    701:     (ab(cd(ef)gh)ij)
                    702: 
                    703: /^[[:alnum:]]/DZ
                    704: 
                    705: /^[[:^alnum:]]/DZ
                    706: 
                    707: /^[[:alpha:]]/DZ
                    708: 
                    709: /^[[:^alpha:]]/DZ
                    710: 
                    711: /[_[:alpha:]]/IS
                    712: 
                    713: /^[[:ascii:]]/DZ
                    714: 
                    715: /^[[:^ascii:]]/DZ
                    716: 
                    717: /^[[:blank:]]/DZ
                    718: 
                    719: /^[[:^blank:]]/DZ
                    720: 
                    721: /[\n\x0b\x0c\x0d[:blank:]]/IS
                    722: 
                    723: /^[[:cntrl:]]/DZ
                    724: 
                    725: /^[[:digit:]]/DZ
                    726: 
                    727: /^[[:graph:]]/DZ
                    728: 
                    729: /^[[:lower:]]/DZ
                    730: 
                    731: /^[[:print:]]/DZ
                    732: 
                    733: /^[[:punct:]]/DZ
                    734: 
                    735: /^[[:space:]]/DZ
                    736: 
                    737: /^[[:upper:]]/DZ
                    738: 
                    739: /^[[:xdigit:]]/DZ
                    740: 
                    741: /^[[:word:]]/DZ
                    742: 
                    743: /^[[:^cntrl:]]/DZ
                    744: 
                    745: /^[12[:^digit:]]/DZ
                    746: 
                    747: /^[[:^blank:]]/DZ
                    748: 
                    749: /[01[:alpha:]%]/DZ
                    750: 
                    751: /[[.ch.]]/I
                    752: 
                    753: /[[=ch=]]/I
                    754: 
                    755: /[[:rhubarb:]]/I
                    756: 
                    757: /[[:upper:]]/Ii
                    758:     A
                    759:     a
                    760: 
                    761: /[[:lower:]]/Ii
                    762:     A
                    763:     a
                    764: 
                    765: /((?-i)[[:lower:]])[[:lower:]]/Ii
                    766:     ab
                    767:     aB
                    768:     *** Failers
                    769:     Ab
                    770:     AB
                    771: 
                    772: /[\200-\110]/I
                    773: 
                    774: /^(?(0)f|b)oo/I
                    775: 
                    776: /This one's here because of the large output vector needed/I
                    777: 
                    778: /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
                    779:     \O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
                    780: 
                    781: /This one's here because Perl does this differently and PCRE can't at present/I
                    782: 
                    783: /(main(O)?)+/I
                    784:     mainmain
                    785:     mainOmain
                    786: 
                    787: /These are all cases where Perl does it differently (nested captures)/I
                    788: 
                    789: /^(a(b)?)+$/I
                    790:     aba
                    791: 
                    792: /^(aa(bb)?)+$/I
                    793:     aabbaa
                    794: 
                    795: /^(aa|aa(bb))+$/I
                    796:     aabbaa
                    797: 
                    798: /^(aa(bb)??)+$/I
                    799:     aabbaa
                    800: 
                    801: /^(?:aa(bb)?)+$/I
                    802:     aabbaa
                    803: 
                    804: /^(aa(b(b))?)+$/I
                    805:     aabbaa
                    806: 
                    807: /^(?:aa(b(b))?)+$/I
                    808:     aabbaa
                    809: 
                    810: /^(?:aa(b(?:b))?)+$/I
                    811:     aabbaa
                    812: 
                    813: /^(?:aa(bb(?:b))?)+$/I
                    814:     aabbbaa
                    815: 
                    816: /^(?:aa(b(?:bb))?)+$/I
                    817:     aabbbaa
                    818: 
                    819: /^(?:aa(?:b(b))?)+$/I
                    820:     aabbaa
                    821: 
                    822: /^(?:aa(?:b(bb))?)+$/I
                    823:     aabbbaa
                    824: 
                    825: /^(aa(b(bb))?)+$/I
                    826:     aabbbaa
                    827: 
                    828: /^(aa(bb(bb))?)+$/I
                    829:     aabbbbaa
                    830: 
                    831: /--------------------------------------------------------------------/I
                    832: 
                    833: /#/IxDZ
                    834: 
                    835: /a#/IxDZ
                    836: 
                    837: /[\s]/DZ
                    838: 
                    839: /[\S]/DZ
                    840: 
                    841: /a(?i)b/DZ
                    842:     ab
                    843:     aB
                    844:     *** Failers
                    845:     AB
                    846: 
                    847: /(a(?i)b)/DZ
                    848:     ab
                    849:     aB
                    850:     *** Failers
                    851:     AB
                    852: 
                    853: /   (?i)abc/IxDZ
                    854: 
                    855: /#this is a comment
                    856:   (?i)abc/IxDZ
                    857: 
                    858: /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
                    859: 
                    860: /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
                    861: 
                    862: /\Q\E/DZ
                    863:     \
                    864: 
                    865: /\Q\Ex/DZ
                    866: 
                    867: / \Q\E/DZ
                    868: 
                    869: /a\Q\E/DZ
                    870:   abc
                    871:   bca
                    872:   bac
                    873: 
                    874: /a\Q\Eb/DZ
                    875:   abc
                    876: 
                    877: /\Q\Eabc/DZ
                    878: 
                    879: /x*+\w/DZ
                    880:     *** Failers
                    881:     xxxxx
                    882: 
                    883: /x?+/DZ
                    884: 
                    885: /x++/DZ
                    886: 
                    887: /x{1,3}+/DZ
                    888: 
                    889: /(x)*+/DZ
                    890: 
                    891: /^(\w++|\s++)*$/I
                    892:     now is the time for all good men to come to the aid of the party
                    893:     *** Failers
                    894:     this is not a line with only words and spaces!
                    895: 
                    896: /(\d++)(\w)/I
                    897:     12345a
                    898:     *** Failers
                    899:     12345+
                    900: 
                    901: /a++b/I
                    902:     aaab
                    903: 
                    904: /(a++b)/I
                    905:     aaab
                    906: 
                    907: /(a++)b/I
                    908:     aaab
                    909: 
                    910: /([^()]++|\([^()]*\))+/I
                    911:     ((abc(ade)ufh()()x
                    912: 
                    913: /\(([^()]++|\([^()]+\))+\)/I
                    914:     (abc)
                    915:     (abc(def)xyz)
                    916:     *** Failers
                    917:     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                    918: 
                    919: /(abc){1,3}+/DZ
                    920: 
                    921: /a+?+/I
                    922: 
                    923: /a{2,3}?+b/I
                    924: 
                    925: /(?U)a+?+/I
                    926: 
                    927: /a{2,3}?+b/IU
                    928: 
                    929: /x(?U)a++b/DZ
                    930:     xaaaab
                    931: 
                    932: /(?U)xa++b/DZ
                    933:     xaaaab
                    934: 
                    935: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
                    936: 
                    937: /^x(?U)a+b/DZ
                    938: 
                    939: /^x(?U)(a+)b/DZ
                    940: 
                    941: /[.x.]/I
                    942: 
                    943: /[=x=]/I
                    944: 
                    945: /[:x:]/I
                    946: 
                    947: /\l/I
                    948: 
                    949: /\L/I
                    950: 
                    951: /\N{name}/I
                    952: 
                    953: /\u/I
                    954: 
                    955: /\U/I
                    956: 
                    957: /[/I
                    958: 
                    959: /[a-/I
                    960: 
                    961: /[[:space:]/I
                    962: 
                    963: /[\s]/IDZ
                    964: 
                    965: /[[:space:]]/IDZ
                    966: 
                    967: /[[:space:]abcde]/IDZ
                    968: 
                    969: /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
                    970:     <>
                    971:     <abcd>
                    972:     <abc <123> hij>
                    973:     <abc <def> hij>
                    974:     <abc<>def>
                    975:     <abc<>
                    976:     *** Failers
                    977:     <abc
                    978: 
                    979: |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
                    980: 
                    981: |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
                    982: 
                    983: /(.*)\d+\1/I
                    984: 
                    985: /(.*)\d+/I
                    986: 
                    987: /(.*)\d+\1/Is
                    988: 
                    989: /(.*)\d+/Is
                    990: 
                    991: /(.*(xyz))\d+\2/I
                    992: 
                    993: /((.*))\d+\1/I
                    994:     abc123bc
                    995: 
                    996: /a[b]/I
                    997: 
                    998: /(?=a).*/I
                    999: 
                   1000: /(?=abc).xyz/IiI
                   1001: 
                   1002: /(?=abc)(?i).xyz/I
                   1003: 
                   1004: /(?=a)(?=b)/I
                   1005: 
                   1006: /(?=.)a/I
                   1007: 
                   1008: /((?=abcda)a)/I
                   1009: 
                   1010: /((?=abcda)ab)/I
                   1011: 
                   1012: /()a/I
                   1013: 
                   1014: /(?(1)ab|ac)(.)/I
                   1015: 
                   1016: /(?(1)abz|acz)(.)/I
                   1017: 
                   1018: /(?(1)abz)(.)/I
                   1019: 
                   1020: /(?(1)abz)(1)23/I
                   1021: 
                   1022: /(a)+/I
                   1023: 
                   1024: /(a){2,3}/I
                   1025: 
                   1026: /(a)*/I
                   1027: 
                   1028: /[a]/I
                   1029: 
                   1030: /[ab]/I
                   1031: 
                   1032: /[ab]/IS
                   1033: 
                   1034: /[^a]/I
                   1035: 
                   1036: /\d456/I
                   1037: 
                   1038: /\d456/IS
                   1039: 
                   1040: /a^b/I
                   1041: 
                   1042: /^a/Im
                   1043:   abcde
                   1044:   xy\nabc
                   1045:   *** Failers
                   1046:   xyabc
                   1047: 
                   1048: /c|abc/I
                   1049: 
                   1050: /(?i)[ab]/IS
                   1051: 
                   1052: /[ab](?i)cd/IS
                   1053: 
                   1054: /abc(?C)def/I
                   1055:     abcdef
                   1056:     1234abcdef
                   1057:     *** Failers
                   1058:     abcxyz
                   1059:     abcxyzf
                   1060: 
                   1061: /abc(?C)de(?C1)f/I
                   1062:     123abcdef
                   1063: 
                   1064: /(?C1)\dabc(?C2)def/I
                   1065:     1234abcdef
                   1066:     *** Failers
                   1067:     abcdef
                   1068: 
                   1069: /(?C255)ab/I
                   1070: 
                   1071: /(?C256)ab/I
                   1072: 
                   1073: /(?Cab)xx/I
                   1074: 
                   1075: /(?C12vr)x/I
                   1076: 
                   1077: /abc(?C)def/I
                   1078:     *** Failers
                   1079:     \x83\x0\x61bcdef
                   1080: 
                   1081: /(abc)(?C)de(?C1)f/I
                   1082:     123abcdef
                   1083:     123abcdef\C+
                   1084:     123abcdef\C-
                   1085:     *** Failers
                   1086:     123abcdef\C!1
                   1087: 
                   1088: /(?C0)(abc(?C1))*/I
                   1089:     abcabcabc
                   1090:     abcabc\C!1!3
                   1091:     *** Failers
                   1092:     abcabcabc\C!1!3
                   1093: 
                   1094: /(\d{3}(?C))*/I
                   1095:     123\C+
                   1096:     123456\C+
                   1097:     123456789\C+
                   1098: 
                   1099: /((xyz)(?C)p|(?C1)xyzabc)/I
                   1100:     xyzabc\C+
                   1101: 
                   1102: /(X)((xyz)(?C)p|(?C1)xyzabc)/I
                   1103:     Xxyzabc\C+
                   1104: 
                   1105: /(?=(abc))(?C)abcdef/I
                   1106:     abcdef\C+
                   1107: 
                   1108: /(?!(abc)(?C1)d)(?C2)abcxyz/I
                   1109:     abcxyz\C+
                   1110: 
                   1111: /(?<=(abc)(?C))xyz/I
                   1112:    abcxyz\C+
                   1113: 
                   1114: /a(b+)(c*)(?C1)/I
                   1115:     abbbbbccc\C*1
                   1116: 
                   1117: /a(b+?)(c*?)(?C1)/I
                   1118:     abbbbbccc\C*1
                   1119: 
                   1120: /(?C)abc/I
                   1121: 
                   1122: /(?C)^abc/I
                   1123: 
                   1124: /(?C)a|b/IS
                   1125: 
                   1126: /(?R)/I
                   1127: 
                   1128: /(a|(?R))/I
                   1129: 
                   1130: /(ab|(bc|(de|(?R))))/I
                   1131: 
                   1132: /x(ab|(bc|(de|(?R))))/I
                   1133:     xab
                   1134:     xbc
                   1135:     xde
                   1136:     xxab
                   1137:     xxxab
                   1138:     *** Failers
                   1139:     xyab
                   1140: 
                   1141: /(ab|(bc|(de|(?1))))/I
                   1142: 
                   1143: /x(ab|(bc|(de|(?1)x)x)x)/I
                   1144: 
                   1145: /^([^()]|\((?1)*\))*$/I
                   1146:     abc
                   1147:     a(b)c
                   1148:     a(b(c))d
                   1149:     *** Failers)
                   1150:     a(b(c)d
                   1151: 
                   1152: /^>abc>([^()]|\((?1)*\))*<xyz<$/I
                   1153:    >abc>123<xyz<
                   1154:    >abc>1(2)3<xyz<
                   1155:    >abc>(1(2)3)<xyz<
                   1156: 
                   1157: /(a(?1)b)/DZ
                   1158: 
                   1159: /(a(?1)+b)/DZ
                   1160: 
                   1161: /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
                   1162:     12
                   1163:     (((2+2)*-3)-7)
                   1164:     -12
                   1165:     *** Failers
                   1166:     ((2+2)*-3)-7)
                   1167: 
                   1168: /^(x(y|(?1){2})z)/I
                   1169:     xyz
                   1170:     xxyzxyzz
                   1171:     *** Failers
                   1172:     xxyzz
                   1173:     xxyzxyzxyzz
                   1174: 
                   1175: /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
                   1176:     <>
                   1177:     <abcd>
                   1178:     <abc <123> hij>
                   1179:     <abc <def> hij>
                   1180:     <abc<>def>
                   1181:     <abc<>
                   1182:     *** Failers
                   1183:     <abc
                   1184: 
                   1185: /(?1)/I
                   1186: 
                   1187: /((?2)(abc)/I
                   1188: 
                   1189: /^(abc)def(?1)/I
                   1190:     abcdefabc
                   1191: 
                   1192: /^(a|b|c)=(?1)+/I
                   1193:     a=a
                   1194:     a=b
                   1195:     a=bc
                   1196: 
                   1197: /^(a|b|c)=((?1))+/I
                   1198:     a=a
                   1199:     a=b
                   1200:     a=bc
                   1201: 
                   1202: /a(?P<name1>b|c)d(?P<longername2>e)/DZ
                   1203:     abde
                   1204:     acde
                   1205: 
                   1206: /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
                   1207: 
                   1208: /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
                   1209: 
                   1210: /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii
                   1211:     1221
                   1212:     Satan, oscillate my metallic sonatas!
                   1213:     A man, a plan, a canal: Panama!
                   1214:     Able was I ere I saw Elba.
                   1215:     *** Failers
                   1216:     The quick brown fox
                   1217: 
                   1218: /((?(R)a|b))\1(?1)?/I
                   1219:   bb
                   1220:   bbaa
                   1221: 
                   1222: /(.*)a/Is
                   1223: 
                   1224: /(.*)a\1/Is
                   1225: 
                   1226: /(.*)a(b)\2/Is
                   1227: 
                   1228: /((.*)a|(.*)b)z/Is
                   1229: 
                   1230: /((.*)a|(.*)b)z\1/Is
                   1231: 
                   1232: /((.*)a|(.*)b)z\2/Is
                   1233: 
                   1234: /((.*)a|(.*)b)z\3/Is
                   1235: 
                   1236: /((.*)a|^(.*)b)z\3/Is
                   1237: 
                   1238: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
                   1239: 
                   1240: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
                   1241: 
                   1242: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
                   1243: 
                   1244: /(a)(bc)/INDZ
                   1245:   abc
                   1246: 
                   1247: /(?P<one>a)(bc)/INDZ
                   1248:   abc
                   1249: 
                   1250: /(a)(?P<named>bc)/INDZ
                   1251: 
                   1252: /(a+)*zz/I
                   1253:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
                   1254:   aaaaaaaaaaaaaz\M
                   1255: 
                   1256: /(aaa(?C1)bbb|ab)/I
                   1257:    aaabbb
                   1258:    aaabbb\C*0
                   1259:    aaabbb\C*1
                   1260:    aaabbb\C*-1
                   1261: 
                   1262: /ab(?P<one>cd)ef(?P<two>gh)/I
                   1263:     abcdefgh
                   1264:     abcdefgh\C1\Gtwo
                   1265:     abcdefgh\Cone\Ctwo
                   1266:     abcdefgh\Cthree
                   1267: 
                   1268: /(?P<Tes>)(?P<Test>)/DZ
                   1269: 
                   1270: /(?P<Test>)(?P<Tes>)/DZ
                   1271: 
                   1272: /(?P<Z>zz)(?P<A>aa)/I
                   1273:     zzaa\CZ
                   1274:     zzaa\CA
                   1275: 
                   1276: /(?P<x>eks)(?P<x>eccs)/I
                   1277: 
                   1278: /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
                   1279: 
                   1280: "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
                   1281:     [10,20,30,5,5,4,4,2,43,23,4234]
                   1282:     *** Failers
                   1283:     []
                   1284: 
                   1285: "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
                   1286:     [10,20,30,5,5,4,4,2,43,23,4234]
                   1287:     []
                   1288: 
                   1289: /(a(b(?2)c))?/DZ
                   1290: 
                   1291: /(a(b(?2)c))*/DZ
                   1292: 
                   1293: /(a(b(?2)c)){0,2}/DZ
                   1294: 
                   1295: /[ab]{1}+/DZ
                   1296: 
                   1297: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
                   1298:      Baby Bjorn Active Carrier - With free SHIPPING!!
                   1299: 
                   1300: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
                   1301:      Baby Bjorn Active Carrier - With free SHIPPING!!
                   1302: 
                   1303: /a*.*b/ISDZ
                   1304: 
                   1305: /(a|b)*.?c/ISDZ
                   1306: 
                   1307: /abc(?C255)de(?C)f/DZ
                   1308: 
                   1309: /abcde/ICDZ
                   1310:   abcde
                   1311:   abcdfe
                   1312: 
                   1313: /a*b/ICDZ
                   1314:   ab
                   1315:   aaaab
                   1316:   aaaacb
                   1317: 
                   1318: /a+b/ICDZ
                   1319:   ab
                   1320:   aaaab
                   1321:   aaaacb
                   1322: 
                   1323: /(abc|def)x/ICDZ
                   1324:   abcx
                   1325:   defx
                   1326:   abcdefzx
                   1327: 
                   1328: /(ab|cd){3,4}/IC
                   1329:   ababab
                   1330:   abcdabcd
                   1331:   abcdcdcdcdcd
                   1332: 
                   1333: /([ab]{,4}c|xy)/ICDZ
                   1334:     Note: that { does NOT introduce a quantifier
                   1335: 
                   1336: /([ab]{1,4}c|xy){4,5}?123/ICDZ
                   1337:     aacaacaacaacaac123
                   1338: 
                   1339: /\b.*/I
                   1340:   ab cd\>1
                   1341: 
                   1342: /\b.*/Is
                   1343:   ab cd\>1
                   1344: 
                   1345: /(?!.bcd).*/I
                   1346:   Xbcd12345
                   1347: 
                   1348: /abcde/I
                   1349:     ab\P
                   1350:     abc\P
                   1351:     abcd\P
                   1352:     abcde\P
                   1353:     the quick brown abc\P
                   1354:     ** Failers\P
                   1355:     the quick brown abxyz fox\P
                   1356: 
                   1357: "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
                   1358:     13/05/04\P
                   1359:     13/5/2004\P
                   1360:     02/05/09\P
                   1361:     1\P
                   1362:     1/2\P
                   1363:     1/2/0\P
                   1364:     1/2/04\P
                   1365:     0\P
                   1366:     02/\P
                   1367:     02/0\P
                   1368:     02/1\P
                   1369:     ** Failers\P
                   1370:     \P
                   1371:     123\P
                   1372:     33/4/04\P
                   1373:     3/13/04\P
                   1374:     0/1/2003\P
                   1375:     0/\P
                   1376:     02/0/\P
                   1377:     02/13\P
                   1378: 
                   1379: /0{0,2}ABC/I
                   1380: 
                   1381: /\d{3,}ABC/I
                   1382: 
                   1383: /\d*ABC/I
                   1384: 
                   1385: /[abc]+DE/I
                   1386: 
                   1387: /[abc]?123/I
                   1388:     123\P
                   1389:     a\P
                   1390:     b\P
                   1391:     c\P
                   1392:     c12\P
                   1393:     c123\P
                   1394: 
                   1395: /^(?:\d){3,5}X/I
                   1396:     1\P
                   1397:     123\P
                   1398:     123X
                   1399:     1234\P
                   1400:     1234X
                   1401:     12345\P
                   1402:     12345X
                   1403:     *** Failers
                   1404:     1X
                   1405:     123456\P
                   1406: 
                   1407: /abc/I>testsavedregex
                   1408: <testsavedregex
                   1409:     abc
                   1410:     ** Failers
                   1411:     bca
                   1412: 
                   1413: /abc/IF>testsavedregex
                   1414: <testsavedregex
                   1415:     abc
                   1416:     ** Failers
                   1417:     bca
                   1418: 
                   1419: /(a|b)/IS>testsavedregex
                   1420: <testsavedregex
                   1421:     abc
                   1422:     ** Failers
                   1423:     def
                   1424: 
                   1425: /(a|b)/ISF>testsavedregex
                   1426: <testsavedregex
                   1427:     abc
                   1428:     ** Failers
                   1429:     def
                   1430: 
                   1431: ~<(\w+)/?>(.)*</(\1)>~smgI
                   1432:     <!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
                   1433: 
                   1434: /^a/IF
                   1435: 
                   1436: /line\nbreak/I
                   1437:     this is a line\nbreak
                   1438:     line one\nthis is a line\nbreak in the second line
                   1439: 
                   1440: /line\nbreak/If
                   1441:     this is a line\nbreak
                   1442:     ** Failers
                   1443:     line one\nthis is a line\nbreak in the second line
                   1444: 
                   1445: /line\nbreak/Imf
                   1446:     this is a line\nbreak
                   1447:     ** Failers
                   1448:     line one\nthis is a line\nbreak in the second line
                   1449: 
                   1450: /ab.cd/P
                   1451:     ab-cd
                   1452:     ab=cd
                   1453:     ** Failers
                   1454:     ab\ncd
                   1455: 
                   1456: /ab.cd/Ps
                   1457:     ab-cd
                   1458:     ab=cd
                   1459:     ab\ncd
                   1460: 
                   1461: /(?i)(?-i)AbCd/I
                   1462:     AbCd
                   1463:     ** Failers
                   1464:     abcd
                   1465: 
                   1466: /a{11111111111111111111}/I
                   1467: 
                   1468: /(){64294967295}/I
                   1469: 
                   1470: /(){2,4294967295}/I
                   1471: 
                   1472: "(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I
                   1473:     abcdefghijklAkB
                   1474: 
                   1475: "(?P<n0>a)(?P<n1>b)(?P<n2>c)(?P<n3>d)(?P<n4>e)(?P<n5>f)(?P<n6>g)(?P<n7>h)(?P<n8>i)(?P<n9>j)(?P<n10>k)(?P<n11>l)A\11B"I
                   1476:     abcdefghijklAkB
                   1477: 
                   1478: "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
                   1479:     abcdefghijklAkB
                   1480: 
                   1481: "(?P<name0>a)(?P<name1>a)(?P<name2>a)(?P<name3>a)(?P<name4>a)(?P<name5>a)(?P<name6>a)(?P<name7>a)(?P<name8>a)(?P<name9>a)(?P<name10>a)(?P<name11>a)(?P<name12>a)(?P<name13>a)(?P<name14>a)(?P<name15>a)(?P<name16>a)(?P<name17>a)(?P<name18>a)(?P<name19>a)(?P<name20>a)(?P<name21>a)(?P<name22>a)(?P<name23>a)(?P<name24>a)(?P<name25>a)(?P<name26>a)(?P<name27>a)(?P<name28>a)(?P<name29>a)(?P<name30>a)(?P<name31>a)(?P<name32>a)(?P<name33>a)(?P<name34>a)(?P<name35>a)(?P<name36>a)(?P<name37>a)(?P<name38>a)(?P<name39>a)(?P<name40>a)(?P<name41>a)(?P<name42>a)(?P<name43>a)(?P<name44>a)(?P<name45>a)(?P<name46>a)(?P<name47>a)(?P<name48>a)(?P<name49>a)(?P<name50>a)(?P<name51>a)(?P<name52>a)(?P<name53>a)(?P<name54>a)(?P<name55>a)(?P<name56>a)(?P<name57>a)(?P<name58>a)(?P<name59>a)(?P<name60>a)(?P<name61>a)(?P<name62>a)(?P<name63>a)(?P<name64>a)(?P<name65>a)(?P<name66>a)(?P<name67>a)(?P<name68>a)(?P<name69>a)(?P<name70>a)(?P<name71>a)(?P<name72>a)(?P<name73>a)(?P<name74>a)(?P<name75>a)(?P<name76>a)(?P<name77>a)(?P<name78>a)(?P<name79>a)(?P<name80>a)(?P<name81>a)(?P<name82>a)(?P<name83>a)(?P<name84>a)(?P<name85>a)(?P<name86>a)(?P<name87>a)(?P<name88>a)(?P<name89>a)(?P<name90>a)(?P<name91>a)(?P<name92>a)(?P<name93>a)(?P<name94>a)(?P<name95>a)(?P<name96>a)(?P<name97>a)(?P<name98>a)(?P<name99>a)(?P<name100>a)"I
                   1482:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                   1483: 
                   1484: "(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)"I
                   1485:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                   1486: 
                   1487: /[^()]*(?:\((?R)\)[^()]*)*/I
                   1488:     (this(and)that
                   1489:     (this(and)that)
                   1490:     (this(and)that)stuff
                   1491: 
                   1492: /[^()]*(?:\((?>(?R))\)[^()]*)*/I
                   1493:     (this(and)that
                   1494:     (this(and)that)
                   1495: 
                   1496: /[^()]*(?:\((?R)\))*[^()]*/I
                   1497:     (this(and)that
                   1498:     (this(and)that)
                   1499: 
                   1500: /(?:\((?R)\))*[^()]*/I
                   1501:     (this(and)that
                   1502:     (this(and)that)
                   1503:     ((this))
                   1504: 
                   1505: /(?:\((?R)\))|[^()]*/I
                   1506:     (this(and)that
                   1507:     (this(and)that)
                   1508:     (this)
                   1509:     ((this))
                   1510: 
                   1511: /a(b)c/PN
                   1512:     abc
                   1513: 
                   1514: /a(?P<name>b)c/PN
                   1515:     abc
                   1516: 
                   1517: /\x{100}/I
                   1518: 
                   1519: /\x{0000ff}/I
                   1520: 
                   1521: /^((?P<A>a1)|(?P<A>a2)b)/I
                   1522: 
                   1523: /^((?P<A>a1)|(?P<A>a2)b)/IJ
                   1524:     a1b\CA
                   1525:     a2b\CA
                   1526:     ** Failers
                   1527:     a1b\CZ\CA
                   1528: 
                   1529: /^(?P<A>a)(?P<A>b)/IJ
                   1530:     ab\CA
                   1531: 
                   1532: /^(?P<A>a)(?P<A>b)|cd/IJ
                   1533:     ab\CA
                   1534:     cd\CA
                   1535: 
                   1536: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
                   1537:     cdefgh\CA
                   1538: 
                   1539: /^((?P<A>a1)|(?P<A>a2)b)/IJ
                   1540:     a1b\GA
                   1541:     a2b\GA
                   1542:     ** Failers
                   1543:     a1b\GZ\GA
                   1544: 
                   1545: /^(?P<A>a)(?P<A>b)/IJ
                   1546:     ab\GA
                   1547: 
                   1548: /^(?P<A>a)(?P<A>b)|cd/IJ
                   1549:     ab\GA
                   1550:     cd\GA
                   1551: 
                   1552: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
                   1553:     cdefgh\GA
                   1554: 
                   1555: /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
                   1556:     a1b\CA
                   1557:     a2b\CA
                   1558: 
                   1559: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
                   1560: 
                   1561: / In this next test, J is not set at the outer level; consequently it isn't
                   1562: set in the pattern's options; consequently pcre_get_named_substring() produces
                   1563: a random value. /Ix
                   1564: 
                   1565: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
                   1566:     a bc d\CA\CB\CC
                   1567: 
                   1568: /^(?P<A>a)?(?(A)a|b)/I
                   1569:     aabc
                   1570:     bc
                   1571:     ** Failers
                   1572:     abc
                   1573: 
                   1574: /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
                   1575:     bXaX
                   1576: 
                   1577: /(?:(?(2y)a|b)(X))+/I
                   1578: 
                   1579: /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
                   1580: 
                   1581: /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
                   1582:     bbXaaX
                   1583: 
                   1584: /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
                   1585:     (b)\\Xa\\X
                   1586: 
                   1587: /(?P<ABC/I
                   1588: 
                   1589: /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
                   1590:     bXXaYYaY
                   1591:     bXYaXXaX
                   1592: 
                   1593: /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
                   1594:     bXXaYYaY
                   1595: 
                   1596: /\777/I
                   1597: 
                   1598: /\s*,\s*/IS
                   1599:     \x0b,\x0b
                   1600:     \x0c,\x0d
                   1601: 
                   1602: /^abc/Im
                   1603:     xyz\nabc
                   1604:     xyz\nabc\<lf>
                   1605:     xyz\r\nabc\<lf>
                   1606:     xyz\rabc\<cr>
                   1607:     xyz\r\nabc\<crlf>
                   1608:     ** Failers
                   1609:     xyz\nabc\<cr>
                   1610:     xyz\r\nabc\<cr>
                   1611:     xyz\nabc\<crlf>
                   1612:     xyz\rabc\<crlf>
                   1613:     xyz\rabc\<lf>
                   1614: 
                   1615: /abc$/Im<lf>
                   1616:     xyzabc
                   1617:     xyzabc\n
                   1618:     xyzabc\npqr
                   1619:     xyzabc\r\<cr>
                   1620:     xyzabc\rpqr\<cr>
                   1621:     xyzabc\r\n\<crlf>
                   1622:     xyzabc\r\npqr\<crlf>
                   1623:     ** Failers
                   1624:     xyzabc\r
                   1625:     xyzabc\rpqr
                   1626:     xyzabc\r\n
                   1627:     xyzabc\r\npqr
                   1628: 
                   1629: /^abc/Im<cr>
                   1630:     xyz\rabcdef
                   1631:     xyz\nabcdef\<lf>
                   1632:     ** Failers
                   1633:     xyz\nabcdef
                   1634: 
                   1635: /^abc/Im<lf>
                   1636:     xyz\nabcdef
                   1637:     xyz\rabcdef\<cr>
                   1638:     ** Failers
                   1639:     xyz\rabcdef
                   1640: 
                   1641: /^abc/Im<crlf>
                   1642:     xyz\r\nabcdef
                   1643:     xyz\rabcdef\<cr>
                   1644:     ** Failers
                   1645:     xyz\rabcdef
                   1646: 
                   1647: /^abc/Im<bad>
                   1648: 
                   1649: /abc/I
                   1650:     xyz\rabc\<bad>
                   1651:     abc
                   1652: 
                   1653: /.*/I<lf>
                   1654:     abc\ndef
                   1655:     abc\rdef
                   1656:     abc\r\ndef
                   1657:     \<cr>abc\ndef
                   1658:     \<cr>abc\rdef
                   1659:     \<cr>abc\r\ndef
                   1660:     \<crlf>abc\ndef
                   1661:     \<crlf>abc\rdef
                   1662:     \<crlf>abc\r\ndef
                   1663: 
                   1664: /\w+(.)(.)?def/Is
                   1665:     abc\ndef
                   1666:     abc\rdef
                   1667:     abc\r\ndef
                   1668: 
                   1669: +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
                   1670:    /* this is a C style comment */\M
                   1671: 
                   1672: /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
                   1673: 
                   1674: /()()()()()()()()()()()()()()()()()()()()
                   1675:  ()()()()()()()()()()()()()()()()()()()()
                   1676:  ()()()()()()()()()()()()()()()()()()()()
                   1677:  ()()()()()()()()()()()()()()()()()()()()
                   1678:  ()()()()()()()()()()()()()()()()()()()()
                   1679:  (.(.))/Ix
                   1680:     XY\O400
                   1681: 
                   1682: /(a*b|(?i:c*(?-i)d))/IS
                   1683: 
                   1684: /()[ab]xyz/IS
                   1685: 
                   1686: /(|)[ab]xyz/IS
                   1687: 
                   1688: /(|c)[ab]xyz/IS
                   1689: 
                   1690: /(|c?)[ab]xyz/IS
                   1691: 
                   1692: /(d?|c?)[ab]xyz/IS
                   1693: 
                   1694: /(d?|c)[ab]xyz/IS
                   1695: 
                   1696: /^a*b\d/DZ
                   1697: 
                   1698: /^a*+b\d/DZ
                   1699: 
                   1700: /^a*?b\d/DZ
                   1701: 
                   1702: /^a+A\d/DZ
                   1703:     aaaA5
                   1704:     ** Failers
                   1705:     aaaa5
                   1706: 
                   1707: /^a*A\d/IiDZ
                   1708:     aaaA5
                   1709:     aaaa5
                   1710: 
                   1711: /(a*|b*)[cd]/IS
                   1712: 
                   1713: /(a+|b*)[cd]/IS
                   1714: 
                   1715: /(a*|b+)[cd]/IS
                   1716: 
                   1717: /(a+|b+)[cd]/IS
                   1718: 
                   1719: /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
                   1720:  ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
                   1721:  (((
                   1722:  a
                   1723:  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
                   1724:  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
                   1725:  )))
                   1726: /Ix
                   1727:   large nest
                   1728: 
                   1729: /a*\d/BZ
                   1730: 
                   1731: /a*\D/BZ
                   1732: 
                   1733: /0*\d/BZ
                   1734: 
                   1735: /0*\D/BZ
                   1736: 
                   1737: /a*\s/BZ
                   1738: 
                   1739: /a*\S/BZ
                   1740: 
                   1741: / *\s/BZ
                   1742: 
                   1743: / *\S/BZ
                   1744: 
                   1745: /a*\w/BZ
                   1746: 
                   1747: /a*\W/BZ
                   1748: 
                   1749: /=*\w/BZ
                   1750: 
                   1751: /=*\W/BZ
                   1752: 
                   1753: /\d*a/BZ
                   1754: 
                   1755: /\d*2/BZ
                   1756: 
                   1757: /\d*\d/BZ
                   1758: 
                   1759: /\d*\D/BZ
                   1760: 
                   1761: /\d*\s/BZ
                   1762: 
                   1763: /\d*\S/BZ
                   1764: 
                   1765: /\d*\w/BZ
                   1766: 
                   1767: /\d*\W/BZ
                   1768: 
                   1769: /\D*a/BZ
                   1770: 
                   1771: /\D*2/BZ
                   1772: 
                   1773: /\D*\d/BZ
                   1774: 
                   1775: /\D*\D/BZ
                   1776: 
                   1777: /\D*\s/BZ
                   1778: 
                   1779: /\D*\S/BZ
                   1780: 
                   1781: /\D*\w/BZ
                   1782: 
                   1783: /\D*\W/BZ
                   1784: 
                   1785: /\s*a/BZ
                   1786: 
                   1787: /\s*2/BZ
                   1788: 
                   1789: /\s*\d/BZ
                   1790: 
                   1791: /\s*\D/BZ
                   1792: 
                   1793: /\s*\s/BZ
                   1794: 
                   1795: /\s*\S/BZ
                   1796: 
                   1797: /\s*\w/BZ
                   1798: 
                   1799: /\s*\W/BZ
                   1800: 
                   1801: /\S*a/BZ
                   1802: 
                   1803: /\S*2/BZ
                   1804: 
                   1805: /\S*\d/BZ
                   1806: 
                   1807: /\S*\D/BZ
                   1808: 
                   1809: /\S*\s/BZ
                   1810: 
                   1811: /\S*\S/BZ
                   1812: 
                   1813: /\S*\w/BZ
                   1814: 
                   1815: /\S*\W/BZ
                   1816: 
                   1817: /\w*a/BZ
                   1818: 
                   1819: /\w*2/BZ
                   1820: 
                   1821: /\w*\d/BZ
                   1822: 
                   1823: /\w*\D/BZ
                   1824: 
                   1825: /\w*\s/BZ
                   1826: 
                   1827: /\w*\S/BZ
                   1828: 
                   1829: /\w*\w/BZ
                   1830: 
                   1831: /\w*\W/BZ
                   1832: 
                   1833: /\W*a/BZ
                   1834: 
                   1835: /\W*2/BZ
                   1836: 
                   1837: /\W*\d/BZ
                   1838: 
                   1839: /\W*\D/BZ
                   1840: 
                   1841: /\W*\s/BZ
                   1842: 
                   1843: /\W*\S/BZ
                   1844: 
                   1845: /\W*\w/BZ
                   1846: 
                   1847: /\W*\W/BZ
                   1848: 
                   1849: /[^a]+a/BZ
                   1850: 
                   1851: /[^a]+a/BZi
                   1852: 
                   1853: /[^a]+A/BZi
                   1854: 
                   1855: /[^a]+b/BZ
                   1856: 
                   1857: /[^a]+\d/BZ
                   1858: 
                   1859: /a*[^a]/BZ
                   1860: 
                   1861: /(?P<abc>x)(?P<xyz>y)/I
                   1862:     xy\Cabc\Cxyz
                   1863: 
                   1864: /(?<abc>x)(?'xyz'y)/I
                   1865:     xy\Cabc\Cxyz
                   1866: 
                   1867: /(?<abc'x)(?'xyz'y)/I
                   1868: 
                   1869: /(?<abc>x)(?'xyz>y)/I
                   1870: 
                   1871: /(?P'abc'x)(?P<xyz>y)/I
                   1872: 
                   1873: /^(?:(?(ZZ)a|b)(?<ZZ>X))+/
                   1874:     bXaX
                   1875:     bXbX
                   1876:     ** Failers
                   1877:     aXaX
                   1878:     aXbX
                   1879: 
                   1880: /^(?P>abc)(?<abcd>xxx)/
                   1881: 
                   1882: /^(?P>abc)(?<abc>x|y)/
                   1883:     xx
                   1884:     xy
                   1885:     yy
                   1886:     yx
                   1887: 
                   1888: /^(?P>abc)(?P<abc>x|y)/
                   1889:     xx
                   1890:     xy
                   1891:     yy
                   1892:     yx
                   1893: 
                   1894: /^((?(abc)a|b)(?<abc>x|y))+/
                   1895:     bxay
                   1896:     bxby
                   1897:     ** Failers
                   1898:     axby
                   1899: 
                   1900: /^(((?P=abc)|X)(?<abc>x|y))+/
                   1901:     XxXxxx
                   1902:     XxXyyx
                   1903:     XxXyxx
                   1904:     ** Failers
                   1905:     x
                   1906: 
                   1907: /^(?1)(abc)/
                   1908:     abcabc
                   1909: 
                   1910: /^(?:(?:\1|X)(a|b))+/
                   1911:     Xaaa
                   1912:     Xaba
                   1913: 
                   1914: /^[\E\Qa\E-\Qz\E]+/BZ
                   1915: 
                   1916: /^[a\Q]bc\E]/BZ
                   1917: 
                   1918: /^[a-\Q\E]/BZ
                   1919: 
                   1920: /^(?P>abc)[()](?<abc>)/BZ
                   1921: 
                   1922: /^((?(abc)y)[()](?P<abc>x))+/BZ
                   1923:     (xy)x
                   1924: 
                   1925: /^(?P>abc)\Q()\E(?<abc>)/BZ
                   1926: 
                   1927: /^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
                   1928: 
                   1929: /^(?P>abc) # this is (a comment)
                   1930:   (?<abc>)/BZx
                   1931: 
                   1932: /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
                   1933:     1221
                   1934:     Satan, oscillate my metallic sonatas!
                   1935:     A man, a plan, a canal: Panama!
                   1936:     Able was I ere I saw Elba.
                   1937:     *** Failers
                   1938:     The quick brown fox
                   1939: 
                   1940: /(?=(\w+))\1:/I
                   1941:     abcd:
                   1942: 
                   1943: /(?=(?'abc'\w+))\k<abc>:/I
                   1944:     abcd:
                   1945: 
                   1946: /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
                   1947:     adaa
                   1948:     ** Failers
                   1949:     addd
                   1950:     adbb
                   1951: 
                   1952: /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
                   1953:     bdaa
                   1954:     bdab
                   1955:     ** Failers
                   1956:     bddd
                   1957: 
                   1958: /(?(<bc))/
                   1959: 
                   1960: /(?(''))/
                   1961: 
                   1962: /(?('R')stuff)/
                   1963: 
                   1964: /((abc (?(R) (?(R1)1) (?(R2)2) X  |  (?1)  (?2)   (?R) ))) /x
                   1965:     abcabc1Xabc2XabcXabcabc
                   1966: 
                   1967: /(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
                   1968:     abcabc1Xabc2XabcXabcabc
                   1969: 
                   1970: /(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
                   1971: 
                   1972: /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
                   1973:     abcabc1Xabc2XabcXabcabc
                   1974: 
                   1975: /^(?(DEFINE) abc | xyz ) /x
                   1976: 
                   1977: /(?(DEFINE) abc) xyz/xI
                   1978: 
                   1979: /(?(DEFINE) abc){3} xyz/x
                   1980: 
                   1981: /(a|)*\d/
                   1982:   \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                   1983:   \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
                   1984: 
                   1985: /^a.b/<lf>
                   1986:     a\rb
                   1987:     a\nb\<cr>
                   1988:     a\x85b\<anycrlf> 
                   1989:     ** Failers
                   1990:     a\nb
                   1991:     a\nb\<any>
                   1992:     a\rb\<cr>
                   1993:     a\rb\<any>
                   1994:     a\x85b\<any> 
                   1995:     a\rb\<anycrlf>
                   1996: 
                   1997: /^abc./mgx<any>
                   1998:     abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
                   1999: 
                   2000: /abc.$/mgx<any>
                   2001:     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
                   2002: 
                   2003: /a/<cr><any>
                   2004: 
                   2005: /a/<any><crlf>
                   2006: 
                   2007: /^a\Rb/<bsr_unicode>
                   2008:     a\nb
                   2009:     a\rb
                   2010:     a\r\nb
                   2011:     a\x0bb
                   2012:     a\x0cb
                   2013:     a\x85b
                   2014:     ** Failers
                   2015:     a\n\rb
                   2016: 
                   2017: /^a\R*b/<bsr_unicode>
                   2018:     ab
                   2019:     a\nb
                   2020:     a\rb
                   2021:     a\r\nb
                   2022:     a\x0bb
                   2023:     a\x0cb
                   2024:     a\x85b
                   2025:     a\n\rb
                   2026:     a\n\r\x85\x0cb
                   2027: 
                   2028: /^a\R+b/<bsr_unicode>
                   2029:     a\nb
                   2030:     a\rb
                   2031:     a\r\nb
                   2032:     a\x0bb
                   2033:     a\x0cb
                   2034:     a\x85b
                   2035:     a\n\rb
                   2036:     a\n\r\x85\x0cb
                   2037:     ** Failers
                   2038:     ab
                   2039: 
                   2040: /^a\R{1,3}b/<bsr_unicode>
                   2041:     a\nb
                   2042:     a\n\rb
                   2043:     a\n\r\x85b
                   2044:     a\r\n\r\nb
                   2045:     a\r\n\r\n\r\nb
                   2046:     a\n\r\n\rb
                   2047:     a\n\n\r\nb
                   2048:     ** Failers
                   2049:     a\n\n\n\rb
                   2050:     a\r
                   2051: 
                   2052: /^a[\R]b/<bsr_unicode>
                   2053:     aRb
                   2054:     ** Failers
                   2055:     a\nb
                   2056: 
                   2057: /(?&abc)X(?<abc>P)/I
                   2058:     abcPXP123
                   2059: 
                   2060: /(?1)X(?<abc>P)/I
                   2061:     abcPXP123
                   2062: 
                   2063: /(?:a(?&abc)b)*(?<abc>x)/
                   2064:     123axbaxbaxbx456
                   2065:     123axbaxbaxb456
                   2066: 
                   2067: /(?:a(?&abc)b){1,5}(?<abc>x)/
                   2068:     123axbaxbaxbx456
                   2069: 
                   2070: /(?:a(?&abc)b){2,5}(?<abc>x)/
                   2071:     123axbaxbaxbx456
                   2072: 
                   2073: /(?:a(?&abc)b){2,}(?<abc>x)/
                   2074:     123axbaxbaxbx456
                   2075: 
                   2076: /(abc)(?i:(?1))/
                   2077:    defabcabcxyz
                   2078:    DEFabcABCXYZ
                   2079: 
                   2080: /(abc)(?:(?i)(?1))/
                   2081:    defabcabcxyz
                   2082:    DEFabcABCXYZ
                   2083: 
                   2084: /^(a)\g-2/
                   2085: 
                   2086: /^(a)\g/
                   2087: 
                   2088: /^(a)\g{0}/
                   2089: 
                   2090: /^(a)\g{3/
                   2091: 
                   2092: /^(a)\g{4a}/
                   2093: 
                   2094: /^a.b/<lf>
                   2095:     a\rb
                   2096:     *** Failers
                   2097:     a\nb
                   2098: 
                   2099: /.+foo/
                   2100:     afoo
                   2101:     ** Failers
                   2102:     \r\nfoo
                   2103:     \nfoo
                   2104: 
                   2105: /.+foo/<crlf>
                   2106:     afoo
                   2107:     \nfoo
                   2108:     ** Failers
                   2109:     \r\nfoo
                   2110: 
                   2111: /.+foo/<any>
                   2112:     afoo
                   2113:     ** Failers
                   2114:     \nfoo
                   2115:     \r\nfoo
                   2116: 
                   2117: /.+foo/s
                   2118:     afoo
                   2119:     \r\nfoo
                   2120:     \nfoo
                   2121:     
                   2122: /^$/mg<any>
                   2123:     abc\r\rxyz
                   2124:     abc\n\rxyz  
                   2125:     ** Failers 
                   2126:     abc\r\nxyz
                   2127: 
                   2128: /(?m)^$/<any>g+
                   2129:     abc\r\n\r\n
                   2130: 
                   2131: /(?m)^$|^\r\n/<any>g+ 
                   2132:     abc\r\n\r\n
                   2133:     
                   2134: /(?m)$/<any>g+ 
                   2135:     abc\r\n\r\n
                   2136: 
                   2137: /abc.$/mgx<anycrlf>
                   2138:     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
                   2139: 
                   2140: /^X/m
                   2141:     XABC
                   2142:     ** Failers 
                   2143:     XABC\B
                   2144: 
                   2145: /(ab|c)(?-1)/BZ
                   2146:     abc
                   2147: 
                   2148: /xy(?+1)(abc)/BZ
                   2149:     xyabcabc
                   2150:     ** Failers
                   2151:     xyabc  
                   2152:     
                   2153: /x(?-0)y/
                   2154: 
                   2155: /x(?-1)y/
                   2156: 
                   2157: /x(?+0)y/ 
                   2158: 
                   2159: /x(?+1)y/
                   2160: 
                   2161: /^(abc)?(?(-1)X|Y)/BZ
                   2162:     abcX
                   2163:     Y
                   2164:     ** Failers
                   2165:     abcY   
                   2166:     
                   2167: /^((?(+1)X|Y)(abc))+/BZ 
                   2168:     YabcXabc
                   2169:     YabcXabcXabc
                   2170:     ** Failers
                   2171:     XabcXabc  
                   2172: 
                   2173: /(?(-1)a)/BZ
                   2174: 
                   2175: /((?(-1)a))/BZ
                   2176: 
                   2177: /((?(-2)a))/BZ
                   2178: 
                   2179: /^(?(+1)X|Y)(.)/BZ
                   2180:     Y!
                   2181: 
                   2182: /(?<A>tom|bon)-\k{A}/
                   2183:     tom-tom
                   2184:     bon-bon 
                   2185:     ** Failers
                   2186:     tom-bon  
                   2187: 
                   2188: /\g{A/ 
                   2189: 
                   2190: /(?|(abc)|(xyz))/BZ
                   2191:    >abc<
                   2192:    >xyz< 
                   2193: 
                   2194: /(x)(?|(abc)|(xyz))(x)/BZ
                   2195:     xabcx
                   2196:     xxyzx 
                   2197: 
                   2198: /(x)(?|(abc)(pqr)|(xyz))(x)/BZ
                   2199:     xabcpqrx
                   2200:     xxyzx 
                   2201: 
                   2202: /[\h]/BZ
                   2203:     >\x09<
                   2204: 
                   2205: /[\h]+/BZ
                   2206:     >\x09\x20\xa0<
                   2207: 
                   2208: /[\v]/BZ
                   2209: 
                   2210: /[\H]/BZ
                   2211: 
                   2212: /[^\h]/BZ
                   2213: 
                   2214: /[\V]/BZ
                   2215: 
                   2216: /[\x0a\V]/BZ
                   2217: 
                   2218: /\H++X/BZ
                   2219:     ** Failers
                   2220:     XXXX
                   2221:     
                   2222: /\H+\hY/BZ
                   2223:     XXXX Y 
                   2224: 
                   2225: /\H+ Y/BZ
                   2226: 
                   2227: /\h+A/BZ
                   2228: 
                   2229: /\v*B/BZ
                   2230: 
                   2231: /\V+\x0a/BZ
                   2232: 
                   2233: /A+\h/BZ
                   2234: 
                   2235: / *\H/BZ
                   2236: 
                   2237: /A*\v/BZ
                   2238: 
                   2239: /\x0b*\V/BZ
                   2240: 
                   2241: /\d+\h/BZ
                   2242: 
                   2243: /\d*\v/BZ
                   2244: 
                   2245: /S+\h\S+\v/BZ
                   2246: 
                   2247: /\w{3,}\h\w+\v/BZ
                   2248: 
                   2249: /\h+\d\h+\w\h+\S\h+\H/BZ
                   2250: 
                   2251: /\v+\d\v+\w\v+\S\v+\V/BZ
                   2252: 
                   2253: /\H+\h\H+\d/BZ
                   2254: 
                   2255: /\V+\v\V+\w/BZ
                   2256: 
                   2257: /\( (?: [^()]* | (?R) )* \)/x
                   2258: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
                   2259: 
                   2260: /[\E]AAA/
                   2261: 
                   2262: /[\Q\E]AAA/
                   2263: 
                   2264: /[^\E]AAA/
                   2265: 
                   2266: /[^\Q\E]AAA/
                   2267: 
                   2268: /[\E^]AAA/
                   2269: 
                   2270: /[\Q\E^]AAA/
                   2271: 
                   2272: /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
                   2273: 
                   2274: /^a+(*FAIL)/C
                   2275:     aaaaaa
                   2276:     
                   2277: /a+b?c+(*FAIL)/C
                   2278:     aaabccc
                   2279: 
                   2280: /a+b?(*PRUNE)c+(*FAIL)/C
                   2281:     aaabccc
                   2282: 
                   2283: /a+b?(*COMMIT)c+(*FAIL)/C
                   2284:     aaabccc
                   2285:     
                   2286: /a+b?(*SKIP)c+(*FAIL)/C
                   2287:     aaabcccaaabccc
                   2288: 
                   2289: /a+b?(*THEN)c+(*FAIL)/C
                   2290:     aaabccc
                   2291:     
                   2292: /a(*MARK)b/ 
                   2293: 
                   2294: /(?i:A{1,}\6666666666)/
                   2295: 
                   2296: /\g6666666666/
                   2297: 
                   2298: /[\g6666666666]/
                   2299: 
                   2300: /(?1)\c[/
                   2301: 
                   2302: /.+A/<crlf>
                   2303:     \r\nA
                   2304:     
                   2305: /\nA/<crlf>
                   2306:     \r\nA 
                   2307: 
                   2308: /[\r\n]A/<crlf>
                   2309:     \r\nA 
                   2310: 
                   2311: /(\r|\n)A/<crlf>
                   2312:     \r\nA 
                   2313: 
                   2314: /a(*CR)b/
                   2315: 
                   2316: /(*CR)a.b/
                   2317:     a\nb
                   2318:     ** Failers
                   2319:     a\rb  
                   2320: 
                   2321: /(*CR)a.b/<lf>
                   2322:     a\nb
                   2323:     ** Failers
                   2324:     a\rb  
                   2325: 
                   2326: /(*LF)a.b/<CRLF>
                   2327:     a\rb
                   2328:     ** Failers
                   2329:     a\nb  
                   2330: 
                   2331: /(*CRLF)a.b/
                   2332:     a\rb
                   2333:     a\nb  
                   2334:     ** Failers
                   2335:     a\r\nb  
                   2336: 
                   2337: /(*ANYCRLF)a.b/<CR>
                   2338:     ** Failers
                   2339:     a\rb
                   2340:     a\nb  
                   2341:     a\r\nb  
                   2342: 
                   2343: /(*ANY)a.b/<cr>
                   2344:     ** Failers
                   2345:     a\rb
                   2346:     a\nb  
                   2347:     a\r\nb  
                   2348:     a\x85b 
                   2349:     
                   2350: /(*ANY).*/g
                   2351:     abc\r\ndef
                   2352: 
                   2353: /(*ANYCRLF).*/g
                   2354:     abc\r\ndef
                   2355: 
                   2356: /(*CRLF).*/g
                   2357:     abc\r\ndef
                   2358: 
                   2359: /a\Rb/I<bsr_anycrlf>
                   2360:     a\rb
                   2361:     a\nb
                   2362:     a\r\nb
                   2363:     ** Failers
                   2364:     a\x85b
                   2365:     a\x0bb     
                   2366: 
                   2367: /a\Rb/I<bsr_unicode>
                   2368:     a\rb
                   2369:     a\nb
                   2370:     a\r\nb
                   2371:     a\x85b
                   2372:     a\x0bb     
                   2373:     ** Failers 
                   2374:     a\x85b\<bsr_anycrlf>
                   2375:     a\x0bb\<bsr_anycrlf>
                   2376:     
                   2377: /a\R?b/I<bsr_anycrlf>
                   2378:     a\rb
                   2379:     a\nb
                   2380:     a\r\nb
                   2381:     ** Failers
                   2382:     a\x85b
                   2383:     a\x0bb     
                   2384: 
                   2385: /a\R?b/I<bsr_unicode>
                   2386:     a\rb
                   2387:     a\nb
                   2388:     a\r\nb
                   2389:     a\x85b
                   2390:     a\x0bb     
                   2391:     ** Failers 
                   2392:     a\x85b\<bsr_anycrlf>
                   2393:     a\x0bb\<bsr_anycrlf>
                   2394:     
                   2395: /a\R{2,4}b/I<bsr_anycrlf>
                   2396:     a\r\n\nb
                   2397:     a\n\r\rb
                   2398:     a\r\n\r\n\r\n\r\nb
                   2399:     ** Failers
                   2400:     a\x85\85b
                   2401:     a\x0b\0bb     
                   2402: 
                   2403: /a\R{2,4}b/I<bsr_unicode>
                   2404:     a\r\rb
                   2405:     a\n\n\nb
                   2406:     a\r\n\n\r\rb
                   2407:     a\x85\85b
                   2408:     a\x0b\0bb     
                   2409:     ** Failers 
                   2410:     a\r\r\r\r\rb 
                   2411:     a\x85\85b\<bsr_anycrlf>
                   2412:     a\x0b\0bb\<bsr_anycrlf>
                   2413:  
                   2414: /(*BSR_ANYCRLF)a\Rb/I
                   2415:     a\nb
                   2416:     a\rb 
                   2417: 
                   2418: /(*BSR_UNICODE)a\Rb/I
                   2419:     a\x85b
                   2420: 
                   2421: /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
                   2422:     a\nb
                   2423:     a\rb 
                   2424: 
                   2425: /(*CRLF)(*BSR_UNICODE)a\Rb/I
                   2426:     a\x85b
                   2427: 
                   2428: /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
                   2429: 
                   2430: /(?<a>)(?&)/
                   2431: 
                   2432: /(?<abc>)(?&a)/
                   2433: 
                   2434: /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
                   2435: 
                   2436: /(?+-a)/
                   2437: 
                   2438: /(?-+a)/
                   2439: 
                   2440: /(?(-1))/
                   2441: 
                   2442: /(?(+10))/
                   2443: 
                   2444: /(?(10))/
                   2445: 
                   2446: /(?(+2))()()/
                   2447: 
                   2448: /(?(2))()()/
                   2449: 
                   2450: /\k''/
                   2451: 
                   2452: /\k<>/
                   2453: 
                   2454: /\k{}/
                   2455: 
                   2456: /(?P=)/
                   2457: 
                   2458: /(?P>)/
                   2459: 
                   2460: /(?!\w)(?R)/
                   2461: 
                   2462: /(?=\w)(?R)/
                   2463: 
                   2464: /(?<!\w)(?R)/
                   2465: 
                   2466: /(?<=\w)(?R)/
                   2467: 
                   2468: /[[:foo:]]/
                   2469: 
                   2470: /[[:1234:]]/
                   2471: 
                   2472: /[[:f\oo:]]/
                   2473: 
                   2474: /[[: :]]/
                   2475: 
                   2476: /[[:...:]]/
                   2477: 
                   2478: /[[:l\ower:]]/
                   2479: 
                   2480: /[[:abc\:]]/
                   2481: 
                   2482: /[abc[:x\]pqr:]]/
                   2483: 
                   2484: /[[:a\dz:]]/
                   2485: 
                   2486: /(^(a|b\g<-1'c))/
                   2487: 
                   2488: /^(?+1)(?<a>x|y){0}z/
                   2489:     xzxx
                   2490:     yzyy 
                   2491:     ** Failers
                   2492:     xxz  
                   2493: 
                   2494: /(\3)(\1)(a)/
                   2495:     cat
                   2496: 
                   2497: /(\3)(\1)(a)/<JS>
                   2498:     cat
                   2499:     
                   2500: /TA]/
                   2501:     The ACTA] comes 
                   2502: 
                   2503: /TA]/<JS>
                   2504:     The ACTA] comes 
                   2505: 
                   2506: /(?2)[]a()b](abc)/
                   2507:     abcbabc
                   2508: 
                   2509: /(?2)[^]a()b](abc)/
                   2510:     abcbabc
                   2511: 
                   2512: /(?1)[]a()b](abc)/
                   2513:     abcbabc
                   2514:     ** Failers 
                   2515:     abcXabc
                   2516: 
                   2517: /(?1)[^]a()b](abc)/
                   2518:     abcXabc
                   2519:     ** Failers 
                   2520:     abcbabc
                   2521: 
                   2522: /(?2)[]a()b](abc)(xyz)/
                   2523:     xyzbabcxyz
                   2524: 
                   2525: /(?&N)[]a(?<N>)](?<M>abc)/
                   2526:    abc<abc
                   2527: 
                   2528: /(?&N)[]a(?<N>)](abc)/
                   2529:    abc<abc
                   2530: 
                   2531: /a[]b/
                   2532: 
                   2533: /a[^]b/
                   2534: 
                   2535: /a[]b/<JS>
                   2536:     ** Failers
                   2537:     ab
                   2538: 
                   2539: /a[]+b/<JS>
                   2540:     ** Failers
                   2541:     ab 
                   2542: 
                   2543: /a[]*+b/<JS>
                   2544:     ** Failers
                   2545:     ab 
                   2546: 
                   2547: /a[^]b/<JS>
                   2548:     aXb
                   2549:     a\nb 
                   2550:     ** Failers
                   2551:     ab  
                   2552:     
                   2553: /a[^]+b/<JS> 
                   2554:     aXb
                   2555:     a\nX\nXb 
                   2556:     ** Failers
                   2557:     ab  
                   2558: 
                   2559: /a(?!)+b/
                   2560: 
                   2561: /a(*FAIL)+b/
                   2562: 
                   2563: /(abc|pqr|123){0}[xyz]/SI
                   2564: 
                   2565: /(?(?=.*b)b|^)/CI
                   2566:    adc
                   2567:    abc 
                   2568:    
                   2569: /(?(?=b).*b|^d)/I
                   2570: 
                   2571: /(?(?=.*b).*b|^d)/I
                   2572: 
                   2573: /a?|b?/P
                   2574:     abc
                   2575:     ** Failers
                   2576:     ddd\N   
                   2577: 
                   2578: /xyz/C
                   2579:   xyz 
                   2580:   abcxyz 
                   2581:   abcxyz\Y
                   2582:   ** Failers 
                   2583:   abc
                   2584:   abc\Y
                   2585:   abcxypqr  
                   2586:   abcxypqr\Y  
                   2587:   
                   2588: /(*NO_START_OPT)xyz/C
                   2589:   abcxyz 
                   2590: 
                   2591: /xyz/CY
                   2592:   abcxyz 
                   2593: 
                   2594: /^"((?(?=[a])[^"])|b)*"$/C
                   2595:     "ab"
                   2596: 
                   2597: /^"((?(?=[a])[^"])|b)*"$/
                   2598:     "ab"
                   2599: 
                   2600: /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
                   2601:     XYabcdY
                   2602: 
                   2603: /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
                   2604:     XYabcdY
                   2605:  
                   2606: /Xa{2,4}b/
                   2607:     X\P
                   2608:     Xa\P
                   2609:     Xaa\P 
                   2610:     Xaaa\P
                   2611:     Xaaaa\P 
                   2612:     
                   2613: /Xa{2,4}?b/
                   2614:     X\P
                   2615:     Xa\P
                   2616:     Xaa\P 
                   2617:     Xaaa\P
                   2618:     Xaaaa\P 
                   2619:     
                   2620: /Xa{2,4}+b/
                   2621:     X\P
                   2622:     Xa\P
                   2623:     Xaa\P 
                   2624:     Xaaa\P
                   2625:     Xaaaa\P 
                   2626:     
                   2627: /X\d{2,4}b/
                   2628:     X\P
                   2629:     X3\P
                   2630:     X33\P 
                   2631:     X333\P
                   2632:     X3333\P 
                   2633:     
                   2634: /X\d{2,4}?b/
                   2635:     X\P
                   2636:     X3\P
                   2637:     X33\P 
                   2638:     X333\P
                   2639:     X3333\P 
                   2640:     
                   2641: /X\d{2,4}+b/
                   2642:     X\P
                   2643:     X3\P
                   2644:     X33\P 
                   2645:     X333\P
                   2646:     X3333\P 
                   2647:     
                   2648: /X\D{2,4}b/
                   2649:     X\P
                   2650:     Xa\P
                   2651:     Xaa\P 
                   2652:     Xaaa\P
                   2653:     Xaaaa\P 
                   2654:     
                   2655: /X\D{2,4}?b/
                   2656:     X\P
                   2657:     Xa\P
                   2658:     Xaa\P 
                   2659:     Xaaa\P
                   2660:     Xaaaa\P 
                   2661:     
                   2662: /X\D{2,4}+b/
                   2663:     X\P
                   2664:     Xa\P
                   2665:     Xaa\P 
                   2666:     Xaaa\P
                   2667:     Xaaaa\P 
                   2668:     
                   2669: /X[abc]{2,4}b/
                   2670:     X\P
                   2671:     Xa\P
                   2672:     Xaa\P 
                   2673:     Xaaa\P
                   2674:     Xaaaa\P 
                   2675:     
                   2676: /X[abc]{2,4}?b/
                   2677:     X\P
                   2678:     Xa\P
                   2679:     Xaa\P 
                   2680:     Xaaa\P
                   2681:     Xaaaa\P 
                   2682:     
                   2683: /X[abc]{2,4}+b/
                   2684:     X\P
                   2685:     Xa\P
                   2686:     Xaa\P 
                   2687:     Xaaa\P
                   2688:     Xaaaa\P 
                   2689:     
                   2690: /X[^a]{2,4}b/
                   2691:     X\P
                   2692:     Xz\P
                   2693:     Xzz\P 
                   2694:     Xzzz\P
                   2695:     Xzzzz\P 
                   2696:     
                   2697: /X[^a]{2,4}?b/
                   2698:     X\P
                   2699:     Xz\P
                   2700:     Xzz\P 
                   2701:     Xzzz\P
                   2702:     Xzzzz\P 
                   2703:     
                   2704: /X[^a]{2,4}+b/
                   2705:     X\P
                   2706:     Xz\P
                   2707:     Xzz\P 
                   2708:     Xzzz\P
                   2709:     Xzzzz\P 
                   2710:     
                   2711: /(Y)X\1{2,4}b/
                   2712:     YX\P
                   2713:     YXY\P
                   2714:     YXYY\P 
                   2715:     YXYYY\P
                   2716:     YXYYYY\P 
                   2717:     
                   2718: /(Y)X\1{2,4}?b/
                   2719:     YX\P
                   2720:     YXY\P
                   2721:     YXYY\P 
                   2722:     YXYYY\P
                   2723:     YXYYYY\P 
                   2724:     
                   2725: /(Y)X\1{2,4}+b/
                   2726:     YX\P
                   2727:     YXY\P
                   2728:     YXYY\P 
                   2729:     YXYYY\P
                   2730:     YXYYYY\P 
                   2731:     
                   2732: /\++\KZ|\d+X|9+Y/
                   2733:     ++++123999\P
                   2734:     ++++123999Y\P
                   2735:     ++++Z1234\P 
                   2736: 
                   2737: /Z(*F)/
                   2738:     Z\P
                   2739:     ZA\P 
                   2740:     
                   2741: /Z(?!)/
                   2742:     Z\P 
                   2743:     ZA\P 
                   2744: 
                   2745: /dog(sbody)?/
                   2746:     dogs\P
                   2747:     dogs\P\P 
                   2748:     
                   2749: /dog(sbody)??/
                   2750:     dogs\P
                   2751:     dogs\P\P 
                   2752: 
                   2753: /dog|dogsbody/
                   2754:     dogs\P
                   2755:     dogs\P\P 
                   2756:  
                   2757: /dogsbody|dog/
                   2758:     dogs\P
                   2759:     dogs\P\P 
                   2760: 
                   2761: /\bthe cat\b/
                   2762:     the cat\P
                   2763:     the cat\P\P
                   2764: 
                   2765: /abc/
                   2766:    abc\P
                   2767:    abc\P\P
                   2768:    
                   2769: /\w+A/P
                   2770:    CDAAAAB 
                   2771: 
                   2772: /\w+A/PU
                   2773:    CDAAAAB 
                   2774: 
                   2775: /abc\K123/
                   2776:     xyzabc123pqr
                   2777:     xyzabc12\P
                   2778:     xyzabc12\P\P
                   2779:     
                   2780: /(?<=abc)123/
                   2781:     xyzabc123pqr 
                   2782:     xyzabc12\P
                   2783:     xyzabc12\P\P
                   2784: 
                   2785: /\babc\b/
                   2786:     +++abc+++
                   2787:     +++ab\P
                   2788:     +++ab\P\P  
                   2789: 
                   2790: /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
                   2791: 
                   2792: /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
                   2793: 
                   2794: /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
                   2795: 
                   2796: /abc\K/+
                   2797:     abcdef
                   2798:     abcdef\N\N
                   2799:     xyzabcdef\N\N
                   2800:     ** Failers
                   2801:     abcdef\N 
                   2802:     xyzabcdef\N
                   2803:     
                   2804: /^(?:(?=abc)|abc\K)/+
                   2805:     abcdef
                   2806:     abcdef\N\N 
                   2807:     ** Failers 
                   2808:     abcdef\N 
                   2809: 
                   2810: /a?b?/+
                   2811:     xyz
                   2812:     xyzabc
                   2813:     xyzabc\N
                   2814:     xyzabc\N\N
                   2815:     xyz\N\N    
                   2816:     ** Failers 
                   2817:     xyz\N 
                   2818: 
                   2819: /^a?b?/+
                   2820:     xyz
                   2821:     xyzabc
                   2822:     ** Failers 
                   2823:     xyzabc\N
                   2824:     xyzabc\N\N
                   2825:     xyz\N\N    
                   2826:     xyz\N 
                   2827:     
                   2828: /^(?<name>a|b\g<name>c)/
                   2829:     aaaa
                   2830:     bacxxx
                   2831:     bbaccxxx 
                   2832:     bbbacccxx
                   2833: 
                   2834: /^(?<name>a|b\g'name'c)/
                   2835:     aaaa
                   2836:     bacxxx
                   2837:     bbaccxxx 
                   2838:     bbbacccxx
                   2839: 
                   2840: /^(a|b\g<1>c)/
                   2841:     aaaa
                   2842:     bacxxx
                   2843:     bbaccxxx 
                   2844:     bbbacccxx
                   2845: 
                   2846: /^(a|b\g'1'c)/
                   2847:     aaaa
                   2848:     bacxxx
                   2849:     bbaccxxx 
                   2850:     bbbacccxx
                   2851: 
                   2852: /^(a|b\g'-1'c)/
                   2853:     aaaa
                   2854:     bacxxx
                   2855:     bbaccxxx 
                   2856:     bbbacccxx
                   2857: 
                   2858: /(^(a|b\g<-1>c))/
                   2859:     aaaa
                   2860:     bacxxx
                   2861:     bbaccxxx 
                   2862:     bbbacccxx
                   2863: 
                   2864: /(?-i:\g<name>)(?i:(?<name>a))/
                   2865:     XaaX
                   2866:     XAAX 
                   2867: 
                   2868: /(?i:\g<name>)(?-i:(?<name>a))/
                   2869:     XaaX
                   2870:     ** Failers 
                   2871:     XAAX 
                   2872: 
                   2873: /(?-i:\g<+1>)(?i:(a))/
                   2874:     XaaX
                   2875:     XAAX 
                   2876: 
                   2877: /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
                   2878: 
                   2879: /(?<n>a|b|c)\g<n>*/
                   2880:    abc
                   2881:    accccbbb 
                   2882: 
                   2883: /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
                   2884:     XYabcdY
                   2885: 
                   2886: /(?<=b(?1)|zzz)(a)/
                   2887:     xbaax
                   2888:     xzzzax 
                   2889: 
                   2890: /(a)(?<=b\1)/
                   2891: 
                   2892: /(a)(?<=b+(?1))/
                   2893: 
                   2894: /(a+)(?<=b(?1))/
                   2895: 
                   2896: /(a(?<=b(?1)))/
                   2897: 
                   2898: /(?<=b(?1))xyz/
                   2899: 
                   2900: /(?<=b(?1))xyz(b+)pqrstuvew/
                   2901: 
                   2902: /(a|bc)\1/SI
                   2903: 
                   2904: /(a|bc)\1{2,3}/SI
                   2905: 
                   2906: /(a|bc)(?1)/SI
                   2907: 
                   2908: /(a|b\1)(a|b\1)/SI
                   2909: 
                   2910: /(a|b\1){2}/SI
                   2911: 
                   2912: /(a|bbbb\1)(a|bbbb\1)/SI
                   2913: 
                   2914: /(a|bbbb\1){2}/SI
                   2915: 
                   2916: /^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]/SI
                   2917: 
                   2918: /  (?: [\040\t] |  \(
                   2919: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   2920: \)  )*                          # optional leading comment
                   2921: (?:    (?:
                   2922: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   2923: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   2924: |
                   2925: " (?:                      # opening quote...
                   2926: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                   2927: |                     #    or
                   2928: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                   2929: )* "  # closing quote
                   2930: )                    # initial word
                   2931: (?:  (?: [\040\t] |  \(
                   2932: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   2933: \)  )*  \.  (?: [\040\t] |  \(
                   2934: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   2935: \)  )*   (?:
                   2936: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   2937: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   2938: |
                   2939: " (?:                      # opening quote...
                   2940: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                   2941: |                     #    or
                   2942: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                   2943: )* "  # closing quote
                   2944: )  )* # further okay, if led by a period
                   2945: (?: [\040\t] |  \(
                   2946: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   2947: \)  )*  @  (?: [\040\t] |  \(
                   2948: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   2949: \)  )*    (?:
                   2950: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   2951: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   2952: |   \[                         # [
                   2953: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                   2954: \]                        #           ]
                   2955: )                           # initial subdomain
                   2956: (?:                                  #
                   2957: (?: [\040\t] |  \(
                   2958: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   2959: \)  )*  \.                        # if led by a period...
                   2960: (?: [\040\t] |  \(
                   2961: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   2962: \)  )*   (?:
                   2963: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   2964: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   2965: |   \[                         # [
                   2966: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                   2967: \]                        #           ]
                   2968: )                     #   ...further okay
                   2969: )*
                   2970: # address
                   2971: |                     #  or
                   2972: (?:
                   2973: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   2974: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   2975: |
                   2976: " (?:                      # opening quote...
                   2977: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                   2978: |                     #    or
                   2979: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                   2980: )* "  # closing quote
                   2981: )             # one word, optionally followed by....
                   2982: (?:
                   2983: [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
                   2984: \(
                   2985: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   2986: \)       |  # comments, or...
                   2987: 
                   2988: " (?:                      # opening quote...
                   2989: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                   2990: |                     #    or
                   2991: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                   2992: )* "  # closing quote
                   2993: # quoted strings
                   2994: )*
                   2995: <  (?: [\040\t] |  \(
                   2996: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   2997: \)  )*                     # leading <
                   2998: (?:  @  (?: [\040\t] |  \(
                   2999: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3000: \)  )*    (?:
                   3001: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   3002: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   3003: |   \[                         # [
                   3004: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                   3005: \]                        #           ]
                   3006: )                           # initial subdomain
                   3007: (?:                                  #
                   3008: (?: [\040\t] |  \(
                   3009: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3010: \)  )*  \.                        # if led by a period...
                   3011: (?: [\040\t] |  \(
                   3012: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3013: \)  )*   (?:
                   3014: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   3015: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   3016: |   \[                         # [
                   3017: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                   3018: \]                        #           ]
                   3019: )                     #   ...further okay
                   3020: )*
                   3021: 
                   3022: (?:  (?: [\040\t] |  \(
                   3023: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3024: \)  )*  ,  (?: [\040\t] |  \(
                   3025: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3026: \)  )*  @  (?: [\040\t] |  \(
                   3027: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3028: \)  )*    (?:
                   3029: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   3030: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   3031: |   \[                         # [
                   3032: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                   3033: \]                        #           ]
                   3034: )                           # initial subdomain
                   3035: (?:                                  #
                   3036: (?: [\040\t] |  \(
                   3037: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3038: \)  )*  \.                        # if led by a period...
                   3039: (?: [\040\t] |  \(
                   3040: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3041: \)  )*   (?:
                   3042: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   3043: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   3044: |   \[                         # [
                   3045: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                   3046: \]                        #           ]
                   3047: )                     #   ...further okay
                   3048: )*
                   3049: )* # further okay, if led by comma
                   3050: :                                # closing colon
                   3051: (?: [\040\t] |  \(
                   3052: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3053: \)  )*  )? #       optional route
                   3054: (?:
                   3055: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   3056: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   3057: |
                   3058: " (?:                      # opening quote...
                   3059: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                   3060: |                     #    or
                   3061: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                   3062: )* "  # closing quote
                   3063: )                    # initial word
                   3064: (?:  (?: [\040\t] |  \(
                   3065: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3066: \)  )*  \.  (?: [\040\t] |  \(
                   3067: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3068: \)  )*   (?:
                   3069: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   3070: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   3071: |
                   3072: " (?:                      # opening quote...
                   3073: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
                   3074: |                     #    or
                   3075: \\ [^\x80-\xff]           #   Escaped something (something != CR)
                   3076: )* "  # closing quote
                   3077: )  )* # further okay, if led by a period
                   3078: (?: [\040\t] |  \(
                   3079: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3080: \)  )*  @  (?: [\040\t] |  \(
                   3081: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3082: \)  )*    (?:
                   3083: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   3084: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   3085: |   \[                         # [
                   3086: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                   3087: \]                        #           ]
                   3088: )                           # initial subdomain
                   3089: (?:                                  #
                   3090: (?: [\040\t] |  \(
                   3091: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3092: \)  )*  \.                        # if led by a period...
                   3093: (?: [\040\t] |  \(
                   3094: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3095: \)  )*   (?:
                   3096: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
                   3097: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
                   3098: |   \[                         # [
                   3099: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
                   3100: \]                        #           ]
                   3101: )                     #   ...further okay
                   3102: )*
                   3103: #       address spec
                   3104: (?: [\040\t] |  \(
                   3105: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3106: \)  )*  > #                  trailing >
                   3107: # name and address
                   3108: )  (?: [\040\t] |  \(
                   3109: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
                   3110: \)  )*                       # optional trailing comment
                   3111: /xSI
                   3112: 
                   3113: /<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>/isIS
                   3114: 
                   3115: "(?>.*/)foo"SI
                   3116: 
                   3117: /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
                   3118: 
                   3119: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
                   3120: 
                   3121: /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
                   3122: 
                   3123: /<a[\s]+href[\s]*=[\s]*          # find <a href=
                   3124:  ([\"\'])?                       # find single or double quote
                   3125:  (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
                   3126:                                  # quote, otherwise match up to next space
                   3127: /isxSI
                   3128: 
                   3129: /^(?!:)                       # colon disallowed at start
                   3130:   (?:                         # start of item
                   3131:     (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
                   3132:     (?(1)0 | () ) )           # if null previously matched, fail; else null
                   3133:     :                         # followed by colon
                   3134:   ){1,7}                      # end item; 1-7 of them required               
                   3135:   [0-9a-f]{1,4} $             # final hex number at end of string
                   3136:   (?(1)|.)                    # check that there was an empty component
                   3137:   /xiIS
                   3138: 
                   3139: /(?|(?<a>A)|(?<a>B))/I
                   3140:     AB\Ca
                   3141:     BA\Ca
                   3142: 
                   3143: /(?|(?<a>A)|(?<b>B))/ 
                   3144: 
                   3145: /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
                   3146:     b(?<quote> (?<apostrophe>')|(?<realquote>")) ) 
                   3147:     (?('quote')[a-z]+|[0-9]+)/JIx
                   3148:     a"aaaaa
                   3149:     b"aaaaa 
                   3150:     ** Failers 
                   3151:     b"11111
                   3152:     a"11111 
                   3153:     
                   3154: /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
                   3155:     abcdX
                   3156:     eX
                   3157:     ** Failers
                   3158:     abcdY
                   3159:     ey     
                   3160:     
                   3161: /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
                   3162:     abcdd
                   3163:     ** Failers
                   3164:     abcdde  
                   3165: 
                   3166: /abcd*/
                   3167:     xxxxabcd\P
                   3168:     xxxxabcd\P\P
                   3169: 
                   3170: /abcd*/i
                   3171:     xxxxabcd\P
                   3172:     xxxxabcd\P\P
                   3173:     XXXXABCD\P
                   3174:     XXXXABCD\P\P
                   3175: 
                   3176: /abc\d*/
                   3177:     xxxxabc1\P
                   3178:     xxxxabc1\P\P
                   3179: 
                   3180: /(a)bc\1*/
                   3181:     xxxxabca\P
                   3182:     xxxxabca\P\P
                   3183: 
                   3184: /abc[de]*/
                   3185:     xxxxabcde\P
                   3186:     xxxxabcde\P\P
                   3187: 
                   3188: /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
                   3189:     broken and not behaving as specified in that it *does* bumpalong after
                   3190:     hitting (*COMMIT). --/
                   3191: 
                   3192: /(?1)(A(*COMMIT)|B)D/
                   3193:     ABD
                   3194:     XABD
                   3195:     BAD
                   3196:     ABXABD  
                   3197:     ** Failers 
                   3198:     ABX 
                   3199:     BAXBAD  
                   3200: 
                   3201: /(\3)(\1)(a)/<JS>
                   3202:     cat
                   3203: 
                   3204: /(\3)(\1)(a)/SI<JS>
                   3205:     cat
                   3206: 
                   3207: /(\3)(\1)(a)/SI
                   3208:     cat
                   3209: 
                   3210: /i(?(DEFINE)(?<s>a))/SI
                   3211:     i
                   3212:     
                   3213: /()i(?(1)a)/SI 
                   3214:     ia
                   3215: 
                   3216: /(?i)a(?-i)b|c/BZ
                   3217:     XabX
                   3218:     XAbX
                   3219:     CcC 
                   3220:     ** Failers
                   3221:     XABX   
                   3222: 
                   3223: /(?i)a(?s)b|c/BZ
                   3224: 
                   3225: /(?i)a(?s-i)b|c/BZ
                   3226: 
                   3227: /^(ab(c\1)d|x){2}$/BZ
                   3228:     xabcxd
                   3229:     
                   3230: /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
                   3231: 
                   3232: /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
                   3233: 
                   3234: / -- The first four of these are not in the Perl >= 5.10 test because Perl 
                   3235:      documents that the use of \K in assertions is "not well defined". The
                   3236:      last is here because Perl gives the match as "b" rather than "ab". I
                   3237:      believe this to be a Perl bug. --/  
                   3238:       
                   3239: /(?=a\Kb)ab/
                   3240:     ab 
                   3241: 
                   3242: /(?!a\Kb)ac/
                   3243:     ac 
                   3244:     
                   3245: /^abc(?<=b\Kc)d/
                   3246:     abcd
                   3247: 
                   3248: /^abc(?<!b\Kq)d/
                   3249:     abcd
                   3250: 
                   3251: /(?>a\Kb)z|(ab)/
                   3252:     ab 
                   3253: 
                   3254: /----------------------/
                   3255: 
                   3256: /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
                   3257: 
                   3258: /abc(*MARK:)pqr/
                   3259: 
                   3260: /abc(*:)pqr/
                   3261: 
                   3262: /abc(*FAIL:123)xyz/
                   3263: 
                   3264: /--- This should, and does, fail. In Perl, it does not, which I think is a 
                   3265:      bug because replacing the B in the pattern by (B|D) does make it fail. ---/
                   3266: 
                   3267: /A(*COMMIT)B/+K
                   3268:     ACABX
                   3269: 
                   3270: /--- These should be different, but in Perl 5.11 are not, which I think
                   3271:      is a bug in Perl. ---/
                   3272: 
                   3273: /A(*THEN)B|A(*THEN)C/K
                   3274:     AC
                   3275: 
                   3276: /A(*PRUNE)B|A(*PRUNE)C/K
                   3277:     AC
                   3278:     
                   3279: /--- A whole lot of tests of verbs with arguments are here rather than in test
                   3280:      11 because Perl doesn't seem to follow its specification entirely 
                   3281:      correctly. ---/
                   3282: 
                   3283: /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is
                   3284:      not clear how Perl defines "involved in the failure of the match". ---/ 
                   3285: 
                   3286: /^(A(*THEN:A)B|C(*THEN:B)D)/K
                   3287:     AB
                   3288:     CD
                   3289:     ** Failers
                   3290:     AC
                   3291:     CB    
                   3292:     
                   3293: /--- Check the use of names for success and failure. PCRE doesn't show these 
                   3294: names for success, though Perl does, contrary to its spec. ---/
                   3295: 
                   3296: /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
                   3297:     AB
                   3298:     CD
                   3299:     ** Failers
                   3300:     AC
                   3301:     CB    
                   3302:     
                   3303: /--- An empty name does not pass back an empty string. It is the same as if no
                   3304: name were given. ---/ 
                   3305: 
                   3306: /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K
                   3307:     AB
                   3308:     CD 
                   3309: 
                   3310: /--- PRUNE goes to next bumpalong; COMMIT does not. ---/
                   3311:     
                   3312: /A(*PRUNE:A)B/K
                   3313:     ACAB
                   3314: 
                   3315: /(*MARK:A)(*PRUNE:B)(C|X)/K
                   3316:     C
                   3317:     D 
                   3318: 
                   3319: /(*MARK:A)(*THEN:B)(C|X)/K
                   3320:     C
                   3321:     D 
                   3322: 
                   3323: /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/
                   3324: 
                   3325: /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK
                   3326:     AAAC
                   3327: 
                   3328: /--- Same --/
                   3329: 
                   3330: /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK
                   3331:     AAAC
                   3332: 
                   3333: /--- This should fail; the SKIP advances by one, but when we get to AC, the
                   3334:      PRUNE kills it. ---/ 
                   3335:     
                   3336: /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
                   3337:     AAAC
                   3338: 
                   3339: /A(*:A)A+(*SKIP)(B|Z) | AC/xK
                   3340:     AAAC
                   3341: 
                   3342: /--- This should fail, as a null name is the same as no name ---/
                   3343: 
                   3344: /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK
                   3345:     AAAC
                   3346: 
                   3347: /--- This fails in PCRE, and I think that is in accordance with Perl's 
                   3348:      documentation, though in Perl it succeeds. ---/
                   3349:     
                   3350: /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK
                   3351:     AAAC
                   3352: 
                   3353: /--- Mark names can be duplicated ---/
                   3354: 
                   3355: /A(*:A)B|X(*:A)Y/K
                   3356:     AABC
                   3357:     XXYZ 
                   3358:     
                   3359: /^A(*:A)B|^X(*:A)Y/K
                   3360:     ** Failers
                   3361:     XAQQ
                   3362:     
                   3363: /--- A check on what happens after hitting a mark and them bumping along to
                   3364: something that does not even start. Perl reports tags after the failures here, 
                   3365: though it does not when the individual letters are made into something 
                   3366: more complicated. ---/
                   3367: 
                   3368: /A(*:A)B|XX(*:B)Y/K
                   3369:     AABC
                   3370:     XXYZ 
                   3371:     ** Failers
                   3372:     XAQQ  
                   3373:     XAQQXZZ  
                   3374:     AXQQQ 
                   3375:     AXXQQQ 
                   3376:     
                   3377: /--- COMMIT at the start of a pattern should be the same as an anchor. Perl 
                   3378: optimizations defeat this. So does the PCRE optimization unless we disable it 
                   3379: with \Y. ---/
                   3380: 
                   3381: /(*COMMIT)ABC/
                   3382:     ABCDEFG
                   3383:     ** Failers
                   3384:     DEFGABC\Y  
                   3385:     
                   3386: /--- Repeat some tests with added studying. ---/
                   3387: 
                   3388: /A(*COMMIT)B/+KS
                   3389:     ACABX
                   3390:  
                   3391: /A(*THEN)B|A(*THEN)C/KS
                   3392:     AC
                   3393: 
                   3394: /A(*PRUNE)B|A(*PRUNE)C/KS
                   3395:     AC
                   3396: 
                   3397: /^(A(*THEN:A)B|C(*THEN:B)D)/KS
                   3398:     AB
                   3399:     CD
                   3400:     ** Failers
                   3401:     AC
                   3402:     CB    
                   3403: 
                   3404: /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS
                   3405:     AB
                   3406:     CD
                   3407:     ** Failers
                   3408:     AC
                   3409:     CB    
                   3410: 
                   3411: /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS
                   3412:     AB
                   3413:     CD 
                   3414: 
                   3415: /A(*PRUNE:A)B/KS
                   3416:     ACAB
                   3417: 
                   3418: /(*MARK:A)(*PRUNE:B)(C|X)/KS
                   3419:     C
                   3420:     D 
                   3421: 
                   3422: /(*MARK:A)(*THEN:B)(C|X)/KS
                   3423:     C
                   3424:     D 
                   3425: 
                   3426: /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS
                   3427:     AAAC
                   3428: 
                   3429: /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS
                   3430:     AAAC
                   3431:     
                   3432: /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS
                   3433:     AAAC
                   3434: 
                   3435: /A(*:A)A+(*SKIP)(B|Z) | AC/xKS
                   3436:     AAAC
                   3437: 
                   3438: /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS
                   3439:     AAAC
                   3440: 
                   3441: /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS
                   3442:     AAAC
                   3443: 
                   3444: /A(*:A)B|XX(*:B)Y/KS
                   3445:     AABC
                   3446:     XXYZ 
                   3447:     ** Failers
                   3448:     XAQQ  
                   3449:     XAQQXZZ  
                   3450:     AXQQQ 
                   3451:     AXXQQQ 
                   3452:     
                   3453: /(*COMMIT)ABC/
                   3454:     ABCDEFG
                   3455:     ** Failers
                   3456:     DEFGABC\Y  
                   3457: 
                   3458: /^(ab (c+(*THEN)cd) | xyz)/x
                   3459:     abcccd  
                   3460: 
                   3461: /^(ab (c+(*PRUNE)cd) | xyz)/x
                   3462:     abcccd  
                   3463: 
                   3464: /^(ab (c+(*FAIL)cd) | xyz)/x
                   3465:     abcccd  
                   3466:     
                   3467: /--- Perl 5.11 gets some of these wrong ---/ 
                   3468: 
                   3469: /(?>.(*ACCEPT))*?5/
                   3470:     abcde
                   3471: 
                   3472: /(.(*ACCEPT))*?5/
                   3473:     abcde
                   3474: 
                   3475: /(.(*ACCEPT))5/
                   3476:     abcde
                   3477: 
                   3478: /(.(*ACCEPT))*5/
                   3479:     abcde
                   3480: 
                   3481: /A\NB./BZ
                   3482:     ACBD
                   3483:     *** Failers
                   3484:     A\nB
                   3485:     ACB\n   
                   3486: 
                   3487: /A\NB./sBZ
                   3488:     ACBD
                   3489:     ACB\n 
                   3490:     *** Failers
                   3491:     A\nB  
                   3492:   
                   3493: /A\NB/<crlf>
                   3494:     A\nB
                   3495:     A\rB
                   3496:     ** Failers
                   3497:     A\r\nB    
                   3498: 
                   3499: /\R+b/BZ
                   3500: 
                   3501: /\R+\n/BZ
                   3502: 
                   3503: /\R+\d/BZ
                   3504: 
                   3505: /\d*\R/BZ
                   3506: 
                   3507: /\s*\R/BZ
                   3508: 
                   3509: /-- Perl treats this one differently, not failing the second string. I believe
                   3510:     that is a bug in Perl. --/
                   3511: 
                   3512: /^((abc|abcx)(*THEN)y|abcd)/
                   3513:     abcd
                   3514:     *** Failers 
                   3515:     abcxy 
                   3516: 
                   3517: /(?<=abc)def/
                   3518:     abc\P\P
                   3519: 
                   3520: /abc$/
                   3521:     abc
                   3522:     abc\P
                   3523:     abc\P\P
                   3524: 
                   3525: /abc$/m
                   3526:     abc
                   3527:     abc\n
                   3528:     abc\P\P
                   3529:     abc\n\P\P 
                   3530:     abc\P
                   3531:     abc\n\P
                   3532: 
                   3533: /abc\z/
                   3534:     abc
                   3535:     abc\P
                   3536:     abc\P\P
                   3537: 
                   3538: /abc\Z/
                   3539:     abc
                   3540:     abc\P
                   3541:     abc\P\P
                   3542: 
                   3543: /abc\b/
                   3544:     abc
                   3545:     abc\P
                   3546:     abc\P\P
                   3547: 
                   3548: /abc\B/
                   3549:     abc
                   3550:     abc\P
                   3551:     abc\P\P
                   3552: 
                   3553: /.+/
                   3554:     abc\>0
                   3555:     abc\>1
                   3556:     abc\>2
                   3557:     abc\>3
                   3558:     abc\>4
                   3559:     abc\>-4 
                   3560: 
                   3561: /^\cģ/
                   3562: 
                   3563: /(?P<abn>(?P=abn)xxx)/BZ
                   3564: 
                   3565: /(a\1z)/BZ
                   3566: 
                   3567: /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
                   3568: 
                   3569: /(?P<abn>(?P=axn)xxx)/BZ
                   3570: 
                   3571: /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
                   3572: 
                   3573: /-- End of testinput2 --/

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