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

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

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