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

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

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