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

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