File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / pcre / testdata / testoutput2
Revision 1.1.1.5 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jun 15 19:46:05 2014 UTC (10 years, 1 month ago) by misho
Branches: pcre, MAIN
CVS tags: v8_34, HEAD
pcre 8.34

    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 set of tests. When UTF support is needed, use
    9:     test 5, and if Unicode Property Support is needed, use test 7. --/
   10:     
   11: < forbid 8W 
   12:   
   13: /(a)b|/I
   14: Capturing subpattern count = 1
   15: May match empty string
   16: No options
   17: No first char
   18: No need char
   19: 
   20: /abc/I
   21: Capturing subpattern count = 0
   22: No options
   23: First char = 'a'
   24: Need char = 'c'
   25:     abc
   26:  0: abc
   27:     defabc
   28:  0: abc
   29:     \Aabc
   30:  0: abc
   31:     *** Failers
   32: No match
   33:     \Adefabc
   34: No match
   35:     ABC
   36: No match
   37: 
   38: /^abc/I
   39: Capturing subpattern count = 0
   40: Options: anchored
   41: No first char
   42: No need char
   43:     abc
   44:  0: abc
   45:     \Aabc
   46:  0: abc
   47:     *** Failers
   48: No match
   49:     defabc
   50: No match
   51:     \Adefabc
   52: No match
   53: 
   54: /a+bc/I
   55: Capturing subpattern count = 0
   56: No options
   57: First char = 'a'
   58: Need char = 'c'
   59: 
   60: /a*bc/I
   61: Capturing subpattern count = 0
   62: No options
   63: No first char
   64: Need char = 'c'
   65: 
   66: /a{3}bc/I
   67: Capturing subpattern count = 0
   68: No options
   69: First char = 'a'
   70: Need char = 'c'
   71: 
   72: /(abc|a+z)/I
   73: Capturing subpattern count = 1
   74: No options
   75: First char = 'a'
   76: No need char
   77: 
   78: /^abc$/I
   79: Capturing subpattern count = 0
   80: Options: anchored
   81: No first char
   82: No need char
   83:     abc
   84:  0: abc
   85:     *** Failers
   86: No match
   87:     def\nabc
   88: No match
   89: 
   90: /ab\idef/X
   91: Failed: unrecognized character follows \ at offset 3
   92: 
   93: /(?X)ab\idef/X
   94: Failed: unrecognized character follows \ at offset 7
   95: 
   96: /x{5,4}/
   97: Failed: numbers out of order in {} quantifier at offset 5
   98: 
   99: /z{65536}/
  100: Failed: number too big in {} quantifier at offset 7
  101: 
  102: /[abcd/
  103: Failed: missing terminating ] for character class at offset 5
  104: 
  105: /(?X)[\B]/
  106: Failed: invalid escape sequence in character class at offset 6
  107: 
  108: /(?X)[\R]/
  109: Failed: invalid escape sequence in character class at offset 6
  110: 
  111: /(?X)[\X]/
  112: Failed: invalid escape sequence in character class at offset 6
  113: 
  114: /[\B]/BZ
  115: ------------------------------------------------------------------
  116:         Bra
  117:         B
  118:         Ket
  119:         End
  120: ------------------------------------------------------------------
  121: 
  122: /[\R]/BZ
  123: ------------------------------------------------------------------
  124:         Bra
  125:         R
  126:         Ket
  127:         End
  128: ------------------------------------------------------------------
  129: 
  130: /[\X]/BZ
  131: ------------------------------------------------------------------
  132:         Bra
  133:         X
  134:         Ket
  135:         End
  136: ------------------------------------------------------------------
  137: 
  138: /[z-a]/
  139: Failed: range out of order in character class at offset 3
  140: 
  141: /^*/
  142: Failed: nothing to repeat at offset 1
  143: 
  144: /(abc/
  145: Failed: missing ) at offset 4
  146: 
  147: /(?# abc/
  148: Failed: missing ) after comment at offset 7
  149: 
  150: /(?z)abc/
  151: Failed: unrecognized character after (? or (?- at offset 2
  152: 
  153: /.*b/I
  154: Capturing subpattern count = 0
  155: No options
  156: First char at start or follows newline
  157: Need char = 'b'
  158: 
  159: /.*?b/I
  160: Capturing subpattern count = 0
  161: No options
  162: First char at start or follows newline
  163: Need char = 'b'
  164: 
  165: /cat|dog|elephant/I
  166: Capturing subpattern count = 0
  167: No options
  168: No first char
  169: No need char
  170:     this sentence eventually mentions a cat
  171:  0: cat
  172:     this sentences rambles on and on for a while and then reaches elephant
  173:  0: elephant
  174: 
  175: /cat|dog|elephant/IS
  176: Capturing subpattern count = 0
  177: No options
  178: No first char
  179: No need char
  180: Subject length lower bound = 3
  181: Starting byte set: c d e 
  182:     this sentence eventually mentions a cat
  183:  0: cat
  184:     this sentences rambles on and on for a while and then reaches elephant
  185:  0: elephant
  186: 
  187: /cat|dog|elephant/IiS
  188: Capturing subpattern count = 0
  189: Options: caseless
  190: No first char
  191: No need char
  192: Subject length lower bound = 3
  193: Starting byte set: C D E c d e 
  194:     this sentence eventually mentions a CAT cat
  195:  0: CAT
  196:     this sentences rambles on and on for a while to elephant ElePhant
  197:  0: elephant
  198: 
  199: /a|[bcd]/IS
  200: Capturing subpattern count = 0
  201: No options
  202: No first char
  203: No need char
  204: Subject length lower bound = 1
  205: Starting byte set: a b c d 
  206: 
  207: /(a|[^\dZ])/IS
  208: Capturing subpattern count = 1
  209: No options
  210: No first char
  211: No need char
  212: Subject length lower bound = 1
  213: Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 
  214:   \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 
  215:   \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = > 
  216:   ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y [ \ ] ^ _ ` a b c d 
  217:   e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80 \x81 \x82 \x83 
  218:   \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 
  219:   \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 
  220:   \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 
  221:   \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf 
  222:   \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce 
  223:   \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd 
  224:   \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec 
  225:   \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb 
  226:   \xfc \xfd \xfe \xff 
  227: 
  228: /(a|b)*[\s]/IS
  229: Capturing subpattern count = 1
  230: No options
  231: No first char
  232: No need char
  233: Subject length lower bound = 1
  234: Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 a b 
  235: 
  236: /(ab\2)/
  237: Failed: reference to non-existent subpattern at offset 6
  238: 
  239: /{4,5}abc/
  240: Failed: nothing to repeat at offset 4
  241: 
  242: /(a)(b)(c)\2/I
  243: Capturing subpattern count = 3
  244: Max back reference = 2
  245: No options
  246: First char = 'a'
  247: Need char = 'c'
  248:     abcb
  249:  0: abcb
  250:  1: a
  251:  2: b
  252:  3: c
  253:     \O0abcb
  254: Matched, but too many substrings
  255:     \O3abcb
  256: Matched, but too many substrings
  257:  0: abcb
  258:     \O6abcb
  259: Matched, but too many substrings
  260:  0: abcb
  261:  1: a
  262:     \O9abcb
  263: Matched, but too many substrings
  264:  0: abcb
  265:  1: a
  266:  2: b
  267:     \O12abcb
  268:  0: abcb
  269:  1: a
  270:  2: b
  271:  3: c
  272: 
  273: /(a)bc|(a)(b)\2/I
  274: Capturing subpattern count = 3
  275: Max back reference = 2
  276: No options
  277: First char = 'a'
  278: No need char
  279:     abc
  280:  0: abc
  281:  1: a
  282:     \O0abc
  283: Matched, but too many substrings
  284:     \O3abc
  285: Matched, but too many substrings
  286:  0: abc
  287:     \O6abc
  288:  0: abc
  289:  1: a
  290:     aba
  291:  0: aba
  292:  1: <unset>
  293:  2: a
  294:  3: b
  295:     \O0aba
  296: Matched, but too many substrings
  297:     \O3aba
  298: Matched, but too many substrings
  299:  0: aba
  300:     \O6aba
  301: Matched, but too many substrings
  302:  0: aba
  303:  1: <unset>
  304:     \O9aba
  305: Matched, but too many substrings
  306:  0: aba
  307:  1: <unset>
  308:  2: a
  309:     \O12aba
  310:  0: aba
  311:  1: <unset>
  312:  2: a
  313:  3: b
  314: 
  315: /abc$/IE
  316: Capturing subpattern count = 0
  317: Options: dollar_endonly
  318: First char = 'a'
  319: Need char = 'c'
  320:     abc
  321:  0: abc
  322:     *** Failers
  323: No match
  324:     abc\n
  325: No match
  326:     abc\ndef
  327: No match
  328: 
  329: /(a)(b)(c)(d)(e)\6/
  330: Failed: reference to non-existent subpattern at offset 17
  331: 
  332: /the quick brown fox/I
  333: Capturing subpattern count = 0
  334: No options
  335: First char = 't'
  336: Need char = 'x'
  337:     the quick brown fox
  338:  0: the quick brown fox
  339:     this is a line with the quick brown fox
  340:  0: the quick brown fox
  341: 
  342: /the quick brown fox/IA
  343: Capturing subpattern count = 0
  344: Options: anchored
  345: No first char
  346: No need char
  347:     the quick brown fox
  348:  0: the quick brown fox
  349:     *** Failers
  350: No match
  351:     this is a line with the quick brown fox
  352: No match
  353: 
  354: /ab(?z)cd/
  355: Failed: unrecognized character after (? or (?- at offset 4
  356: 
  357: /^abc|def/I
  358: Capturing subpattern count = 0
  359: No options
  360: No first char
  361: No need char
  362:     abcdef
  363:  0: abc
  364:     abcdef\B
  365:  0: def
  366: 
  367: /.*((abc)$|(def))/I
  368: Capturing subpattern count = 3
  369: No options
  370: First char at start or follows newline
  371: No need char
  372:     defabc
  373:  0: defabc
  374:  1: abc
  375:  2: abc
  376:     \Zdefabc
  377:  0: def
  378:  1: def
  379:  2: <unset>
  380:  3: def
  381: 
  382: /)/
  383: Failed: unmatched parentheses at offset 0
  384: 
  385: /a[]b/
  386: Failed: missing terminating ] for character class at offset 4
  387: 
  388: /[^aeiou ]{3,}/I
  389: Capturing subpattern count = 0
  390: No options
  391: No first char
  392: No need char
  393:     co-processors, and for
  394:  0: -pr
  395: 
  396: /<.*>/I
  397: Capturing subpattern count = 0
  398: No options
  399: First char = '<'
  400: Need char = '>'
  401:     abc<def>ghi<klm>nop
  402:  0: <def>ghi<klm>
  403: 
  404: /<.*?>/I
  405: Capturing subpattern count = 0
  406: No options
  407: First char = '<'
  408: Need char = '>'
  409:     abc<def>ghi<klm>nop
  410:  0: <def>
  411: 
  412: /<.*>/IU
  413: Capturing subpattern count = 0
  414: Options: ungreedy
  415: First char = '<'
  416: Need char = '>'
  417:     abc<def>ghi<klm>nop
  418:  0: <def>
  419: 
  420: /(?U)<.*>/I
  421: Capturing subpattern count = 0
  422: Options: ungreedy
  423: First char = '<'
  424: Need char = '>'
  425:     abc<def>ghi<klm>nop
  426:  0: <def>
  427: 
  428: /<.*?>/IU
  429: Capturing subpattern count = 0
  430: Options: ungreedy
  431: First char = '<'
  432: Need char = '>'
  433:     abc<def>ghi<klm>nop
  434:  0: <def>ghi<klm>
  435: 
  436: /={3,}/IU
  437: Capturing subpattern count = 0
  438: Options: ungreedy
  439: First char = '='
  440: Need char = '='
  441:     abc========def
  442:  0: ===
  443: 
  444: /(?U)={3,}?/I
  445: Capturing subpattern count = 0
  446: Options: ungreedy
  447: First char = '='
  448: Need char = '='
  449:     abc========def
  450:  0: ========
  451: 
  452: /(?<!bar|cattle)foo/I
  453: Capturing subpattern count = 0
  454: Max lookbehind = 6
  455: No options
  456: First char = 'f'
  457: Need char = 'o'
  458:     foo
  459:  0: foo
  460:     catfoo
  461:  0: foo
  462:     *** Failers
  463: No match
  464:     the barfoo
  465: No match
  466:     and cattlefoo
  467: No match
  468: 
  469: /(?<=a+)b/
  470: Failed: lookbehind assertion is not fixed length at offset 6
  471: 
  472: /(?<=aaa|b{0,3})b/
  473: Failed: lookbehind assertion is not fixed length at offset 14
  474: 
  475: /(?<!(foo)a\1)bar/
  476: Failed: lookbehind assertion is not fixed length at offset 12
  477: 
  478: /(?i)abc/I
  479: Capturing subpattern count = 0
  480: Options: caseless
  481: First char = 'a' (caseless)
  482: Need char = 'c' (caseless)
  483: 
  484: /(a|(?m)a)/I
  485: Capturing subpattern count = 1
  486: No options
  487: First char = 'a'
  488: No need char
  489: 
  490: /(?i)^1234/I
  491: Capturing subpattern count = 0
  492: Options: anchored caseless
  493: No first char
  494: No need char
  495: 
  496: /(^b|(?i)^d)/I
  497: Capturing subpattern count = 1
  498: Options: anchored
  499: No first char
  500: No need char
  501: 
  502: /(?s).*/I
  503: Capturing subpattern count = 0
  504: May match empty string
  505: Options: anchored dotall
  506: No first char
  507: No need char
  508: 
  509: /[abcd]/IS
  510: Capturing subpattern count = 0
  511: No options
  512: No first char
  513: No need char
  514: Subject length lower bound = 1
  515: Starting byte set: a b c d 
  516: 
  517: /(?i)[abcd]/IS
  518: Capturing subpattern count = 0
  519: Options: caseless
  520: No first char
  521: No need char
  522: Subject length lower bound = 1
  523: Starting byte set: A B C D a b c d 
  524: 
  525: /(?m)[xy]|(b|c)/IS
  526: Capturing subpattern count = 1
  527: Options: multiline
  528: No first char
  529: No need char
  530: Subject length lower bound = 1
  531: Starting byte set: b c x y 
  532: 
  533: /(^a|^b)/Im
  534: Capturing subpattern count = 1
  535: Options: multiline
  536: First char at start or follows newline
  537: No need char
  538: 
  539: /(?i)(^a|^b)/Im
  540: Capturing subpattern count = 1
  541: Options: caseless multiline
  542: First char at start or follows newline
  543: No need char
  544: 
  545: /(a)(?(1)a|b|c)/
  546: Failed: conditional group contains more than two branches at offset 13
  547: 
  548: /(?(?=a)a|b|c)/
  549: Failed: conditional group contains more than two branches at offset 12
  550: 
  551: /(?(1a)/
  552: Failed: malformed number or name after (?( at offset 4
  553: 
  554: /(?(1a))/
  555: Failed: malformed number or name after (?( at offset 4
  556: 
  557: /(?(?i))/
  558: Failed: assertion expected after (?( at offset 3
  559: 
  560: /(?(abc))/
  561: Failed: reference to non-existent subpattern at offset 7
  562: 
  563: /(?(?<ab))/
  564: Failed: syntax error in subpattern name (missing terminator) at offset 7
  565: 
  566: /((?s)blah)\s+\1/I
  567: Capturing subpattern count = 1
  568: Max back reference = 1
  569: No options
  570: First char = 'b'
  571: Need char = 'h'
  572: 
  573: /((?i)blah)\s+\1/I
  574: Capturing subpattern count = 1
  575: Max back reference = 1
  576: No options
  577: First char = 'b' (caseless)
  578: Need char = 'h' (caseless)
  579: 
  580: /((?i)b)/IDZS
  581: ------------------------------------------------------------------
  582:         Bra
  583:         CBra 1
  584:      /i b
  585:         Ket
  586:         Ket
  587:         End
  588: ------------------------------------------------------------------
  589: Capturing subpattern count = 1
  590: No options
  591: First char = 'b' (caseless)
  592: No need char
  593: Subject length lower bound = 1
  594: No set of starting bytes
  595: 
  596: /(a*b|(?i:c*(?-i)d))/IS
  597: Capturing subpattern count = 1
  598: No options
  599: No first char
  600: No need char
  601: Subject length lower bound = 1
  602: Starting byte set: C a b c d 
  603: 
  604: /a$/I
  605: Capturing subpattern count = 0
  606: No options
  607: First char = 'a'
  608: No need char
  609:     a
  610:  0: a
  611:     a\n
  612:  0: a
  613:     *** Failers
  614: No match
  615:     \Za
  616: No match
  617:     \Za\n
  618: No match
  619: 
  620: /a$/Im
  621: Capturing subpattern count = 0
  622: Options: multiline
  623: First char = 'a'
  624: No need char
  625:     a
  626:  0: a
  627:     a\n
  628:  0: a
  629:     \Za\n
  630:  0: a
  631:     *** Failers
  632: No match
  633:     \Za
  634: No match
  635: 
  636: /\Aabc/Im
  637: Capturing subpattern count = 0
  638: Max lookbehind = 1
  639: Options: anchored multiline
  640: No first char
  641: No need char
  642: 
  643: /^abc/Im
  644: Capturing subpattern count = 0
  645: Options: multiline
  646: First char at start or follows newline
  647: Need char = 'c'
  648: 
  649: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
  650: Capturing subpattern count = 5
  651: Options: anchored
  652: No first char
  653: No need char
  654:   aaaaabbbbbcccccdef
  655:  0: aaaaabbbbbcccccdef
  656:  1: aaaaabbbbbcccccdef
  657:  2: aaaaa
  658:  3: b
  659:  4: bbbbccccc
  660:  5: def
  661: 
  662: /(?<=foo)[ab]/IS
  663: Capturing subpattern count = 0
  664: Max lookbehind = 3
  665: No options
  666: No first char
  667: No need char
  668: Subject length lower bound = 1
  669: Starting byte set: a b 
  670: 
  671: /(?<!foo)(alpha|omega)/IS
  672: Capturing subpattern count = 1
  673: Max lookbehind = 3
  674: No options
  675: No first char
  676: Need char = 'a'
  677: Subject length lower bound = 5
  678: Starting byte set: a o 
  679: 
  680: /(?!alphabet)[ab]/IS
  681: Capturing subpattern count = 0
  682: No options
  683: No first char
  684: No need char
  685: Subject length lower bound = 1
  686: Starting byte set: a b 
  687: 
  688: /(?<=foo\n)^bar/Im
  689: Capturing subpattern count = 0
  690: Max lookbehind = 4
  691: Contains explicit CR or LF match
  692: Options: multiline
  693: No first char
  694: Need char = 'r'
  695:     foo\nbarbar
  696:  0: bar
  697:     ***Failers
  698: No match
  699:     rhubarb
  700: No match
  701:     barbell
  702: No match
  703:     abc\nbarton
  704: No match
  705: 
  706: /^(?<=foo\n)bar/Im
  707: Capturing subpattern count = 0
  708: Max lookbehind = 4
  709: Contains explicit CR or LF match
  710: Options: multiline
  711: First char at start or follows newline
  712: Need char = 'r'
  713:     foo\nbarbar
  714:  0: bar
  715:     ***Failers
  716: No match
  717:     rhubarb
  718: No match
  719:     barbell
  720: No match
  721:     abc\nbarton
  722: No match
  723: 
  724: /(?>^abc)/Im
  725: Capturing subpattern count = 0
  726: Options: multiline
  727: First char at start or follows newline
  728: Need char = 'c'
  729:     abc
  730:  0: abc
  731:     def\nabc
  732:  0: abc
  733:     *** Failers
  734: No match
  735:     defabc
  736: No match
  737: 
  738: /(?<=ab(c+)d)ef/
  739: Failed: lookbehind assertion is not fixed length at offset 11
  740: 
  741: /(?<=ab(?<=c+)d)ef/
  742: Failed: lookbehind assertion is not fixed length at offset 12
  743: 
  744: /(?<=ab(c|de)f)g/
  745: Failed: lookbehind assertion is not fixed length at offset 13
  746: 
  747: /The next three are in testinput2 because they have variable length branches/
  748: 
  749: /(?<=bullock|donkey)-cart/I
  750: Capturing subpattern count = 0
  751: Max lookbehind = 7
  752: No options
  753: First char = '-'
  754: Need char = 't'
  755:     the bullock-cart
  756:  0: -cart
  757:     a donkey-cart race
  758:  0: -cart
  759:     *** Failers
  760: No match
  761:     cart
  762: No match
  763:     horse-and-cart
  764: No match
  765: 
  766: /(?<=ab(?i)x|y|z)/I
  767: Capturing subpattern count = 0
  768: Max lookbehind = 3
  769: May match empty string
  770: No options
  771: No first char
  772: No need char
  773: 
  774: /(?>.*)(?<=(abcd)|(xyz))/I
  775: Capturing subpattern count = 2
  776: Max lookbehind = 4
  777: May match empty string
  778: No options
  779: No first char
  780: No need char
  781:     alphabetabcd
  782:  0: alphabetabcd
  783:  1: abcd
  784:     endingxyz
  785:  0: endingxyz
  786:  1: <unset>
  787:  2: xyz
  788: 
  789: /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
  790: Capturing subpattern count = 0
  791: Max lookbehind = 4
  792: No options
  793: First char = 'Z'
  794: Need char = 'Z'
  795:     abxyZZ
  796:  0: ZZ
  797:     abXyZZ
  798:  0: ZZ
  799:     ZZZ
  800:  0: ZZ
  801:     zZZ
  802:  0: ZZ
  803:     bZZ
  804:  0: ZZ
  805:     BZZ
  806:  0: ZZ
  807:     *** Failers
  808: No match
  809:     ZZ
  810: No match
  811:     abXYZZ
  812: No match
  813:     zzz
  814: No match
  815:     bzz
  816: No match
  817: 
  818: /(?<!(foo)a)bar/I
  819: Capturing subpattern count = 1
  820: Max lookbehind = 4
  821: No options
  822: First char = 'b'
  823: Need char = 'r'
  824:     bar
  825:  0: bar
  826:     foobbar
  827:  0: bar
  828:     *** Failers
  829: No match
  830:     fooabar
  831: No match
  832: 
  833: /This one is here because Perl behaves differently; see also the following/I
  834: Capturing subpattern count = 0
  835: No options
  836: First char = 'T'
  837: Need char = 'g'
  838: 
  839: /^(a\1?){4}$/I
  840: Capturing subpattern count = 1
  841: Max back reference = 1
  842: Options: anchored
  843: No first char
  844: No need char
  845:     aaaa
  846: No match
  847:     aaaaaa
  848: No match
  849:     
  850: /Perl does not fail these two for the final subjects. Neither did PCRE until/
  851: /release 8.01. The problem is in backtracking into a subpattern that contains/
  852: No match
  853: /a recursive reference to itself. PCRE has now made these into atomic patterns./
  854: No match
  855: 
  856: /^(xa|=?\1a){2}$/
  857:     xa=xaa
  858:  0: xa=xaa
  859:  1: =xaa
  860:     ** Failers
  861: No match
  862:     xa=xaaa
  863: No match
  864: 
  865: /^(xa|=?\1a)+$/
  866:     xa=xaa
  867:  0: xa=xaa
  868:  1: =xaa
  869:     ** Failers
  870: No match
  871:     xa=xaaa
  872: No match
  873: 
  874: /These are syntax tests from Perl 5.005/I
  875: Capturing subpattern count = 0
  876: No options
  877: First char = 'T'
  878: Need char = '5'
  879: 
  880: /a[b-a]/
  881: Failed: range out of order in character class at offset 4
  882: 
  883: /a[]b/
  884: Failed: missing terminating ] for character class at offset 4
  885: 
  886: /a[/
  887: Failed: missing terminating ] for character class at offset 2
  888: 
  889: /*a/
  890: Failed: nothing to repeat at offset 0
  891: 
  892: /(*)b/
  893: Failed: nothing to repeat at offset 1
  894: 
  895: /abc)/
  896: Failed: unmatched parentheses at offset 3
  897: 
  898: /(abc/
  899: Failed: missing ) at offset 4
  900: 
  901: /a**/
  902: Failed: nothing to repeat at offset 2
  903: 
  904: /)(/
  905: Failed: unmatched parentheses at offset 0
  906: 
  907: /\1/
  908: Failed: reference to non-existent subpattern at offset 2
  909: 
  910: /\2/
  911: Failed: reference to non-existent subpattern at offset 2
  912: 
  913: /(a)|\2/
  914: Failed: reference to non-existent subpattern at offset 6
  915: 
  916: /a[b-a]/Ii
  917: Failed: range out of order in character class at offset 4
  918: 
  919: /a[]b/Ii
  920: Failed: missing terminating ] for character class at offset 4
  921: 
  922: /a[/Ii
  923: Failed: missing terminating ] for character class at offset 2
  924: 
  925: /*a/Ii
  926: Failed: nothing to repeat at offset 0
  927: 
  928: /(*)b/Ii
  929: Failed: nothing to repeat at offset 1
  930: 
  931: /abc)/Ii
  932: Failed: unmatched parentheses at offset 3
  933: 
  934: /(abc/Ii
  935: Failed: missing ) at offset 4
  936: 
  937: /a**/Ii
  938: Failed: nothing to repeat at offset 2
  939: 
  940: /)(/Ii
  941: Failed: unmatched parentheses at offset 0
  942: 
  943: /:(?:/
  944: Failed: missing ) at offset 4
  945: 
  946: /(?<%)b/
  947: Failed: unrecognized character after (?< at offset 3
  948: 
  949: /a(?{)b/
  950: Failed: unrecognized character after (? or (?- at offset 3
  951: 
  952: /a(?{{})b/
  953: Failed: unrecognized character after (? or (?- at offset 3
  954: 
  955: /a(?{}})b/
  956: Failed: unrecognized character after (? or (?- at offset 3
  957: 
  958: /a(?{"{"})b/
  959: Failed: unrecognized character after (? or (?- at offset 3
  960: 
  961: /a(?{"{"}})b/
  962: Failed: unrecognized character after (? or (?- at offset 3
  963: 
  964: /(?(1?)a|b)/
  965: Failed: malformed number or name after (?( at offset 4
  966: 
  967: /[a[:xyz:/
  968: Failed: missing terminating ] for character class at offset 8
  969: 
  970: /(?<=x+)y/
  971: Failed: lookbehind assertion is not fixed length at offset 6
  972: 
  973: /a{37,17}/
  974: Failed: numbers out of order in {} quantifier at offset 7
  975: 
  976: /abc/\
  977: Failed: \ at end of pattern at offset 4
  978: 
  979: /abc/\i
  980: Failed: \ at end of pattern at offset 4
  981: 
  982: /(a)bc(d)/I
  983: Capturing subpattern count = 2
  984: No options
  985: First char = 'a'
  986: Need char = 'd'
  987:     abcd
  988:  0: abcd
  989:  1: a
  990:  2: d
  991:     abcd\C2
  992:  0: abcd
  993:  1: a
  994:  2: d
  995:  2C d (1)
  996:     abcd\C5
  997:  0: abcd
  998:  1: a
  999:  2: d
 1000: copy substring 5 failed -7
 1001: 
 1002: /(.{20})/I
 1003: Capturing subpattern count = 1
 1004: No options
 1005: No first char
 1006: No need char
 1007:     abcdefghijklmnopqrstuvwxyz
 1008:  0: abcdefghijklmnopqrst
 1009:  1: abcdefghijklmnopqrst
 1010:     abcdefghijklmnopqrstuvwxyz\C1
 1011:  0: abcdefghijklmnopqrst
 1012:  1: abcdefghijklmnopqrst
 1013:  1C abcdefghijklmnopqrst (20)
 1014:     abcdefghijklmnopqrstuvwxyz\G1
 1015:  0: abcdefghijklmnopqrst
 1016:  1: abcdefghijklmnopqrst
 1017:  1G abcdefghijklmnopqrst (20)
 1018: 
 1019: /(.{15})/I
 1020: Capturing subpattern count = 1
 1021: No options
 1022: No first char
 1023: No need char
 1024:     abcdefghijklmnopqrstuvwxyz
 1025:  0: abcdefghijklmno
 1026:  1: abcdefghijklmno
 1027:     abcdefghijklmnopqrstuvwxyz\C1\G1
 1028:  0: abcdefghijklmno
 1029:  1: abcdefghijklmno
 1030:  1C abcdefghijklmno (15)
 1031:  1G abcdefghijklmno (15)
 1032: 
 1033: /(.{16})/I
 1034: Capturing subpattern count = 1
 1035: No options
 1036: No first char
 1037: No need char
 1038:     abcdefghijklmnopqrstuvwxyz
 1039:  0: abcdefghijklmnop
 1040:  1: abcdefghijklmnop
 1041:     abcdefghijklmnopqrstuvwxyz\C1\G1\L
 1042:  0: abcdefghijklmnop
 1043:  1: abcdefghijklmnop
 1044:  1C abcdefghijklmnop (16)
 1045:  1G abcdefghijklmnop (16)
 1046:  0L abcdefghijklmnop
 1047:  1L abcdefghijklmnop
 1048: 
 1049: /^(a|(bc))de(f)/I
 1050: Capturing subpattern count = 3
 1051: Options: anchored
 1052: No first char
 1053: No need char
 1054:     adef\G1\G2\G3\G4\L
 1055:  0: adef
 1056:  1: a
 1057:  2: <unset>
 1058:  3: f
 1059:  1G a (1)
 1060:  2G  (0)
 1061:  3G f (1)
 1062: get substring 4 failed -7
 1063:  0L adef
 1064:  1L a
 1065:  2L 
 1066:  3L f
 1067:     bcdef\G1\G2\G3\G4\L
 1068:  0: bcdef
 1069:  1: bc
 1070:  2: bc
 1071:  3: f
 1072:  1G bc (2)
 1073:  2G bc (2)
 1074:  3G f (1)
 1075: get substring 4 failed -7
 1076:  0L bcdef
 1077:  1L bc
 1078:  2L bc
 1079:  3L f
 1080:     adefghijk\C0
 1081:  0: adef
 1082:  1: a
 1083:  2: <unset>
 1084:  3: f
 1085:  0C adef (4)
 1086: 
 1087: /^abc\00def/I
 1088: Capturing subpattern count = 0
 1089: Options: anchored
 1090: No first char
 1091: No need char
 1092:     abc\00def\L\C0
 1093:  0: abc\x00def
 1094:  0C abc\x00def (7)
 1095:  0L abc
 1096: 
 1097: /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
 1098: )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
 1099: )?)?)?)?)?)?)?)?)?otherword/I
 1100: Capturing subpattern count = 8
 1101: Contains explicit CR or LF match
 1102: No options
 1103: First char = 'w'
 1104: Need char = 'd'
 1105: 
 1106: /.*X/IDZ
 1107: ------------------------------------------------------------------
 1108:         Bra
 1109:         Any*
 1110:         X
 1111:         Ket
 1112:         End
 1113: ------------------------------------------------------------------
 1114: Capturing subpattern count = 0
 1115: No options
 1116: First char at start or follows newline
 1117: Need char = 'X'
 1118: 
 1119: /.*X/IDZs
 1120: ------------------------------------------------------------------
 1121:         Bra
 1122:         AllAny*
 1123:         X
 1124:         Ket
 1125:         End
 1126: ------------------------------------------------------------------
 1127: Capturing subpattern count = 0
 1128: Options: anchored dotall
 1129: No first char
 1130: Need char = 'X'
 1131: 
 1132: /(.*X|^B)/IDZ
 1133: ------------------------------------------------------------------
 1134:         Bra
 1135:         CBra 1
 1136:         Any*
 1137:         X
 1138:         Alt
 1139:         ^
 1140:         B
 1141:         Ket
 1142:         Ket
 1143:         End
 1144: ------------------------------------------------------------------
 1145: Capturing subpattern count = 1
 1146: No options
 1147: First char at start or follows newline
 1148: No need char
 1149: 
 1150: /(.*X|^B)/IDZs
 1151: ------------------------------------------------------------------
 1152:         Bra
 1153:         CBra 1
 1154:         AllAny*
 1155:         X
 1156:         Alt
 1157:         ^
 1158:         B
 1159:         Ket
 1160:         Ket
 1161:         End
 1162: ------------------------------------------------------------------
 1163: Capturing subpattern count = 1
 1164: Options: anchored dotall
 1165: No first char
 1166: No need char
 1167: 
 1168: /(?s)(.*X|^B)/IDZ
 1169: ------------------------------------------------------------------
 1170:         Bra
 1171:         CBra 1
 1172:         AllAny*
 1173:         X
 1174:         Alt
 1175:         ^
 1176:         B
 1177:         Ket
 1178:         Ket
 1179:         End
 1180: ------------------------------------------------------------------
 1181: Capturing subpattern count = 1
 1182: Options: anchored dotall
 1183: No first char
 1184: No need char
 1185: 
 1186: /(?s:.*X|^B)/IDZ
 1187: ------------------------------------------------------------------
 1188:         Bra
 1189:         Bra
 1190:         AllAny*
 1191:         X
 1192:         Alt
 1193:         ^
 1194:         B
 1195:         Ket
 1196:         Ket
 1197:         End
 1198: ------------------------------------------------------------------
 1199: Capturing subpattern count = 0
 1200: Options: anchored
 1201: No first char
 1202: No need char
 1203: 
 1204: /\Biss\B/I+
 1205: Capturing subpattern count = 0
 1206: Max lookbehind = 1
 1207: No options
 1208: First char = 'i'
 1209: Need char = 's'
 1210:     Mississippi
 1211:  0: iss
 1212:  0+ issippi
 1213: 
 1214: /iss/IG+
 1215: Capturing subpattern count = 0
 1216: No options
 1217: First char = 'i'
 1218: Need char = 's'
 1219:     Mississippi
 1220:  0: iss
 1221:  0+ issippi
 1222:  0: iss
 1223:  0+ ippi
 1224: 
 1225: /\Biss\B/IG+
 1226: Capturing subpattern count = 0
 1227: Max lookbehind = 1
 1228: No options
 1229: First char = 'i'
 1230: Need char = 's'
 1231:     Mississippi
 1232:  0: iss
 1233:  0+ issippi
 1234: 
 1235: /\Biss\B/Ig+
 1236: Capturing subpattern count = 0
 1237: Max lookbehind = 1
 1238: No options
 1239: First char = 'i'
 1240: Need char = 's'
 1241:     Mississippi
 1242:  0: iss
 1243:  0+ issippi
 1244:  0: iss
 1245:  0+ ippi
 1246:     *** Failers
 1247: No match
 1248:     Mississippi\A
 1249: No match
 1250: 
 1251: /(?<=[Ms])iss/Ig+
 1252: Capturing subpattern count = 0
 1253: Max lookbehind = 1
 1254: No options
 1255: First char = 'i'
 1256: Need char = 's'
 1257:     Mississippi
 1258:  0: iss
 1259:  0+ issippi
 1260:  0: iss
 1261:  0+ ippi
 1262: 
 1263: /(?<=[Ms])iss/IG+
 1264: Capturing subpattern count = 0
 1265: Max lookbehind = 1
 1266: No options
 1267: First char = 'i'
 1268: Need char = 's'
 1269:     Mississippi
 1270:  0: iss
 1271:  0+ issippi
 1272: 
 1273: /^iss/Ig+
 1274: Capturing subpattern count = 0
 1275: Options: anchored
 1276: No first char
 1277: No need char
 1278:     ississippi
 1279:  0: iss
 1280:  0+ issippi
 1281: 
 1282: /.*iss/Ig+
 1283: Capturing subpattern count = 0
 1284: No options
 1285: First char at start or follows newline
 1286: Need char = 's'
 1287:     abciss\nxyzisspqr
 1288:  0: abciss
 1289:  0+ \x0axyzisspqr
 1290:  0: xyziss
 1291:  0+ pqr
 1292: 
 1293: /.i./I+g
 1294: Capturing subpattern count = 0
 1295: No options
 1296: No first char
 1297: Need char = 'i'
 1298:     Mississippi
 1299:  0: Mis
 1300:  0+ sissippi
 1301:  0: sis
 1302:  0+ sippi
 1303:  0: sip
 1304:  0+ pi
 1305:     Mississippi\A
 1306:  0: Mis
 1307:  0+ sissippi
 1308:  0: sis
 1309:  0+ sippi
 1310:  0: sip
 1311:  0+ pi
 1312:     Missouri river
 1313:  0: Mis
 1314:  0+ souri river
 1315:  0: ri 
 1316:  0+ river
 1317:  0: riv
 1318:  0+ er
 1319:     Missouri river\A
 1320:  0: Mis
 1321:  0+ souri river
 1322: 
 1323: /^.is/I+g
 1324: Capturing subpattern count = 0
 1325: Options: anchored
 1326: No first char
 1327: No need char
 1328:     Mississippi
 1329:  0: Mis
 1330:  0+ sissippi
 1331: 
 1332: /^ab\n/Ig+
 1333: Capturing subpattern count = 0
 1334: Contains explicit CR or LF match
 1335: Options: anchored
 1336: No first char
 1337: No need char
 1338:     ab\nab\ncd
 1339:  0: ab\x0a
 1340:  0+ ab\x0acd
 1341: 
 1342: /^ab\n/Img+
 1343: Capturing subpattern count = 0
 1344: Contains explicit CR or LF match
 1345: Options: multiline
 1346: First char at start or follows newline
 1347: Need char = \x0a
 1348:     ab\nab\ncd
 1349:  0: ab\x0a
 1350:  0+ ab\x0acd
 1351:  0: ab\x0a
 1352:  0+ cd
 1353: 
 1354: /abc/I
 1355: Capturing subpattern count = 0
 1356: No options
 1357: First char = 'a'
 1358: Need char = 'c'
 1359: 
 1360: /abc|bac/I
 1361: Capturing subpattern count = 0
 1362: No options
 1363: No first char
 1364: Need char = 'c'
 1365: 
 1366: /(abc|bac)/I
 1367: Capturing subpattern count = 1
 1368: No options
 1369: No first char
 1370: Need char = 'c'
 1371: 
 1372: /(abc|(c|dc))/I
 1373: Capturing subpattern count = 2
 1374: No options
 1375: No first char
 1376: Need char = 'c'
 1377: 
 1378: /(abc|(d|de)c)/I
 1379: Capturing subpattern count = 2
 1380: No options
 1381: No first char
 1382: Need char = 'c'
 1383: 
 1384: /a*/I
 1385: Capturing subpattern count = 0
 1386: May match empty string
 1387: No options
 1388: No first char
 1389: No need char
 1390: 
 1391: /a+/I
 1392: Capturing subpattern count = 0
 1393: No options
 1394: First char = 'a'
 1395: No need char
 1396: 
 1397: /(baa|a+)/I
 1398: Capturing subpattern count = 1
 1399: No options
 1400: No first char
 1401: Need char = 'a'
 1402: 
 1403: /a{0,3}/I
 1404: Capturing subpattern count = 0
 1405: May match empty string
 1406: No options
 1407: No first char
 1408: No need char
 1409: 
 1410: /baa{3,}/I
 1411: Capturing subpattern count = 0
 1412: No options
 1413: First char = 'b'
 1414: Need char = 'a'
 1415: 
 1416: /"([^\\"]+|\\.)*"/I
 1417: Capturing subpattern count = 1
 1418: No options
 1419: First char = '"'
 1420: Need char = '"'
 1421: 
 1422: /(abc|ab[cd])/I
 1423: Capturing subpattern count = 1
 1424: No options
 1425: First char = 'a'
 1426: No need char
 1427: 
 1428: /(a|.)/I
 1429: Capturing subpattern count = 1
 1430: No options
 1431: No first char
 1432: No need char
 1433: 
 1434: /a|ba|\w/I
 1435: Capturing subpattern count = 0
 1436: No options
 1437: No first char
 1438: No need char
 1439: 
 1440: /abc(?=pqr)/I
 1441: Capturing subpattern count = 0
 1442: No options
 1443: First char = 'a'
 1444: Need char = 'r'
 1445: 
 1446: /...(?<=abc)/I
 1447: Capturing subpattern count = 0
 1448: Max lookbehind = 3
 1449: No options
 1450: No first char
 1451: No need char
 1452: 
 1453: /abc(?!pqr)/I
 1454: Capturing subpattern count = 0
 1455: No options
 1456: First char = 'a'
 1457: Need char = 'c'
 1458: 
 1459: /ab./I
 1460: Capturing subpattern count = 0
 1461: No options
 1462: First char = 'a'
 1463: Need char = 'b'
 1464: 
 1465: /ab[xyz]/I
 1466: Capturing subpattern count = 0
 1467: No options
 1468: First char = 'a'
 1469: Need char = 'b'
 1470: 
 1471: /abc*/I
 1472: Capturing subpattern count = 0
 1473: No options
 1474: First char = 'a'
 1475: Need char = 'b'
 1476: 
 1477: /ab.c*/I
 1478: Capturing subpattern count = 0
 1479: No options
 1480: First char = 'a'
 1481: Need char = 'b'
 1482: 
 1483: /a.c*/I
 1484: Capturing subpattern count = 0
 1485: No options
 1486: First char = 'a'
 1487: No need char
 1488: 
 1489: /.c*/I
 1490: Capturing subpattern count = 0
 1491: No options
 1492: No first char
 1493: No need char
 1494: 
 1495: /ac*/I
 1496: Capturing subpattern count = 0
 1497: No options
 1498: First char = 'a'
 1499: No need char
 1500: 
 1501: /(a.c*|b.c*)/I
 1502: Capturing subpattern count = 1
 1503: No options
 1504: No first char
 1505: No need char
 1506: 
 1507: /a.c*|aba/I
 1508: Capturing subpattern count = 0
 1509: No options
 1510: First char = 'a'
 1511: No need char
 1512: 
 1513: /.+a/I
 1514: Capturing subpattern count = 0
 1515: No options
 1516: No first char
 1517: Need char = 'a'
 1518: 
 1519: /(?=abcda)a.*/I
 1520: Capturing subpattern count = 0
 1521: No options
 1522: First char = 'a'
 1523: Need char = 'a'
 1524: 
 1525: /(?=a)a.*/I
 1526: Capturing subpattern count = 0
 1527: No options
 1528: First char = 'a'
 1529: No need char
 1530: 
 1531: /a(b)*/I
 1532: Capturing subpattern count = 1
 1533: No options
 1534: First char = 'a'
 1535: No need char
 1536: 
 1537: /a\d*/I
 1538: Capturing subpattern count = 0
 1539: No options
 1540: First char = 'a'
 1541: No need char
 1542: 
 1543: /ab\d*/I
 1544: Capturing subpattern count = 0
 1545: No options
 1546: First char = 'a'
 1547: Need char = 'b'
 1548: 
 1549: /a(\d)*/I
 1550: Capturing subpattern count = 1
 1551: No options
 1552: First char = 'a'
 1553: No need char
 1554: 
 1555: /abcde{0,0}/I
 1556: Capturing subpattern count = 0
 1557: No options
 1558: First char = 'a'
 1559: Need char = 'd'
 1560: 
 1561: /ab\d+/I
 1562: Capturing subpattern count = 0
 1563: No options
 1564: First char = 'a'
 1565: Need char = 'b'
 1566: 
 1567: /a(?(1)b)(.)/I
 1568: Capturing subpattern count = 1
 1569: No options
 1570: First char = 'a'
 1571: No need char
 1572: 
 1573: /a(?(1)bag|big)(.)/I
 1574: Capturing subpattern count = 1
 1575: No options
 1576: First char = 'a'
 1577: Need char = 'g'
 1578: 
 1579: /a(?(1)bag|big)*(.)/I
 1580: Capturing subpattern count = 1
 1581: No options
 1582: First char = 'a'
 1583: No need char
 1584: 
 1585: /a(?(1)bag|big)+(.)/I
 1586: Capturing subpattern count = 1
 1587: No options
 1588: First char = 'a'
 1589: Need char = 'g'
 1590: 
 1591: /a(?(1)b..|b..)(.)/I
 1592: Capturing subpattern count = 1
 1593: No options
 1594: First char = 'a'
 1595: Need char = 'b'
 1596: 
 1597: /ab\d{0}e/I
 1598: Capturing subpattern count = 0
 1599: No options
 1600: First char = 'a'
 1601: Need char = 'e'
 1602: 
 1603: /a?b?/I
 1604: Capturing subpattern count = 0
 1605: May match empty string
 1606: No options
 1607: No first char
 1608: No need char
 1609:     a
 1610:  0: a
 1611:     b
 1612:  0: b
 1613:     ab
 1614:  0: ab
 1615:     \
 1616:  0: 
 1617:     *** Failers
 1618:  0: 
 1619:     \N
 1620: No match
 1621: 
 1622: /|-/I
 1623: Capturing subpattern count = 0
 1624: May match empty string
 1625: No options
 1626: No first char
 1627: No need char
 1628:     abcd
 1629:  0: 
 1630:     -abc
 1631:  0: 
 1632:     \Nab-c
 1633:  0: -
 1634:     *** Failers
 1635:  0: 
 1636:     \Nabc
 1637: No match
 1638: 
 1639: /^.?abcd/IS
 1640: Capturing subpattern count = 0
 1641: Options: anchored
 1642: No first char
 1643: Need char = 'd'
 1644: Subject length lower bound = 4
 1645: No set of starting bytes
 1646: 
 1647: /\(             # ( at start
 1648:   (?:           # Non-capturing bracket
 1649:   (?>[^()]+)    # Either a sequence of non-brackets (no backtracking)
 1650:   |             # Or
 1651:   (?R)          # Recurse - i.e. nested bracketed string
 1652:   )*            # Zero or more contents
 1653:   \)            # Closing )
 1654:   /Ix
 1655: Capturing subpattern count = 0
 1656: Options: extended
 1657: First char = '('
 1658: Need char = ')'
 1659:     (abcd)
 1660:  0: (abcd)
 1661:     (abcd)xyz
 1662:  0: (abcd)
 1663:     xyz(abcd)
 1664:  0: (abcd)
 1665:     (ab(xy)cd)pqr
 1666:  0: (ab(xy)cd)
 1667:     (ab(xycd)pqr
 1668:  0: (xycd)
 1669:     () abc ()
 1670:  0: ()
 1671:     12(abcde(fsh)xyz(foo(bar))lmno)89
 1672:  0: (abcde(fsh)xyz(foo(bar))lmno)
 1673:     *** Failers
 1674: No match
 1675:     abcd
 1676: No match
 1677:     abcd)
 1678: No match
 1679:     (abcd
 1680: No match
 1681: 
 1682: /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
 1683: Capturing subpattern count = 1
 1684: Options: extended
 1685: First char = '('
 1686: Need char = ')'
 1687:     (ab(xy)cd)pqr
 1688:  0: (ab(xy)cd)
 1689:  1: cd
 1690:     1(abcd)(x(y)z)pqr
 1691:  0: (abcd)
 1692:  1: abcd
 1693:  0: (x(y)z)
 1694:  1: z
 1695: 
 1696: /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
 1697: Capturing subpattern count = 0
 1698: Options: extended
 1699: First char = '('
 1700: Need char = ')'
 1701:     (abcd)
 1702:  0: (abcd)
 1703:     (ab(xy)cd)
 1704:  0: (xy)
 1705:     (a(b(c)d)e)
 1706:  0: (c)
 1707:     ((ab))
 1708:  0: ((ab))
 1709:     *** Failers
 1710: No match
 1711:     ()
 1712: No match
 1713: 
 1714: /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
 1715: Capturing subpattern count = 0
 1716: Options: extended
 1717: First char = '('
 1718: Need char = ')'
 1719:     ()
 1720:  0: ()
 1721:     12(abcde(fsh)xyz(foo(bar))lmno)89
 1722:  0: (fsh)
 1723: 
 1724: /\(  ( (?>[^()]+) | (?R) )* \) /Ix
 1725: Capturing subpattern count = 1
 1726: Options: extended
 1727: First char = '('
 1728: Need char = ')'
 1729:     (ab(xy)cd)
 1730:  0: (ab(xy)cd)
 1731:  1: cd
 1732: 
 1733: /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
 1734: Capturing subpattern count = 2
 1735: Options: extended
 1736: First char = '('
 1737: Need char = ')'
 1738:     (ab(xy)cd)
 1739:  0: (ab(xy)cd)
 1740:  1: ab(xy)cd
 1741:  2: cd
 1742: 
 1743: /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
 1744: Capturing subpattern count = 3
 1745: Options: extended
 1746: First char = '('
 1747: Need char = ')'
 1748:     (ab(xy)cd)
 1749:  0: (ab(xy)cd)
 1750:  1: <unset>
 1751:  2: ab(xy)cd
 1752:  3: cd
 1753:     (123ab(xy)cd)
 1754:  0: (123ab(xy)cd)
 1755:  1: 123
 1756:  2: ab(xy)cd
 1757:  3: cd
 1758: 
 1759: /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
 1760: Capturing subpattern count = 3
 1761: Options: extended
 1762: First char = '('
 1763: Need char = ')'
 1764:     (ab(xy)cd)
 1765:  0: (ab(xy)cd)
 1766:  1: ab(xy)cd
 1767:  2: <unset>
 1768:  3: cd
 1769:     (123ab(xy)cd)
 1770:  0: (123ab(xy)cd)
 1771:  1: 123ab(xy)cd
 1772:  2: 123
 1773:  3: cd
 1774: 
 1775: /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
 1776: Capturing subpattern count = 11
 1777: Options: extended
 1778: First char = '('
 1779: Need char = ')'
 1780:     (ab(xy)cd)
 1781:  0: (ab(xy)cd)
 1782:  1: ab(xy)cd
 1783:  2: ab(xy)cd
 1784:  3: ab(xy)cd
 1785:  4: ab(xy)cd
 1786:  5: ab(xy)cd
 1787:  6: ab(xy)cd
 1788:  7: ab(xy)cd
 1789:  8: ab(xy)cd
 1790:  9: ab(xy)cd
 1791: 10: ab(xy)cd
 1792: 11: cd
 1793: 
 1794: /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
 1795: Capturing subpattern count = 3
 1796: Options: extended
 1797: First char = '('
 1798: Need char = ')'
 1799:     (abcd(xyz<p>qrs)123)
 1800:  0: (abcd(xyz<p>qrs)123)
 1801:  1: abcd(xyz<p>qrs)123
 1802:  2: 123
 1803: 
 1804: /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
 1805: Capturing subpattern count = 3
 1806: Options: extended
 1807: First char = '('
 1808: Need char = ')'
 1809:     (ab(cd)ef)
 1810:  0: (ab(cd)ef)
 1811:  1: ab(cd)ef
 1812:  2: ef
 1813:  3: (cd)
 1814:     (ab(cd(ef)gh)ij)
 1815:  0: (ab(cd(ef)gh)ij)
 1816:  1: ab(cd(ef)gh)ij
 1817:  2: ij
 1818:  3: (cd(ef)gh)
 1819: 
 1820: /^[[:alnum:]]/DZ
 1821: ------------------------------------------------------------------
 1822:         Bra
 1823:         ^
 1824:         [0-9A-Za-z]
 1825:         Ket
 1826:         End
 1827: ------------------------------------------------------------------
 1828: Capturing subpattern count = 0
 1829: Options: anchored
 1830: No first char
 1831: No need char
 1832: 
 1833: /^[[:^alnum:]]/DZ
 1834: ------------------------------------------------------------------
 1835:         Bra
 1836:         ^
 1837:         [\x00-/:-@[-`{-\xff] (neg)
 1838:         Ket
 1839:         End
 1840: ------------------------------------------------------------------
 1841: Capturing subpattern count = 0
 1842: Options: anchored
 1843: No first char
 1844: No need char
 1845: 
 1846: /^[[:alpha:]]/DZ
 1847: ------------------------------------------------------------------
 1848:         Bra
 1849:         ^
 1850:         [A-Za-z]
 1851:         Ket
 1852:         End
 1853: ------------------------------------------------------------------
 1854: Capturing subpattern count = 0
 1855: Options: anchored
 1856: No first char
 1857: No need char
 1858: 
 1859: /^[[:^alpha:]]/DZ
 1860: ------------------------------------------------------------------
 1861:         Bra
 1862:         ^
 1863:         [\x00-@[-`{-\xff] (neg)
 1864:         Ket
 1865:         End
 1866: ------------------------------------------------------------------
 1867: Capturing subpattern count = 0
 1868: Options: anchored
 1869: No first char
 1870: No need char
 1871: 
 1872: /[_[:alpha:]]/IS
 1873: Capturing subpattern count = 0
 1874: No options
 1875: No first char
 1876: No need char
 1877: Subject length lower bound = 1
 1878: Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 
 1879:   _ a b c d e f g h i j k l m n o p q r s t u v w x y z 
 1880: 
 1881: /^[[:ascii:]]/DZ
 1882: ------------------------------------------------------------------
 1883:         Bra
 1884:         ^
 1885:         [\x00-\x7f]
 1886:         Ket
 1887:         End
 1888: ------------------------------------------------------------------
 1889: Capturing subpattern count = 0
 1890: Options: anchored
 1891: No first char
 1892: No need char
 1893: 
 1894: /^[[:^ascii:]]/DZ
 1895: ------------------------------------------------------------------
 1896:         Bra
 1897:         ^
 1898:         [\x80-\xff] (neg)
 1899:         Ket
 1900:         End
 1901: ------------------------------------------------------------------
 1902: Capturing subpattern count = 0
 1903: Options: anchored
 1904: No first char
 1905: No need char
 1906: 
 1907: /^[[:blank:]]/DZ
 1908: ------------------------------------------------------------------
 1909:         Bra
 1910:         ^
 1911:         [\x09 ]
 1912:         Ket
 1913:         End
 1914: ------------------------------------------------------------------
 1915: Capturing subpattern count = 0
 1916: Options: anchored
 1917: No first char
 1918: No need char
 1919: 
 1920: /^[[:^blank:]]/DZ
 1921: ------------------------------------------------------------------
 1922:         Bra
 1923:         ^
 1924:         [\x00-\x08\x0a-\x1f!-\xff] (neg)
 1925:         Ket
 1926:         End
 1927: ------------------------------------------------------------------
 1928: Capturing subpattern count = 0
 1929: Options: anchored
 1930: No first char
 1931: No need char
 1932: 
 1933: /[\n\x0b\x0c\x0d[:blank:]]/IS
 1934: Capturing subpattern count = 0
 1935: Contains explicit CR or LF match
 1936: No options
 1937: No first char
 1938: No need char
 1939: Subject length lower bound = 1
 1940: Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 
 1941: 
 1942: /^[[:cntrl:]]/DZ
 1943: ------------------------------------------------------------------
 1944:         Bra
 1945:         ^
 1946:         [\x00-\x1f\x7f]
 1947:         Ket
 1948:         End
 1949: ------------------------------------------------------------------
 1950: Capturing subpattern count = 0
 1951: Options: anchored
 1952: No first char
 1953: No need char
 1954: 
 1955: /^[[:digit:]]/DZ
 1956: ------------------------------------------------------------------
 1957:         Bra
 1958:         ^
 1959:         [0-9]
 1960:         Ket
 1961:         End
 1962: ------------------------------------------------------------------
 1963: Capturing subpattern count = 0
 1964: Options: anchored
 1965: No first char
 1966: No need char
 1967: 
 1968: /^[[:graph:]]/DZ
 1969: ------------------------------------------------------------------
 1970:         Bra
 1971:         ^
 1972:         [!-~]
 1973:         Ket
 1974:         End
 1975: ------------------------------------------------------------------
 1976: Capturing subpattern count = 0
 1977: Options: anchored
 1978: No first char
 1979: No need char
 1980: 
 1981: /^[[:lower:]]/DZ
 1982: ------------------------------------------------------------------
 1983:         Bra
 1984:         ^
 1985:         [a-z]
 1986:         Ket
 1987:         End
 1988: ------------------------------------------------------------------
 1989: Capturing subpattern count = 0
 1990: Options: anchored
 1991: No first char
 1992: No need char
 1993: 
 1994: /^[[:print:]]/DZ
 1995: ------------------------------------------------------------------
 1996:         Bra
 1997:         ^
 1998:         [ -~]
 1999:         Ket
 2000:         End
 2001: ------------------------------------------------------------------
 2002: Capturing subpattern count = 0
 2003: Options: anchored
 2004: No first char
 2005: No need char
 2006: 
 2007: /^[[:punct:]]/DZ
 2008: ------------------------------------------------------------------
 2009:         Bra
 2010:         ^
 2011:         [!-/:-@[-`{-~]
 2012:         Ket
 2013:         End
 2014: ------------------------------------------------------------------
 2015: Capturing subpattern count = 0
 2016: Options: anchored
 2017: No first char
 2018: No need char
 2019: 
 2020: /^[[:space:]]/DZ
 2021: ------------------------------------------------------------------
 2022:         Bra
 2023:         ^
 2024:         [\x09-\x0d ]
 2025:         Ket
 2026:         End
 2027: ------------------------------------------------------------------
 2028: Capturing subpattern count = 0
 2029: Options: anchored
 2030: No first char
 2031: No need char
 2032: 
 2033: /^[[:upper:]]/DZ
 2034: ------------------------------------------------------------------
 2035:         Bra
 2036:         ^
 2037:         [A-Z]
 2038:         Ket
 2039:         End
 2040: ------------------------------------------------------------------
 2041: Capturing subpattern count = 0
 2042: Options: anchored
 2043: No first char
 2044: No need char
 2045: 
 2046: /^[[:xdigit:]]/DZ
 2047: ------------------------------------------------------------------
 2048:         Bra
 2049:         ^
 2050:         [0-9A-Fa-f]
 2051:         Ket
 2052:         End
 2053: ------------------------------------------------------------------
 2054: Capturing subpattern count = 0
 2055: Options: anchored
 2056: No first char
 2057: No need char
 2058: 
 2059: /^[[:word:]]/DZ
 2060: ------------------------------------------------------------------
 2061:         Bra
 2062:         ^
 2063:         [0-9A-Z_a-z]
 2064:         Ket
 2065:         End
 2066: ------------------------------------------------------------------
 2067: Capturing subpattern count = 0
 2068: Options: anchored
 2069: No first char
 2070: No need char
 2071: 
 2072: /^[[:^cntrl:]]/DZ
 2073: ------------------------------------------------------------------
 2074:         Bra
 2075:         ^
 2076:         [ -~\x80-\xff] (neg)
 2077:         Ket
 2078:         End
 2079: ------------------------------------------------------------------
 2080: Capturing subpattern count = 0
 2081: Options: anchored
 2082: No first char
 2083: No need char
 2084: 
 2085: /^[12[:^digit:]]/DZ
 2086: ------------------------------------------------------------------
 2087:         Bra
 2088:         ^
 2089:         [\x00-/12:-\xff] (neg)
 2090:         Ket
 2091:         End
 2092: ------------------------------------------------------------------
 2093: Capturing subpattern count = 0
 2094: Options: anchored
 2095: No first char
 2096: No need char
 2097: 
 2098: /^[[:^blank:]]/DZ
 2099: ------------------------------------------------------------------
 2100:         Bra
 2101:         ^
 2102:         [\x00-\x08\x0a-\x1f!-\xff] (neg)
 2103:         Ket
 2104:         End
 2105: ------------------------------------------------------------------
 2106: Capturing subpattern count = 0
 2107: Options: anchored
 2108: No first char
 2109: No need char
 2110: 
 2111: /[01[:alpha:]%]/DZ
 2112: ------------------------------------------------------------------
 2113:         Bra
 2114:         [%01A-Za-z]
 2115:         Ket
 2116:         End
 2117: ------------------------------------------------------------------
 2118: Capturing subpattern count = 0
 2119: No options
 2120: No first char
 2121: No need char
 2122: 
 2123: /[[.ch.]]/I
 2124: Failed: POSIX collating elements are not supported at offset 1
 2125: 
 2126: /[[=ch=]]/I
 2127: Failed: POSIX collating elements are not supported at offset 1
 2128: 
 2129: /[[:rhubarb:]]/I
 2130: Failed: unknown POSIX class name at offset 3
 2131: 
 2132: /[[:upper:]]/Ii
 2133: Capturing subpattern count = 0
 2134: Options: caseless
 2135: No first char
 2136: No need char
 2137:     A
 2138:  0: A
 2139:     a
 2140:  0: a
 2141: 
 2142: /[[:lower:]]/Ii
 2143: Capturing subpattern count = 0
 2144: Options: caseless
 2145: No first char
 2146: No need char
 2147:     A
 2148:  0: A
 2149:     a
 2150:  0: a
 2151: 
 2152: /((?-i)[[:lower:]])[[:lower:]]/Ii
 2153: Capturing subpattern count = 1
 2154: Options: caseless
 2155: No first char
 2156: No need char
 2157:     ab
 2158:  0: ab
 2159:  1: a
 2160:     aB
 2161:  0: aB
 2162:  1: a
 2163:     *** Failers
 2164:  0: ai
 2165:  1: a
 2166:     Ab
 2167: No match
 2168:     AB
 2169: No match
 2170: 
 2171: /[\200-\110]/I
 2172: Failed: range out of order in character class at offset 9
 2173: 
 2174: /^(?(0)f|b)oo/I
 2175: Failed: invalid condition (?(0) at offset 6
 2176: 
 2177: /This one's here because of the large output vector needed/I
 2178: Capturing subpattern count = 0
 2179: No options
 2180: First char = 'T'
 2181: Need char = 'd'
 2182: 
 2183: /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
 2184: Capturing subpattern count = 271
 2185: Max back reference = 270
 2186: No options
 2187: No first char
 2188: No need char
 2189:     \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
 2190:  0: 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
 2191:  1: 1 
 2192:  2: 2 
 2193:  3: 3 
 2194:  4: 4 
 2195:  5: 5 
 2196:  6: 6 
 2197:  7: 7 
 2198:  8: 8 
 2199:  9: 9 
 2200: 10: 10 
 2201: 11: 11 
 2202: 12: 12 
 2203: 13: 13 
 2204: 14: 14 
 2205: 15: 15 
 2206: 16: 16 
 2207: 17: 17 
 2208: 18: 18 
 2209: 19: 19 
 2210: 20: 20 
 2211: 21: 21 
 2212: 22: 22 
 2213: 23: 23 
 2214: 24: 24 
 2215: 25: 25 
 2216: 26: 26 
 2217: 27: 27 
 2218: 28: 28 
 2219: 29: 29 
 2220: 30: 30 
 2221: 31: 31 
 2222: 32: 32 
 2223: 33: 33 
 2224: 34: 34 
 2225: 35: 35 
 2226: 36: 36 
 2227: 37: 37 
 2228: 38: 38 
 2229: 39: 39 
 2230: 40: 40 
 2231: 41: 41 
 2232: 42: 42 
 2233: 43: 43 
 2234: 44: 44 
 2235: 45: 45 
 2236: 46: 46 
 2237: 47: 47 
 2238: 48: 48 
 2239: 49: 49 
 2240: 50: 50 
 2241: 51: 51 
 2242: 52: 52 
 2243: 53: 53 
 2244: 54: 54 
 2245: 55: 55 
 2246: 56: 56 
 2247: 57: 57 
 2248: 58: 58 
 2249: 59: 59 
 2250: 60: 60 
 2251: 61: 61 
 2252: 62: 62 
 2253: 63: 63 
 2254: 64: 64 
 2255: 65: 65 
 2256: 66: 66 
 2257: 67: 67 
 2258: 68: 68 
 2259: 69: 69 
 2260: 70: 70 
 2261: 71: 71 
 2262: 72: 72 
 2263: 73: 73 
 2264: 74: 74 
 2265: 75: 75 
 2266: 76: 76 
 2267: 77: 77 
 2268: 78: 78 
 2269: 79: 79 
 2270: 80: 80 
 2271: 81: 81 
 2272: 82: 82 
 2273: 83: 83 
 2274: 84: 84 
 2275: 85: 85 
 2276: 86: 86 
 2277: 87: 87 
 2278: 88: 88 
 2279: 89: 89 
 2280: 90: 90 
 2281: 91: 91 
 2282: 92: 92 
 2283: 93: 93 
 2284: 94: 94 
 2285: 95: 95 
 2286: 96: 96 
 2287: 97: 97 
 2288: 98: 98 
 2289: 99: 99 
 2290: 100: 100 
 2291: 101: 101 
 2292: 102: 102 
 2293: 103: 103 
 2294: 104: 104 
 2295: 105: 105 
 2296: 106: 106 
 2297: 107: 107 
 2298: 108: 108 
 2299: 109: 109 
 2300: 110: 110 
 2301: 111: 111 
 2302: 112: 112 
 2303: 113: 113 
 2304: 114: 114 
 2305: 115: 115 
 2306: 116: 116 
 2307: 117: 117 
 2308: 118: 118 
 2309: 119: 119 
 2310: 120: 120 
 2311: 121: 121 
 2312: 122: 122 
 2313: 123: 123 
 2314: 124: 124 
 2315: 125: 125 
 2316: 126: 126 
 2317: 127: 127 
 2318: 128: 128 
 2319: 129: 129 
 2320: 130: 130 
 2321: 131: 131 
 2322: 132: 132 
 2323: 133: 133 
 2324: 134: 134 
 2325: 135: 135 
 2326: 136: 136 
 2327: 137: 137 
 2328: 138: 138 
 2329: 139: 139 
 2330: 140: 140 
 2331: 141: 141 
 2332: 142: 142 
 2333: 143: 143 
 2334: 144: 144 
 2335: 145: 145 
 2336: 146: 146 
 2337: 147: 147 
 2338: 148: 148 
 2339: 149: 149 
 2340: 150: 150 
 2341: 151: 151 
 2342: 152: 152 
 2343: 153: 153 
 2344: 154: 154 
 2345: 155: 155 
 2346: 156: 156 
 2347: 157: 157 
 2348: 158: 158 
 2349: 159: 159 
 2350: 160: 160 
 2351: 161: 161 
 2352: 162: 162 
 2353: 163: 163 
 2354: 164: 164 
 2355: 165: 165 
 2356: 166: 166 
 2357: 167: 167 
 2358: 168: 168 
 2359: 169: 169 
 2360: 170: 170 
 2361: 171: 171 
 2362: 172: 172 
 2363: 173: 173 
 2364: 174: 174 
 2365: 175: 175 
 2366: 176: 176 
 2367: 177: 177 
 2368: 178: 178 
 2369: 179: 179 
 2370: 180: 180 
 2371: 181: 181 
 2372: 182: 182 
 2373: 183: 183 
 2374: 184: 184 
 2375: 185: 185 
 2376: 186: 186 
 2377: 187: 187 
 2378: 188: 188 
 2379: 189: 189 
 2380: 190: 190 
 2381: 191: 191 
 2382: 192: 192 
 2383: 193: 193 
 2384: 194: 194 
 2385: 195: 195 
 2386: 196: 196 
 2387: 197: 197 
 2388: 198: 198 
 2389: 199: 199 
 2390: 200: 200 
 2391: 201: 201 
 2392: 202: 202 
 2393: 203: 203 
 2394: 204: 204 
 2395: 205: 205 
 2396: 206: 206 
 2397: 207: 207 
 2398: 208: 208 
 2399: 209: 209 
 2400: 210: 210 
 2401: 211: 211 
 2402: 212: 212 
 2403: 213: 213 
 2404: 214: 214 
 2405: 215: 215 
 2406: 216: 216 
 2407: 217: 217 
 2408: 218: 218 
 2409: 219: 219 
 2410: 220: 220 
 2411: 221: 221 
 2412: 222: 222 
 2413: 223: 223 
 2414: 224: 224 
 2415: 225: 225 
 2416: 226: 226 
 2417: 227: 227 
 2418: 228: 228 
 2419: 229: 229 
 2420: 230: 230 
 2421: 231: 231 
 2422: 232: 232 
 2423: 233: 233 
 2424: 234: 234 
 2425: 235: 235 
 2426: 236: 236 
 2427: 237: 237 
 2428: 238: 238 
 2429: 239: 239 
 2430: 240: 240 
 2431: 241: 241 
 2432: 242: 242 
 2433: 243: 243 
 2434: 244: 244 
 2435: 245: 245 
 2436: 246: 246 
 2437: 247: 247 
 2438: 248: 248 
 2439: 249: 249 
 2440: 250: 250 
 2441: 251: 251 
 2442: 252: 252 
 2443: 253: 253 
 2444: 254: 254 
 2445: 255: 255 
 2446: 256: 256 
 2447: 257: 257 
 2448: 258: 258 
 2449: 259: 259 
 2450: 260: 260 
 2451: 261: 261 
 2452: 262: 262 
 2453: 263: 263 
 2454: 264: 264 
 2455: 265: 265 
 2456: 266: 266 
 2457: 267: 267 
 2458: 268: 268 
 2459: 269: 269 
 2460: 270: ABC
 2461: 271: ABC
 2462: 
 2463: /This one's here because Perl does this differently and PCRE can't at present/I
 2464: Capturing subpattern count = 0
 2465: No options
 2466: First char = 'T'
 2467: Need char = 't'
 2468: 
 2469: /(main(O)?)+/I
 2470: Capturing subpattern count = 2
 2471: No options
 2472: First char = 'm'
 2473: Need char = 'n'
 2474:     mainmain
 2475:  0: mainmain
 2476:  1: main
 2477:     mainOmain
 2478:  0: mainOmain
 2479:  1: main
 2480:  2: O
 2481: 
 2482: /These are all cases where Perl does it differently (nested captures)/I
 2483: Capturing subpattern count = 1
 2484: No options
 2485: First char = 'T'
 2486: Need char = 's'
 2487: 
 2488: /^(a(b)?)+$/I
 2489: Capturing subpattern count = 2
 2490: Options: anchored
 2491: No first char
 2492: No need char
 2493:     aba
 2494:  0: aba
 2495:  1: a
 2496:  2: b
 2497: 
 2498: /^(aa(bb)?)+$/I
 2499: Capturing subpattern count = 2
 2500: Options: anchored
 2501: No first char
 2502: No need char
 2503:     aabbaa
 2504:  0: aabbaa
 2505:  1: aa
 2506:  2: bb
 2507: 
 2508: /^(aa|aa(bb))+$/I
 2509: Capturing subpattern count = 2
 2510: Options: anchored
 2511: No first char
 2512: No need char
 2513:     aabbaa
 2514:  0: aabbaa
 2515:  1: aa
 2516:  2: bb
 2517: 
 2518: /^(aa(bb)??)+$/I
 2519: Capturing subpattern count = 2
 2520: Options: anchored
 2521: No first char
 2522: No need char
 2523:     aabbaa
 2524:  0: aabbaa
 2525:  1: aa
 2526:  2: bb
 2527: 
 2528: /^(?:aa(bb)?)+$/I
 2529: Capturing subpattern count = 1
 2530: Options: anchored
 2531: No first char
 2532: No need char
 2533:     aabbaa
 2534:  0: aabbaa
 2535:  1: bb
 2536: 
 2537: /^(aa(b(b))?)+$/I
 2538: Capturing subpattern count = 3
 2539: Options: anchored
 2540: No first char
 2541: No need char
 2542:     aabbaa
 2543:  0: aabbaa
 2544:  1: aa
 2545:  2: bb
 2546:  3: b
 2547: 
 2548: /^(?:aa(b(b))?)+$/I
 2549: Capturing subpattern count = 2
 2550: Options: anchored
 2551: No first char
 2552: No need char
 2553:     aabbaa
 2554:  0: aabbaa
 2555:  1: bb
 2556:  2: b
 2557: 
 2558: /^(?:aa(b(?:b))?)+$/I
 2559: Capturing subpattern count = 1
 2560: Options: anchored
 2561: No first char
 2562: No need char
 2563:     aabbaa
 2564:  0: aabbaa
 2565:  1: bb
 2566: 
 2567: /^(?:aa(bb(?:b))?)+$/I
 2568: Capturing subpattern count = 1
 2569: Options: anchored
 2570: No first char
 2571: No need char
 2572:     aabbbaa
 2573:  0: aabbbaa
 2574:  1: bbb
 2575: 
 2576: /^(?:aa(b(?:bb))?)+$/I
 2577: Capturing subpattern count = 1
 2578: Options: anchored
 2579: No first char
 2580: No need char
 2581:     aabbbaa
 2582:  0: aabbbaa
 2583:  1: bbb
 2584: 
 2585: /^(?:aa(?:b(b))?)+$/I
 2586: Capturing subpattern count = 1
 2587: Options: anchored
 2588: No first char
 2589: No need char
 2590:     aabbaa
 2591:  0: aabbaa
 2592:  1: b
 2593: 
 2594: /^(?:aa(?:b(bb))?)+$/I
 2595: Capturing subpattern count = 1
 2596: Options: anchored
 2597: No first char
 2598: No need char
 2599:     aabbbaa
 2600:  0: aabbbaa
 2601:  1: bb
 2602: 
 2603: /^(aa(b(bb))?)+$/I
 2604: Capturing subpattern count = 3
 2605: Options: anchored
 2606: No first char
 2607: No need char
 2608:     aabbbaa
 2609:  0: aabbbaa
 2610:  1: aa
 2611:  2: bbb
 2612:  3: bb
 2613: 
 2614: /^(aa(bb(bb))?)+$/I
 2615: Capturing subpattern count = 3
 2616: Options: anchored
 2617: No first char
 2618: No need char
 2619:     aabbbbaa
 2620:  0: aabbbbaa
 2621:  1: aa
 2622:  2: bbbb
 2623:  3: bb
 2624: 
 2625: /--------------------------------------------------------------------/I
 2626: Capturing subpattern count = 0
 2627: No options
 2628: First char = '-'
 2629: Need char = '-'
 2630: 
 2631: /#/IxDZ
 2632: ------------------------------------------------------------------
 2633:         Bra
 2634:         Ket
 2635:         End
 2636: ------------------------------------------------------------------
 2637: Capturing subpattern count = 0
 2638: May match empty string
 2639: Options: extended
 2640: No first char
 2641: No need char
 2642: 
 2643: /a#/IxDZ
 2644: ------------------------------------------------------------------
 2645:         Bra
 2646:         a
 2647:         Ket
 2648:         End
 2649: ------------------------------------------------------------------
 2650: Capturing subpattern count = 0
 2651: Options: extended
 2652: First char = 'a'
 2653: No need char
 2654: 
 2655: /[\s]/DZ
 2656: ------------------------------------------------------------------
 2657:         Bra
 2658:         [\x09-\x0d ]
 2659:         Ket
 2660:         End
 2661: ------------------------------------------------------------------
 2662: Capturing subpattern count = 0
 2663: No options
 2664: No first char
 2665: No need char
 2666: 
 2667: /[\S]/DZ
 2668: ------------------------------------------------------------------
 2669:         Bra
 2670:         [\x00-\x08\x0e-\x1f!-\xff] (neg)
 2671:         Ket
 2672:         End
 2673: ------------------------------------------------------------------
 2674: Capturing subpattern count = 0
 2675: No options
 2676: No first char
 2677: No need char
 2678: 
 2679: /a(?i)b/DZ
 2680: ------------------------------------------------------------------
 2681:         Bra
 2682:         a
 2683:      /i b
 2684:         Ket
 2685:         End
 2686: ------------------------------------------------------------------
 2687: Capturing subpattern count = 0
 2688: No options
 2689: First char = 'a'
 2690: Need char = 'b' (caseless)
 2691:     ab
 2692:  0: ab
 2693:     aB
 2694:  0: aB
 2695:     *** Failers
 2696: No match
 2697:     AB
 2698: No match
 2699: 
 2700: /(a(?i)b)/DZ
 2701: ------------------------------------------------------------------
 2702:         Bra
 2703:         CBra 1
 2704:         a
 2705:      /i b
 2706:         Ket
 2707:         Ket
 2708:         End
 2709: ------------------------------------------------------------------
 2710: Capturing subpattern count = 1
 2711: No options
 2712: First char = 'a'
 2713: Need char = 'b' (caseless)
 2714:     ab
 2715:  0: ab
 2716:  1: ab
 2717:     aB
 2718:  0: aB
 2719:  1: aB
 2720:     *** Failers
 2721: No match
 2722:     AB
 2723: No match
 2724: 
 2725: /   (?i)abc/IxDZ
 2726: ------------------------------------------------------------------
 2727:         Bra
 2728:      /i abc
 2729:         Ket
 2730:         End
 2731: ------------------------------------------------------------------
 2732: Capturing subpattern count = 0
 2733: Options: caseless extended
 2734: First char = 'a' (caseless)
 2735: Need char = 'c' (caseless)
 2736: 
 2737: /#this is a comment
 2738:   (?i)abc/IxDZ
 2739: ------------------------------------------------------------------
 2740:         Bra
 2741:      /i abc
 2742:         Ket
 2743:         End
 2744: ------------------------------------------------------------------
 2745: Capturing subpattern count = 0
 2746: Options: caseless extended
 2747: First char = 'a' (caseless)
 2748: Need char = 'c' (caseless)
 2749: 
 2750: /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
 2751: ------------------------------------------------------------------
 2752:         Bra
 2753:         123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
 2754:         Ket
 2755:         End
 2756: ------------------------------------------------------------------
 2757: Capturing subpattern count = 0
 2758: No options
 2759: First char = '1'
 2760: Need char = '0'
 2761: 
 2762: /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
 2763: ------------------------------------------------------------------
 2764:         Bra
 2765:         123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
 2766:         Ket
 2767:         End
 2768: ------------------------------------------------------------------
 2769: Capturing subpattern count = 0
 2770: No options
 2771: First char = '1'
 2772: Need char = '0'
 2773: 
 2774: /\Q\E/DZ
 2775: ------------------------------------------------------------------
 2776:         Bra
 2777:         Ket
 2778:         End
 2779: ------------------------------------------------------------------
 2780: Capturing subpattern count = 0
 2781: May match empty string
 2782: No options
 2783: No first char
 2784: No need char
 2785:     \
 2786:  0: 
 2787: 
 2788: /\Q\Ex/DZ
 2789: ------------------------------------------------------------------
 2790:         Bra
 2791:         x
 2792:         Ket
 2793:         End
 2794: ------------------------------------------------------------------
 2795: Capturing subpattern count = 0
 2796: No options
 2797: First char = 'x'
 2798: No need char
 2799: 
 2800: / \Q\E/DZ
 2801: ------------------------------------------------------------------
 2802:         Bra
 2803:          
 2804:         Ket
 2805:         End
 2806: ------------------------------------------------------------------
 2807: Capturing subpattern count = 0
 2808: No options
 2809: First char = ' '
 2810: No need char
 2811: 
 2812: /a\Q\E/DZ
 2813: ------------------------------------------------------------------
 2814:         Bra
 2815:         a
 2816:         Ket
 2817:         End
 2818: ------------------------------------------------------------------
 2819: Capturing subpattern count = 0
 2820: No options
 2821: First char = 'a'
 2822: No need char
 2823:   abc
 2824:  0: a
 2825:   bca
 2826:  0: a
 2827:   bac
 2828:  0: a
 2829: 
 2830: /a\Q\Eb/DZ
 2831: ------------------------------------------------------------------
 2832:         Bra
 2833:         ab
 2834:         Ket
 2835:         End
 2836: ------------------------------------------------------------------
 2837: Capturing subpattern count = 0
 2838: No options
 2839: First char = 'a'
 2840: Need char = 'b'
 2841:   abc
 2842:  0: ab
 2843: 
 2844: /\Q\Eabc/DZ
 2845: ------------------------------------------------------------------
 2846:         Bra
 2847:         abc
 2848:         Ket
 2849:         End
 2850: ------------------------------------------------------------------
 2851: Capturing subpattern count = 0
 2852: No options
 2853: First char = 'a'
 2854: Need char = 'c'
 2855: 
 2856: /x*+\w/DZ
 2857: ------------------------------------------------------------------
 2858:         Bra
 2859:         x*+
 2860:         \w
 2861:         Ket
 2862:         End
 2863: ------------------------------------------------------------------
 2864: Capturing subpattern count = 0
 2865: No options
 2866: No first char
 2867: No need char
 2868:     *** Failers
 2869:  0: F
 2870:     xxxxx
 2871: No match
 2872: 
 2873: /x?+/DZ
 2874: ------------------------------------------------------------------
 2875:         Bra
 2876:         x?+
 2877:         Ket
 2878:         End
 2879: ------------------------------------------------------------------
 2880: Capturing subpattern count = 0
 2881: May match empty string
 2882: No options
 2883: No first char
 2884: No need char
 2885: 
 2886: /x++/DZ
 2887: ------------------------------------------------------------------
 2888:         Bra
 2889:         x++
 2890:         Ket
 2891:         End
 2892: ------------------------------------------------------------------
 2893: Capturing subpattern count = 0
 2894: No options
 2895: First char = 'x'
 2896: No need char
 2897: 
 2898: /x{1,3}+/BZO
 2899: ------------------------------------------------------------------
 2900:         Bra
 2901:         x
 2902:         x{0,2}+
 2903:         Ket
 2904:         End
 2905: ------------------------------------------------------------------
 2906: 
 2907: /x{1,3}+/BZOi
 2908: ------------------------------------------------------------------
 2909:         Bra
 2910:      /i x
 2911:      /i x{0,2}+
 2912:         Ket
 2913:         End
 2914: ------------------------------------------------------------------
 2915: 
 2916: /[^x]{1,3}+/BZO
 2917: ------------------------------------------------------------------
 2918:         Bra
 2919:         [^x]
 2920:         [^x]{0,2}+
 2921:         Ket
 2922:         End
 2923: ------------------------------------------------------------------
 2924: 
 2925: /[^x]{1,3}+/BZOi
 2926: ------------------------------------------------------------------
 2927:         Bra
 2928:      /i [^x]
 2929:      /i [^x]{0,2}+
 2930:         Ket
 2931:         End
 2932: ------------------------------------------------------------------
 2933: 
 2934: /(x)*+/DZ
 2935: ------------------------------------------------------------------
 2936:         Bra
 2937:         Braposzero
 2938:         CBraPos 1
 2939:         x
 2940:         KetRpos
 2941:         Ket
 2942:         End
 2943: ------------------------------------------------------------------
 2944: Capturing subpattern count = 1
 2945: May match empty string
 2946: No options
 2947: No first char
 2948: No need char
 2949: 
 2950: /^(\w++|\s++)*$/I
 2951: Capturing subpattern count = 1
 2952: May match empty string
 2953: Options: anchored
 2954: No first char
 2955: No need char
 2956:     now is the time for all good men to come to the aid of the party
 2957:  0: now is the time for all good men to come to the aid of the party
 2958:  1: party
 2959:     *** Failers
 2960: No match
 2961:     this is not a line with only words and spaces!
 2962: No match
 2963: 
 2964: /(\d++)(\w)/I
 2965: Capturing subpattern count = 2
 2966: No options
 2967: No first char
 2968: No need char
 2969:     12345a
 2970:  0: 12345a
 2971:  1: 12345
 2972:  2: a
 2973:     *** Failers
 2974: No match
 2975:     12345+
 2976: No match
 2977: 
 2978: /a++b/I
 2979: Capturing subpattern count = 0
 2980: No options
 2981: First char = 'a'
 2982: Need char = 'b'
 2983:     aaab
 2984:  0: aaab
 2985: 
 2986: /(a++b)/I
 2987: Capturing subpattern count = 1
 2988: No options
 2989: First char = 'a'
 2990: Need char = 'b'
 2991:     aaab
 2992:  0: aaab
 2993:  1: aaab
 2994: 
 2995: /(a++)b/I
 2996: Capturing subpattern count = 1
 2997: No options
 2998: First char = 'a'
 2999: Need char = 'b'
 3000:     aaab
 3001:  0: aaab
 3002:  1: aaa
 3003: 
 3004: /([^()]++|\([^()]*\))+/I
 3005: Capturing subpattern count = 1
 3006: No options
 3007: No first char
 3008: No need char
 3009:     ((abc(ade)ufh()()x
 3010:  0: abc(ade)ufh()()x
 3011:  1: x
 3012: 
 3013: /\(([^()]++|\([^()]+\))+\)/I
 3014: Capturing subpattern count = 1
 3015: No options
 3016: First char = '('
 3017: Need char = ')'
 3018:     (abc)
 3019:  0: (abc)
 3020:  1: abc
 3021:     (abc(def)xyz)
 3022:  0: (abc(def)xyz)
 3023:  1: xyz
 3024:     *** Failers
 3025: No match
 3026:     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 3027: No match
 3028: 
 3029: /(abc){1,3}+/DZ
 3030: ------------------------------------------------------------------
 3031:         Bra
 3032:         Once
 3033:         CBra 1
 3034:         abc
 3035:         Ket
 3036:         Brazero
 3037:         Bra
 3038:         CBra 1
 3039:         abc
 3040:         Ket
 3041:         Brazero
 3042:         CBra 1
 3043:         abc
 3044:         Ket
 3045:         Ket
 3046:         Ket
 3047:         Ket
 3048:         End
 3049: ------------------------------------------------------------------
 3050: Capturing subpattern count = 1
 3051: No options
 3052: First char = 'a'
 3053: Need char = 'c'
 3054: 
 3055: /a+?+/I
 3056: Failed: nothing to repeat at offset 3
 3057: 
 3058: /a{2,3}?+b/I
 3059: Failed: nothing to repeat at offset 7
 3060: 
 3061: /(?U)a+?+/I
 3062: Failed: nothing to repeat at offset 7
 3063: 
 3064: /a{2,3}?+b/IU
 3065: Failed: nothing to repeat at offset 7
 3066: 
 3067: /x(?U)a++b/DZ
 3068: ------------------------------------------------------------------
 3069:         Bra
 3070:         x
 3071:         a++
 3072:         b
 3073:         Ket
 3074:         End
 3075: ------------------------------------------------------------------
 3076: Capturing subpattern count = 0
 3077: No options
 3078: First char = 'x'
 3079: Need char = 'b'
 3080:     xaaaab
 3081:  0: xaaaab
 3082: 
 3083: /(?U)xa++b/DZ
 3084: ------------------------------------------------------------------
 3085:         Bra
 3086:         x
 3087:         a++
 3088:         b
 3089:         Ket
 3090:         End
 3091: ------------------------------------------------------------------
 3092: Capturing subpattern count = 0
 3093: Options: ungreedy
 3094: First char = 'x'
 3095: Need char = 'b'
 3096:     xaaaab
 3097:  0: xaaaab
 3098: 
 3099: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
 3100: ------------------------------------------------------------------
 3101:         Bra
 3102:         ^
 3103:         CBra 1
 3104:         CBra 2
 3105:         a+
 3106:         Ket
 3107:         CBra 3
 3108:         [ab]+?
 3109:         Ket
 3110:         CBra 4
 3111:         [bc]+
 3112:         Ket
 3113:         CBra 5
 3114:         \w*+
 3115:         Ket
 3116:         Ket
 3117:         Ket
 3118:         End
 3119: ------------------------------------------------------------------
 3120: Capturing subpattern count = 5
 3121: Options: anchored
 3122: No first char
 3123: No need char
 3124: 
 3125: /^x(?U)a+b/DZ
 3126: ------------------------------------------------------------------
 3127:         Bra
 3128:         ^
 3129:         x
 3130:         a++
 3131:         b
 3132:         Ket
 3133:         End
 3134: ------------------------------------------------------------------
 3135: Capturing subpattern count = 0
 3136: Options: anchored
 3137: No first char
 3138: Need char = 'b'
 3139: 
 3140: /^x(?U)(a+)b/DZ
 3141: ------------------------------------------------------------------
 3142:         Bra
 3143:         ^
 3144:         x
 3145:         CBra 1
 3146:         a+?
 3147:         Ket
 3148:         b
 3149:         Ket
 3150:         End
 3151: ------------------------------------------------------------------
 3152: Capturing subpattern count = 1
 3153: Options: anchored
 3154: No first char
 3155: Need char = 'b'
 3156: 
 3157: /[.x.]/I
 3158: Failed: POSIX collating elements are not supported at offset 0
 3159: 
 3160: /[=x=]/I
 3161: Failed: POSIX collating elements are not supported at offset 0
 3162: 
 3163: /[:x:]/I
 3164: Failed: POSIX named classes are supported only within a class at offset 0
 3165: 
 3166: /\l/I
 3167: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3168: 
 3169: /\L/I
 3170: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3171: 
 3172: /\N{name}/I
 3173: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3174: 
 3175: /\u/I
 3176: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3177: 
 3178: /\U/I
 3179: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3180: 
 3181: /[/I
 3182: Failed: missing terminating ] for character class at offset 1
 3183: 
 3184: /[a-/I
 3185: Failed: missing terminating ] for character class at offset 3
 3186: 
 3187: /[[:space:]/I
 3188: Failed: missing terminating ] for character class at offset 10
 3189: 
 3190: /[\s]/IDZ
 3191: ------------------------------------------------------------------
 3192:         Bra
 3193:         [\x09-\x0d ]
 3194:         Ket
 3195:         End
 3196: ------------------------------------------------------------------
 3197: Capturing subpattern count = 0
 3198: No options
 3199: No first char
 3200: No need char
 3201: 
 3202: /[[:space:]]/IDZ
 3203: ------------------------------------------------------------------
 3204:         Bra
 3205:         [\x09-\x0d ]
 3206:         Ket
 3207:         End
 3208: ------------------------------------------------------------------
 3209: Capturing subpattern count = 0
 3210: No options
 3211: No first char
 3212: No need char
 3213: 
 3214: /[[:space:]abcde]/IDZ
 3215: ------------------------------------------------------------------
 3216:         Bra
 3217:         [\x09-\x0d a-e]
 3218:         Ket
 3219:         End
 3220: ------------------------------------------------------------------
 3221: Capturing subpattern count = 0
 3222: No options
 3223: No first char
 3224: No need char
 3225: 
 3226: /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
 3227: Capturing subpattern count = 0
 3228: Options: extended
 3229: First char = '<'
 3230: Need char = '>'
 3231:     <>
 3232:  0: <>
 3233:     <abcd>
 3234:  0: <abcd>
 3235:     <abc <123> hij>
 3236:  0: <abc <123> hij>
 3237:     <abc <def> hij>
 3238:  0: <def>
 3239:     <abc<>def>
 3240:  0: <abc<>def>
 3241:     <abc<>
 3242:  0: <>
 3243:     *** Failers
 3244: No match
 3245:     <abc
 3246: No match
 3247: 
 3248: |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
 3249: ------------------------------------------------------------------
 3250:         Bra
 3251:         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
 3252:         \b
 3253:         Ket
 3254:         End
 3255: ------------------------------------------------------------------
 3256: Capturing subpattern count = 0
 3257: Max lookbehind = 1
 3258: No options
 3259: First char = '8'
 3260: Need char = 'X'
 3261: 
 3262: |\$\<\.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
 3263: ------------------------------------------------------------------
 3264:         Bra
 3265:         $<.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
 3266:         \b
 3267:         Ket
 3268:         End
 3269: ------------------------------------------------------------------
 3270: Capturing subpattern count = 0
 3271: Max lookbehind = 1
 3272: No options
 3273: First char = '$'
 3274: Need char = 'X'
 3275: 
 3276: /(.*)\d+\1/I
 3277: Capturing subpattern count = 1
 3278: Max back reference = 1
 3279: No options
 3280: No first char
 3281: No need char
 3282: 
 3283: /(.*)\d+/I
 3284: Capturing subpattern count = 1
 3285: No options
 3286: First char at start or follows newline
 3287: No need char
 3288: 
 3289: /(.*)\d+\1/Is
 3290: Capturing subpattern count = 1
 3291: Max back reference = 1
 3292: Options: dotall
 3293: No first char
 3294: No need char
 3295: 
 3296: /(.*)\d+/Is
 3297: Capturing subpattern count = 1
 3298: Options: anchored dotall
 3299: No first char
 3300: No need char
 3301: 
 3302: /(.*(xyz))\d+\2/I
 3303: Capturing subpattern count = 2
 3304: Max back reference = 2
 3305: No options
 3306: First char at start or follows newline
 3307: Need char = 'z'
 3308: 
 3309: /((.*))\d+\1/I
 3310: Capturing subpattern count = 2
 3311: Max back reference = 1
 3312: No options
 3313: No first char
 3314: No need char
 3315:     abc123bc
 3316:  0: bc123bc
 3317:  1: bc
 3318:  2: bc
 3319: 
 3320: /a[b]/I
 3321: Capturing subpattern count = 0
 3322: No options
 3323: First char = 'a'
 3324: Need char = 'b'
 3325: 
 3326: /(?=a).*/I
 3327: Capturing subpattern count = 0
 3328: May match empty string
 3329: No options
 3330: First char = 'a'
 3331: No need char
 3332: 
 3333: /(?=abc).xyz/IiI
 3334: Capturing subpattern count = 0
 3335: Options: caseless
 3336: First char = 'a' (caseless)
 3337: Need char = 'z' (caseless)
 3338: 
 3339: /(?=abc)(?i).xyz/I
 3340: Capturing subpattern count = 0
 3341: No options
 3342: First char = 'a'
 3343: Need char = 'z' (caseless)
 3344: 
 3345: /(?=a)(?=b)/I
 3346: Capturing subpattern count = 0
 3347: May match empty string
 3348: No options
 3349: First char = 'a'
 3350: No need char
 3351: 
 3352: /(?=.)a/I
 3353: Capturing subpattern count = 0
 3354: No options
 3355: First char = 'a'
 3356: No need char
 3357: 
 3358: /((?=abcda)a)/I
 3359: Capturing subpattern count = 1
 3360: No options
 3361: First char = 'a'
 3362: Need char = 'a'
 3363: 
 3364: /((?=abcda)ab)/I
 3365: Capturing subpattern count = 1
 3366: No options
 3367: First char = 'a'
 3368: Need char = 'b'
 3369: 
 3370: /()a/I
 3371: Capturing subpattern count = 1
 3372: No options
 3373: No first char
 3374: Need char = 'a'
 3375: 
 3376: /(?(1)ab|ac)(.)/I
 3377: Capturing subpattern count = 1
 3378: No options
 3379: First char = 'a'
 3380: No need char
 3381: 
 3382: /(?(1)abz|acz)(.)/I
 3383: Capturing subpattern count = 1
 3384: No options
 3385: First char = 'a'
 3386: Need char = 'z'
 3387: 
 3388: /(?(1)abz)(.)/I
 3389: Capturing subpattern count = 1
 3390: No options
 3391: No first char
 3392: No need char
 3393: 
 3394: /(?(1)abz)(1)23/I
 3395: Capturing subpattern count = 1
 3396: No options
 3397: No first char
 3398: Need char = '3'
 3399: 
 3400: /(a)+/I
 3401: Capturing subpattern count = 1
 3402: No options
 3403: First char = 'a'
 3404: No need char
 3405: 
 3406: /(a){2,3}/I
 3407: Capturing subpattern count = 1
 3408: No options
 3409: First char = 'a'
 3410: Need char = 'a'
 3411: 
 3412: /(a)*/I
 3413: Capturing subpattern count = 1
 3414: May match empty string
 3415: No options
 3416: No first char
 3417: No need char
 3418: 
 3419: /[a]/I
 3420: Capturing subpattern count = 0
 3421: No options
 3422: First char = 'a'
 3423: No need char
 3424: 
 3425: /[ab]/I
 3426: Capturing subpattern count = 0
 3427: No options
 3428: No first char
 3429: No need char
 3430: 
 3431: /[ab]/IS
 3432: Capturing subpattern count = 0
 3433: No options
 3434: No first char
 3435: No need char
 3436: Subject length lower bound = 1
 3437: Starting byte set: a b 
 3438: 
 3439: /[^a]/I
 3440: Capturing subpattern count = 0
 3441: No options
 3442: No first char
 3443: No need char
 3444: 
 3445: /\d456/I
 3446: Capturing subpattern count = 0
 3447: No options
 3448: No first char
 3449: Need char = '6'
 3450: 
 3451: /\d456/IS
 3452: Capturing subpattern count = 0
 3453: No options
 3454: No first char
 3455: Need char = '6'
 3456: Subject length lower bound = 4
 3457: Starting byte set: 0 1 2 3 4 5 6 7 8 9 
 3458: 
 3459: /a^b/I
 3460: Capturing subpattern count = 0
 3461: No options
 3462: First char = 'a'
 3463: Need char = 'b'
 3464: 
 3465: /^a/Im
 3466: Capturing subpattern count = 0
 3467: Options: multiline
 3468: First char at start or follows newline
 3469: Need char = 'a'
 3470:   abcde
 3471:  0: a
 3472:   xy\nabc
 3473:  0: a
 3474:   *** Failers
 3475: No match
 3476:   xyabc
 3477: No match
 3478: 
 3479: /c|abc/I
 3480: Capturing subpattern count = 0
 3481: No options
 3482: No first char
 3483: Need char = 'c'
 3484: 
 3485: /(?i)[ab]/IS
 3486: Capturing subpattern count = 0
 3487: Options: caseless
 3488: No first char
 3489: No need char
 3490: Subject length lower bound = 1
 3491: Starting byte set: A B a b 
 3492: 
 3493: /[ab](?i)cd/IS
 3494: Capturing subpattern count = 0
 3495: No options
 3496: No first char
 3497: Need char = 'd' (caseless)
 3498: Subject length lower bound = 3
 3499: Starting byte set: a b 
 3500: 
 3501: /abc(?C)def/I
 3502: Capturing subpattern count = 0
 3503: No options
 3504: First char = 'a'
 3505: Need char = 'f'
 3506:     abcdef
 3507: --->abcdef
 3508:   0 ^  ^       d
 3509:  0: abcdef
 3510:     1234abcdef
 3511: --->1234abcdef
 3512:   0     ^  ^       d
 3513:  0: abcdef
 3514:     *** Failers
 3515: No match
 3516:     abcxyz
 3517: No match
 3518:     abcxyzf
 3519: --->abcxyzf
 3520:   0 ^  ^        d
 3521: No match
 3522: 
 3523: /abc(?C)de(?C1)f/I
 3524: Capturing subpattern count = 0
 3525: No options
 3526: First char = 'a'
 3527: Need char = 'f'
 3528:     123abcdef
 3529: --->123abcdef
 3530:   0    ^  ^       d
 3531:   1    ^    ^     f
 3532:  0: abcdef
 3533: 
 3534: /(?C1)\dabc(?C2)def/IS
 3535: Capturing subpattern count = 0
 3536: No options
 3537: No first char
 3538: Need char = 'f'
 3539: Subject length lower bound = 7
 3540: Starting byte set: 0 1 2 3 4 5 6 7 8 9 
 3541:     1234abcdef
 3542: --->1234abcdef
 3543:   1 ^              \d
 3544:   1  ^             \d
 3545:   1   ^            \d
 3546:   1    ^           \d
 3547:   2    ^   ^       d
 3548:  0: 4abcdef
 3549:     *** Failers
 3550: No match
 3551:     abcdef
 3552: No match
 3553: 
 3554: /(?C1)\dabc(?C2)def/ISS
 3555: Capturing subpattern count = 0
 3556: No options
 3557: No first char
 3558: Need char = 'f'
 3559:     1234abcdef
 3560: --->1234abcdef
 3561:   1 ^              \d
 3562:   1  ^             \d
 3563:   1   ^            \d
 3564:   1    ^           \d
 3565:   2    ^   ^       d
 3566:  0: 4abcdef
 3567:     *** Failers
 3568: No match
 3569:     abcdef
 3570: --->abcdef
 3571:   1 ^          \d
 3572:   1  ^         \d
 3573:   1   ^        \d
 3574:   1    ^       \d
 3575:   1     ^      \d
 3576:   1      ^     \d
 3577: No match
 3578: 
 3579: /(?C255)ab/I
 3580: Capturing subpattern count = 0
 3581: No options
 3582: First char = 'a'
 3583: Need char = 'b'
 3584: 
 3585: /(?C256)ab/I
 3586: Failed: number after (?C is > 255 at offset 6
 3587: 
 3588: /(?Cab)xx/I
 3589: Failed: closing ) for (?C expected at offset 3
 3590: 
 3591: /(?C12vr)x/I
 3592: Failed: closing ) for (?C expected at offset 5
 3593: 
 3594: /abc(?C)def/I
 3595: Capturing subpattern count = 0
 3596: No options
 3597: First char = 'a'
 3598: Need char = 'f'
 3599:     *** Failers
 3600: No match
 3601:     \x83\x0\x61bcdef
 3602: --->\x83\x00abcdef
 3603:   0         ^  ^       d
 3604:  0: abcdef
 3605: 
 3606: /(abc)(?C)de(?C1)f/I
 3607: Capturing subpattern count = 1
 3608: No options
 3609: First char = 'a'
 3610: Need char = 'f'
 3611:     123abcdef
 3612: --->123abcdef
 3613:   0    ^  ^       d
 3614:   1    ^    ^     f
 3615:  0: abcdef
 3616:  1: abc
 3617:     123abcdef\C+
 3618: Callout 0: last capture = 1
 3619:  0: <unset>
 3620:  1: abc
 3621: --->123abcdef
 3622:        ^  ^       d
 3623: Callout 1: last capture = 1
 3624:  0: <unset>
 3625:  1: abc
 3626: --->123abcdef
 3627:        ^    ^     f
 3628:  0: abcdef
 3629:  1: abc
 3630:     123abcdef\C-
 3631:  0: abcdef
 3632:  1: abc
 3633:     *** Failers
 3634: No match
 3635:     123abcdef\C!1
 3636: --->123abcdef
 3637:   0    ^  ^       d
 3638:   1    ^    ^     f
 3639: No match
 3640: 
 3641: /(?C0)(abc(?C1))*/I
 3642: Capturing subpattern count = 1
 3643: May match empty string
 3644: No options
 3645: No first char
 3646: No need char
 3647:     abcabcabc
 3648: --->abcabcabc
 3649:   0 ^             (abc(?C1))*
 3650:   1 ^  ^          )
 3651:   1 ^     ^       )
 3652:   1 ^        ^    )
 3653:  0: abcabcabc
 3654:  1: abc
 3655:     abcabc\C!1!3
 3656: --->abcabc
 3657:   0 ^          (abc(?C1))*
 3658:   1 ^  ^       )
 3659:   1 ^     ^    )
 3660:  0: abcabc
 3661:  1: abc
 3662:     *** Failers
 3663: --->*** Failers
 3664:   0 ^               (abc(?C1))*
 3665:  0: 
 3666:     abcabcabc\C!1!3
 3667: --->abcabcabc
 3668:   0 ^             (abc(?C1))*
 3669:   1 ^  ^          )
 3670:   1 ^     ^       )
 3671:   1 ^        ^    )
 3672:  0: abcabc
 3673:  1: abc
 3674: 
 3675: /(\d{3}(?C))*/I
 3676: Capturing subpattern count = 1
 3677: May match empty string
 3678: No options
 3679: No first char
 3680: No need char
 3681:     123\C+
 3682: Callout 0: last capture = -1
 3683:  0: <unset>
 3684: --->123
 3685:     ^  ^    )
 3686:  0: 123
 3687:  1: 123
 3688:     123456\C+
 3689: Callout 0: last capture = -1
 3690:  0: <unset>
 3691: --->123456
 3692:     ^  ^       )
 3693: Callout 0: last capture = 1
 3694:  0: <unset>
 3695:  1: 123
 3696: --->123456
 3697:     ^     ^    )
 3698:  0: 123456
 3699:  1: 456
 3700:     123456789\C+
 3701: Callout 0: last capture = -1
 3702:  0: <unset>
 3703: --->123456789
 3704:     ^  ^          )
 3705: Callout 0: last capture = 1
 3706:  0: <unset>
 3707:  1: 123
 3708: --->123456789
 3709:     ^     ^       )
 3710: Callout 0: last capture = 1
 3711:  0: <unset>
 3712:  1: 456
 3713: --->123456789
 3714:     ^        ^    )
 3715:  0: 123456789
 3716:  1: 789
 3717: 
 3718: /((xyz)(?C)p|(?C1)xyzabc)/I
 3719: Capturing subpattern count = 2
 3720: No options
 3721: First char = 'x'
 3722: No need char
 3723:     xyzabc\C+
 3724: Callout 0: last capture = 2
 3725:  0: <unset>
 3726:  1: <unset>
 3727:  2: xyz
 3728: --->xyzabc
 3729:     ^  ^       p
 3730: Callout 1: last capture = -1
 3731:  0: <unset>
 3732: --->xyzabc
 3733:     ^          x
 3734:  0: xyzabc
 3735:  1: xyzabc
 3736: 
 3737: /(X)((xyz)(?C)p|(?C1)xyzabc)/I
 3738: Capturing subpattern count = 3
 3739: No options
 3740: First char = 'X'
 3741: Need char = 'x'
 3742:     Xxyzabc\C+
 3743: Callout 0: last capture = 3
 3744:  0: <unset>
 3745:  1: X
 3746:  2: <unset>
 3747:  3: xyz
 3748: --->Xxyzabc
 3749:     ^   ^       p
 3750: Callout 1: last capture = 1
 3751:  0: <unset>
 3752:  1: X
 3753: --->Xxyzabc
 3754:     ^^          x
 3755:  0: Xxyzabc
 3756:  1: X
 3757:  2: xyzabc
 3758: 
 3759: /(?=(abc))(?C)abcdef/I
 3760: Capturing subpattern count = 1
 3761: No options
 3762: First char = 'a'
 3763: Need char = 'f'
 3764:     abcdef\C+
 3765: Callout 0: last capture = 1
 3766:  0: <unset>
 3767:  1: abc
 3768: --->abcdef
 3769:     ^          a
 3770:  0: abcdef
 3771:  1: abc
 3772: 
 3773: /(?!(abc)(?C1)d)(?C2)abcxyz/I
 3774: Capturing subpattern count = 1
 3775: No options
 3776: First char = 'a'
 3777: Need char = 'z'
 3778:     abcxyz\C+
 3779: Callout 1: last capture = 1
 3780:  0: <unset>
 3781:  1: abc
 3782: --->abcxyz
 3783:     ^  ^       d
 3784: Callout 2: last capture = -1
 3785:  0: <unset>
 3786: --->abcxyz
 3787:     ^          a
 3788:  0: abcxyz
 3789: 
 3790: /(?<=(abc)(?C))xyz/I
 3791: Capturing subpattern count = 1
 3792: Max lookbehind = 3
 3793: No options
 3794: First char = 'x'
 3795: Need char = 'z'
 3796:    abcxyz\C+
 3797: Callout 0: last capture = 1
 3798:  0: <unset>
 3799:  1: abc
 3800: --->abcxyz
 3801:        ^       )
 3802:  0: xyz
 3803:  1: abc
 3804: 
 3805: /a(b+)(c*)(?C1)/I
 3806: Capturing subpattern count = 2
 3807: No options
 3808: First char = 'a'
 3809: Need char = 'b'
 3810:     abbbbbccc\C*1
 3811: --->abbbbbccc
 3812:   1 ^        ^    
 3813: Callout data = 1
 3814: No match
 3815: 
 3816: /a(b+?)(c*?)(?C1)/I
 3817: Capturing subpattern count = 2
 3818: No options
 3819: First char = 'a'
 3820: Need char = 'b'
 3821:     abbbbbccc\C*1
 3822: --->abbbbbccc
 3823:   1 ^ ^           
 3824: Callout data = 1
 3825:   1 ^  ^          
 3826: Callout data = 1
 3827:   1 ^   ^         
 3828: Callout data = 1
 3829:   1 ^    ^        
 3830: Callout data = 1
 3831:   1 ^     ^       
 3832: Callout data = 1
 3833:   1 ^      ^      
 3834: Callout data = 1
 3835:   1 ^       ^     
 3836: Callout data = 1
 3837:   1 ^        ^    
 3838: Callout data = 1
 3839: No match
 3840: 
 3841: /(?C)abc/I
 3842: Capturing subpattern count = 0
 3843: No options
 3844: First char = 'a'
 3845: Need char = 'c'
 3846: 
 3847: /(?C)^abc/I
 3848: Capturing subpattern count = 0
 3849: Options: anchored
 3850: No first char
 3851: No need char
 3852: 
 3853: /(?C)a|b/IS
 3854: Capturing subpattern count = 0
 3855: No options
 3856: No first char
 3857: No need char
 3858: Subject length lower bound = 1
 3859: Starting byte set: a b 
 3860: 
 3861: /(?R)/I
 3862: Failed: recursive call could loop indefinitely at offset 3
 3863: 
 3864: /(a|(?R))/I
 3865: Failed: recursive call could loop indefinitely at offset 6
 3866: 
 3867: /(ab|(bc|(de|(?R))))/I
 3868: Failed: recursive call could loop indefinitely at offset 15
 3869: 
 3870: /x(ab|(bc|(de|(?R))))/I
 3871: Capturing subpattern count = 3
 3872: No options
 3873: First char = 'x'
 3874: No need char
 3875:     xab
 3876:  0: xab
 3877:  1: ab
 3878:     xbc
 3879:  0: xbc
 3880:  1: bc
 3881:  2: bc
 3882:     xde
 3883:  0: xde
 3884:  1: de
 3885:  2: de
 3886:  3: de
 3887:     xxab
 3888:  0: xxab
 3889:  1: xab
 3890:  2: xab
 3891:  3: xab
 3892:     xxxab
 3893:  0: xxxab
 3894:  1: xxab
 3895:  2: xxab
 3896:  3: xxab
 3897:     *** Failers
 3898: No match
 3899:     xyab
 3900: No match
 3901: 
 3902: /(ab|(bc|(de|(?1))))/I
 3903: Failed: recursive call could loop indefinitely at offset 15
 3904: 
 3905: /x(ab|(bc|(de|(?1)x)x)x)/I
 3906: Failed: recursive call could loop indefinitely at offset 16
 3907: 
 3908: /^([^()]|\((?1)*\))*$/I
 3909: Capturing subpattern count = 1
 3910: May match empty string
 3911: Options: anchored
 3912: No first char
 3913: No need char
 3914:     abc
 3915:  0: abc
 3916:  1: c
 3917:     a(b)c
 3918:  0: a(b)c
 3919:  1: c
 3920:     a(b(c))d
 3921:  0: a(b(c))d
 3922:  1: d
 3923:     *** Failers)
 3924: No match
 3925:     a(b(c)d
 3926: No match
 3927: 
 3928: /^>abc>([^()]|\((?1)*\))*<xyz<$/I
 3929: Capturing subpattern count = 1
 3930: Options: anchored
 3931: No first char
 3932: Need char = '<'
 3933:    >abc>123<xyz<
 3934:  0: >abc>123<xyz<
 3935:  1: 3
 3936:    >abc>1(2)3<xyz<
 3937:  0: >abc>1(2)3<xyz<
 3938:  1: 3
 3939:    >abc>(1(2)3)<xyz<
 3940:  0: >abc>(1(2)3)<xyz<
 3941:  1: (1(2)3)
 3942: 
 3943: /(a(?1)b)/DZ
 3944: ------------------------------------------------------------------
 3945:         Bra
 3946:         CBra 1
 3947:         a
 3948:         Recurse
 3949:         b
 3950:         Ket
 3951:         Ket
 3952:         End
 3953: ------------------------------------------------------------------
 3954: Capturing subpattern count = 1
 3955: No options
 3956: First char = 'a'
 3957: Need char = 'b'
 3958: 
 3959: /(a(?1)+b)/DZ
 3960: ------------------------------------------------------------------
 3961:         Bra
 3962:         CBra 1
 3963:         a
 3964:         Once
 3965:         Recurse
 3966:         KetRmax
 3967:         b
 3968:         Ket
 3969:         Ket
 3970:         End
 3971: ------------------------------------------------------------------
 3972: Capturing subpattern count = 1
 3973: No options
 3974: First char = 'a'
 3975: Need char = 'b'
 3976: 
 3977: /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
 3978: Capturing subpattern count = 2
 3979: Options: anchored
 3980: No first char
 3981: No need char
 3982:     12
 3983:  0: 12
 3984:  1: 12
 3985:     (((2+2)*-3)-7)
 3986:  0: (((2+2)*-3)-7)
 3987:  1: (((2+2)*-3)-7)
 3988:  2: -
 3989:     -12
 3990:  0: -12
 3991:  1: -12
 3992:     *** Failers
 3993: No match
 3994:     ((2+2)*-3)-7)
 3995: No match
 3996: 
 3997: /^(x(y|(?1){2})z)/I
 3998: Capturing subpattern count = 2
 3999: Options: anchored
 4000: No first char
 4001: No need char
 4002:     xyz
 4003:  0: xyz
 4004:  1: xyz
 4005:  2: y
 4006:     xxyzxyzz
 4007:  0: xxyzxyzz
 4008:  1: xxyzxyzz
 4009:  2: xyzxyz
 4010:     *** Failers
 4011: No match
 4012:     xxyzz
 4013: No match
 4014:     xxyzxyzxyzz
 4015: No match
 4016: 
 4017: /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
 4018: Capturing subpattern count = 2
 4019: Options: extended
 4020: First char = '<'
 4021: Need char = '>'
 4022:     <>
 4023:  0: <>
 4024:  1: <>
 4025:  2: <>
 4026:     <abcd>
 4027:  0: <abcd>
 4028:  1: <abcd>
 4029:  2: <abcd>
 4030:     <abc <123> hij>
 4031:  0: <abc <123> hij>
 4032:  1: <abc <123> hij>
 4033:  2: <abc <123> hij>
 4034:     <abc <def> hij>
 4035:  0: <def>
 4036:  1: <def>
 4037:  2: <def>
 4038:     <abc<>def>
 4039:  0: <abc<>def>
 4040:  1: <abc<>def>
 4041:  2: <abc<>def>
 4042:     <abc<>
 4043:  0: <>
 4044:  1: <>
 4045:  2: <>
 4046:     *** Failers
 4047: No match
 4048:     <abc
 4049: No match
 4050: 
 4051: /(?1)/I
 4052: Failed: reference to non-existent subpattern at offset 3
 4053: 
 4054: /((?2)(abc)/I
 4055: Failed: missing ) at offset 10
 4056: 
 4057: /^(abc)def(?1)/I
 4058: Capturing subpattern count = 1
 4059: Options: anchored
 4060: No first char
 4061: No need char
 4062:     abcdefabc
 4063:  0: abcdefabc
 4064:  1: abc
 4065: 
 4066: /^(a|b|c)=(?1)+/I
 4067: Capturing subpattern count = 1
 4068: Options: anchored
 4069: No first char
 4070: No need char
 4071:     a=a
 4072:  0: a=a
 4073:  1: a
 4074:     a=b
 4075:  0: a=b
 4076:  1: a
 4077:     a=bc
 4078:  0: a=bc
 4079:  1: a
 4080: 
 4081: /^(a|b|c)=((?1))+/I
 4082: Capturing subpattern count = 2
 4083: Options: anchored
 4084: No first char
 4085: No need char
 4086:     a=a
 4087:  0: a=a
 4088:  1: a
 4089:  2: a
 4090:     a=b
 4091:  0: a=b
 4092:  1: a
 4093:  2: b
 4094:     a=bc
 4095:  0: a=bc
 4096:  1: a
 4097:  2: c
 4098: 
 4099: /a(?P<name1>b|c)d(?P<longername2>e)/DZ
 4100: ------------------------------------------------------------------
 4101:         Bra
 4102:         a
 4103:         CBra 1
 4104:         b
 4105:         Alt
 4106:         c
 4107:         Ket
 4108:         d
 4109:         CBra 2
 4110:         e
 4111:         Ket
 4112:         Ket
 4113:         End
 4114: ------------------------------------------------------------------
 4115: Capturing subpattern count = 2
 4116: Named capturing subpatterns:
 4117:   longername2   2
 4118:   name1         1
 4119: No options
 4120: First char = 'a'
 4121: Need char = 'e'
 4122:     abde
 4123:  0: abde
 4124:  1: b
 4125:  2: e
 4126:     acde
 4127:  0: acde
 4128:  1: c
 4129:  2: e
 4130: 
 4131: /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
 4132: ------------------------------------------------------------------
 4133:         Bra
 4134:         Bra
 4135:         a
 4136:         CBra 1
 4137:         c
 4138:         CBra 2
 4139:         d
 4140:         Ket
 4141:         Ket
 4142:         Ket
 4143:         CBra 3
 4144:         a
 4145:         Ket
 4146:         Ket
 4147:         End
 4148: ------------------------------------------------------------------
 4149: Capturing subpattern count = 3
 4150: Named capturing subpatterns:
 4151:   a   3
 4152:   c   1
 4153:   d   2
 4154: No options
 4155: First char = 'a'
 4156: Need char = 'a'
 4157: 
 4158: /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
 4159: ------------------------------------------------------------------
 4160:         Bra
 4161:         CBra 1
 4162:         a
 4163:         Ket
 4164:         Any
 4165:         Any
 4166:         Any
 4167:         \1
 4168:         bbb
 4169:         Recurse
 4170:         d
 4171:         Ket
 4172:         End
 4173: ------------------------------------------------------------------
 4174: Capturing subpattern count = 1
 4175: Max back reference = 1
 4176: Named capturing subpatterns:
 4177:   a   1
 4178: No options
 4179: First char = 'a'
 4180: Need char = 'd'
 4181: 
 4182: /^\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
 4183: Capturing subpattern count = 4
 4184: Max back reference = 4
 4185: Named capturing subpatterns:
 4186:   four    4
 4187:   one     1
 4188:   three   3
 4189:   two     2
 4190: May match empty string
 4191: Options: anchored caseless
 4192: No first char
 4193: No need char
 4194:     1221
 4195:  0: 1221
 4196:  1: 1221
 4197:  2: 1
 4198:     Satan, oscillate my metallic sonatas!
 4199:  0: Satan, oscillate my metallic sonatas!
 4200:  1: <unset>
 4201:  2: <unset>
 4202:  3: Satan, oscillate my metallic sonatas
 4203:  4: S
 4204:     A man, a plan, a canal: Panama!
 4205:  0: A man, a plan, a canal: Panama!
 4206:  1: <unset>
 4207:  2: <unset>
 4208:  3: A man, a plan, a canal: Panama
 4209:  4: A
 4210:     Able was I ere I saw Elba.
 4211:  0: Able was I ere I saw Elba.
 4212:  1: <unset>
 4213:  2: <unset>
 4214:  3: Able was I ere I saw Elba
 4215:  4: A
 4216:     *** Failers
 4217: No match
 4218:     The quick brown fox
 4219: No match
 4220: 
 4221: /((?(R)a|b))\1(?1)?/I
 4222: Capturing subpattern count = 1
 4223: Max back reference = 1
 4224: No options
 4225: No first char
 4226: No need char
 4227:   bb
 4228:  0: bb
 4229:  1: b
 4230:   bbaa
 4231:  0: bba
 4232:  1: b
 4233: 
 4234: /(.*)a/Is
 4235: Capturing subpattern count = 1
 4236: Options: anchored dotall
 4237: No first char
 4238: Need char = 'a'
 4239: 
 4240: /(.*)a\1/Is
 4241: Capturing subpattern count = 1
 4242: Max back reference = 1
 4243: Options: dotall
 4244: No first char
 4245: Need char = 'a'
 4246: 
 4247: /(.*)a(b)\2/Is
 4248: Capturing subpattern count = 2
 4249: Max back reference = 2
 4250: Options: anchored dotall
 4251: No first char
 4252: Need char = 'b'
 4253: 
 4254: /((.*)a|(.*)b)z/Is
 4255: Capturing subpattern count = 3
 4256: Options: anchored dotall
 4257: No first char
 4258: Need char = 'z'
 4259: 
 4260: /((.*)a|(.*)b)z\1/Is
 4261: Capturing subpattern count = 3
 4262: Max back reference = 1
 4263: Options: dotall
 4264: No first char
 4265: Need char = 'z'
 4266: 
 4267: /((.*)a|(.*)b)z\2/Is
 4268: Capturing subpattern count = 3
 4269: Max back reference = 2
 4270: Options: dotall
 4271: No first char
 4272: Need char = 'z'
 4273: 
 4274: /((.*)a|(.*)b)z\3/Is
 4275: Capturing subpattern count = 3
 4276: Max back reference = 3
 4277: Options: dotall
 4278: No first char
 4279: Need char = 'z'
 4280: 
 4281: /((.*)a|^(.*)b)z\3/Is
 4282: Capturing subpattern count = 3
 4283: Max back reference = 3
 4284: Options: anchored dotall
 4285: No first char
 4286: Need char = 'z'
 4287: 
 4288: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
 4289: Capturing subpattern count = 31
 4290: May match empty string
 4291: Options: anchored dotall
 4292: No first char
 4293: No need char
 4294: 
 4295: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
 4296: Capturing subpattern count = 31
 4297: Max back reference = 31
 4298: May match empty string
 4299: Options: dotall
 4300: No first char
 4301: No need char
 4302: 
 4303: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
 4304: Capturing subpattern count = 32
 4305: Max back reference = 32
 4306: May match empty string
 4307: Options: dotall
 4308: No first char
 4309: No need char
 4310: 
 4311: /(a)(bc)/INDZ
 4312: ------------------------------------------------------------------
 4313:         Bra
 4314:         Bra
 4315:         a
 4316:         Ket
 4317:         Bra
 4318:         bc
 4319:         Ket
 4320:         Ket
 4321:         End
 4322: ------------------------------------------------------------------
 4323: Capturing subpattern count = 0
 4324: Options: no_auto_capture
 4325: First char = 'a'
 4326: Need char = 'c'
 4327:   abc
 4328:  0: abc
 4329: 
 4330: /(?P<one>a)(bc)/INDZ
 4331: ------------------------------------------------------------------
 4332:         Bra
 4333:         CBra 1
 4334:         a
 4335:         Ket
 4336:         Bra
 4337:         bc
 4338:         Ket
 4339:         Ket
 4340:         End
 4341: ------------------------------------------------------------------
 4342: Capturing subpattern count = 1
 4343: Named capturing subpatterns:
 4344:   one   1
 4345: Options: no_auto_capture
 4346: First char = 'a'
 4347: Need char = 'c'
 4348:   abc
 4349:  0: abc
 4350:  1: a
 4351: 
 4352: /(a)(?P<named>bc)/INDZ
 4353: ------------------------------------------------------------------
 4354:         Bra
 4355:         Bra
 4356:         a
 4357:         Ket
 4358:         CBra 1
 4359:         bc
 4360:         Ket
 4361:         Ket
 4362:         End
 4363: ------------------------------------------------------------------
 4364: Capturing subpattern count = 1
 4365: Named capturing subpatterns:
 4366:   named   1
 4367: Options: no_auto_capture
 4368: First char = 'a'
 4369: Need char = 'c'
 4370: 
 4371: /(a+)*zz/I
 4372: Capturing subpattern count = 1
 4373: No options
 4374: No first char
 4375: Need char = 'z'
 4376:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
 4377: Minimum match() limit = 8
 4378: Minimum match() recursion limit = 6
 4379:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
 4380:  1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 4381:   aaaaaaaaaaaaaz\M
 4382: Minimum match() limit = 32768
 4383: Minimum match() recursion limit = 29
 4384: No match
 4385: 
 4386: /(aaa(?C1)bbb|ab)/I
 4387: Capturing subpattern count = 1
 4388: No options
 4389: First char = 'a'
 4390: Need char = 'b'
 4391:    aaabbb
 4392: --->aaabbb
 4393:   1 ^  ^       b
 4394:  0: aaabbb
 4395:  1: aaabbb
 4396:    aaabbb\C*0
 4397: --->aaabbb
 4398:   1 ^  ^       b
 4399:  0: aaabbb
 4400:  1: aaabbb
 4401:    aaabbb\C*1
 4402: --->aaabbb
 4403:   1 ^  ^       b
 4404: Callout data = 1
 4405:  0: ab
 4406:  1: ab
 4407:    aaabbb\C*-1
 4408: --->aaabbb
 4409:   1 ^  ^       b
 4410: Callout data = -1
 4411: No match
 4412: 
 4413: /ab(?P<one>cd)ef(?P<two>gh)/I
 4414: Capturing subpattern count = 2
 4415: Named capturing subpatterns:
 4416:   one   1
 4417:   two   2
 4418: No options
 4419: First char = 'a'
 4420: Need char = 'h'
 4421:     abcdefgh
 4422:  0: abcdefgh
 4423:  1: cd
 4424:  2: gh
 4425:     abcdefgh\C1\Gtwo
 4426:  0: abcdefgh
 4427:  1: cd
 4428:  2: gh
 4429:  1C cd (2)
 4430:   G gh (2) two
 4431:     abcdefgh\Cone\Ctwo
 4432:  0: abcdefgh
 4433:  1: cd
 4434:  2: gh
 4435:   C cd (2) one
 4436:   C gh (2) two
 4437:     abcdefgh\Cthree
 4438: no parentheses with name "three"
 4439:  0: abcdefgh
 4440:  1: cd
 4441:  2: gh
 4442: copy substring three failed -7
 4443: 
 4444: /(?P<Tes>)(?P<Test>)/DZ
 4445: ------------------------------------------------------------------
 4446:         Bra
 4447:         CBra 1
 4448:         Ket
 4449:         CBra 2
 4450:         Ket
 4451:         Ket
 4452:         End
 4453: ------------------------------------------------------------------
 4454: Capturing subpattern count = 2
 4455: Named capturing subpatterns:
 4456:   Tes    1
 4457:   Test   2
 4458: May match empty string
 4459: No options
 4460: No first char
 4461: No need char
 4462: 
 4463: /(?P<Test>)(?P<Tes>)/DZ
 4464: ------------------------------------------------------------------
 4465:         Bra
 4466:         CBra 1
 4467:         Ket
 4468:         CBra 2
 4469:         Ket
 4470:         Ket
 4471:         End
 4472: ------------------------------------------------------------------
 4473: Capturing subpattern count = 2
 4474: Named capturing subpatterns:
 4475:   Tes    2
 4476:   Test   1
 4477: May match empty string
 4478: No options
 4479: No first char
 4480: No need char
 4481: 
 4482: /(?P<Z>zz)(?P<A>aa)/I
 4483: Capturing subpattern count = 2
 4484: Named capturing subpatterns:
 4485:   A   2
 4486:   Z   1
 4487: No options
 4488: First char = 'z'
 4489: Need char = 'a'
 4490:     zzaa\CZ
 4491:  0: zzaa
 4492:  1: zz
 4493:  2: aa
 4494:   C zz (2) Z
 4495:     zzaa\CA
 4496:  0: zzaa
 4497:  1: zz
 4498:  2: aa
 4499:   C aa (2) A
 4500: 
 4501: /(?P<x>eks)(?P<x>eccs)/I
 4502: Failed: two named subpatterns have the same name at offset 15
 4503: 
 4504: /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
 4505: Failed: two named subpatterns have the same name at offset 30
 4506: 
 4507: "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
 4508: Capturing subpattern count = 3
 4509: Named capturing subpatterns:
 4510:   elem   2
 4511: No options
 4512: First char = '['
 4513: Need char = ']'
 4514:     [10,20,30,5,5,4,4,2,43,23,4234]
 4515:  0: [10,20,30,5,5,4,4,2,43,23,4234]
 4516:  1: 10,20,30,5,5,4,4,2,43,23,4234
 4517:  2: 10
 4518:  3: ,4234
 4519:     *** Failers
 4520: No match
 4521:     []
 4522: No match
 4523: 
 4524: "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
 4525: Capturing subpattern count = 3
 4526: Named capturing subpatterns:
 4527:   elem   2
 4528: No options
 4529: First char = '['
 4530: Need char = ']'
 4531:     [10,20,30,5,5,4,4,2,43,23,4234]
 4532:  0: [10,20,30,5,5,4,4,2,43,23,4234]
 4533:  1: 10,20,30,5,5,4,4,2,43,23,4234
 4534:  2: 10
 4535:  3: ,4234
 4536:     []
 4537:  0: []
 4538: 
 4539: /(a(b(?2)c))?/DZ
 4540: ------------------------------------------------------------------
 4541:         Bra
 4542:         Brazero
 4543:         CBra 1
 4544:         a
 4545:         CBra 2
 4546:         b
 4547:         Recurse
 4548:         c
 4549:         Ket
 4550:         Ket
 4551:         Ket
 4552:         End
 4553: ------------------------------------------------------------------
 4554: Capturing subpattern count = 2
 4555: May match empty string
 4556: No options
 4557: No first char
 4558: No need char
 4559: 
 4560: /(a(b(?2)c))*/DZ
 4561: ------------------------------------------------------------------
 4562:         Bra
 4563:         Brazero
 4564:         CBra 1
 4565:         a
 4566:         CBra 2
 4567:         b
 4568:         Recurse
 4569:         c
 4570:         Ket
 4571:         KetRmax
 4572:         Ket
 4573:         End
 4574: ------------------------------------------------------------------
 4575: Capturing subpattern count = 2
 4576: May match empty string
 4577: No options
 4578: No first char
 4579: No need char
 4580: 
 4581: /(a(b(?2)c)){0,2}/DZ
 4582: ------------------------------------------------------------------
 4583:         Bra
 4584:         Brazero
 4585:         Bra
 4586:         CBra 1
 4587:         a
 4588:         CBra 2
 4589:         b
 4590:         Recurse
 4591:         c
 4592:         Ket
 4593:         Ket
 4594:         Brazero
 4595:         CBra 1
 4596:         a
 4597:         CBra 2
 4598:         b
 4599:         Recurse
 4600:         c
 4601:         Ket
 4602:         Ket
 4603:         Ket
 4604:         Ket
 4605:         End
 4606: ------------------------------------------------------------------
 4607: Capturing subpattern count = 2
 4608: May match empty string
 4609: No options
 4610: No first char
 4611: No need char
 4612: 
 4613: /[ab]{1}+/DZ
 4614: ------------------------------------------------------------------
 4615:         Bra
 4616:         [ab]{1,1}+
 4617:         Ket
 4618:         End
 4619: ------------------------------------------------------------------
 4620: Capturing subpattern count = 0
 4621: No options
 4622: No first char
 4623: No need char
 4624: 
 4625: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
 4626: Capturing subpattern count = 3
 4627: Options: caseless
 4628: No first char
 4629: Need char = 'g' (caseless)
 4630:      Baby Bjorn Active Carrier - With free SHIPPING!!
 4631:  0: Baby Bjorn Active Carrier - With free SHIPPING!!
 4632:  1: Baby Bjorn Active Carrier - With free SHIPPING!!
 4633: 
 4634: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
 4635: Capturing subpattern count = 3
 4636: Options: caseless
 4637: No first char
 4638: Need char = 'g' (caseless)
 4639: Subject length lower bound = 8
 4640: No set of starting bytes
 4641:      Baby Bjorn Active Carrier - With free SHIPPING!!
 4642:  0: Baby Bjorn Active Carrier - With free SHIPPING!!
 4643:  1: Baby Bjorn Active Carrier - With free SHIPPING!!
 4644: 
 4645: /a*.*b/ISDZ
 4646: ------------------------------------------------------------------
 4647:         Bra
 4648:         a*
 4649:         Any*
 4650:         b
 4651:         Ket
 4652:         End
 4653: ------------------------------------------------------------------
 4654: Capturing subpattern count = 0
 4655: No options
 4656: No first char
 4657: Need char = 'b'
 4658: Subject length lower bound = 1
 4659: No set of starting bytes
 4660: 
 4661: /(a|b)*.?c/ISDZ
 4662: ------------------------------------------------------------------
 4663:         Bra
 4664:         Brazero
 4665:         CBra 1
 4666:         a
 4667:         Alt
 4668:         b
 4669:         KetRmax
 4670:         Any?
 4671:         c
 4672:         Ket
 4673:         End
 4674: ------------------------------------------------------------------
 4675: Capturing subpattern count = 1
 4676: No options
 4677: No first char
 4678: Need char = 'c'
 4679: Subject length lower bound = 1
 4680: No set of starting bytes
 4681: 
 4682: /abc(?C255)de(?C)f/DZ
 4683: ------------------------------------------------------------------
 4684:         Bra
 4685:         abc
 4686:         Callout 255 10 1
 4687:         de
 4688:         Callout 0 16 1
 4689:         f
 4690:         Ket
 4691:         End
 4692: ------------------------------------------------------------------
 4693: Capturing subpattern count = 0
 4694: No options
 4695: First char = 'a'
 4696: Need char = 'f'
 4697: 
 4698: /abcde/ICDZ
 4699: ------------------------------------------------------------------
 4700:         Bra
 4701:         Callout 255 0 1
 4702:         a
 4703:         Callout 255 1 1
 4704:         b
 4705:         Callout 255 2 1
 4706:         c
 4707:         Callout 255 3 1
 4708:         d
 4709:         Callout 255 4 1
 4710:         e
 4711:         Callout 255 5 0
 4712:         Ket
 4713:         End
 4714: ------------------------------------------------------------------
 4715: Capturing subpattern count = 0
 4716: Options:
 4717: First char = 'a'
 4718: Need char = 'e'
 4719:   abcde
 4720: --->abcde
 4721:  +0 ^         a
 4722:  +1 ^^        b
 4723:  +2 ^ ^       c
 4724:  +3 ^  ^      d
 4725:  +4 ^   ^     e
 4726:  +5 ^    ^    
 4727:  0: abcde
 4728:   abcdfe
 4729: --->abcdfe
 4730:  +0 ^          a
 4731:  +1 ^^         b
 4732:  +2 ^ ^        c
 4733:  +3 ^  ^       d
 4734:  +4 ^   ^      e
 4735: No match
 4736: 
 4737: /a*b/ICDZS
 4738: ------------------------------------------------------------------
 4739:         Bra
 4740:         Callout 255 0 2
 4741:         a*+
 4742:         Callout 255 2 1
 4743:         b
 4744:         Callout 255 3 0
 4745:         Ket
 4746:         End
 4747: ------------------------------------------------------------------
 4748: Capturing subpattern count = 0
 4749: Options:
 4750: No first char
 4751: Need char = 'b'
 4752: Subject length lower bound = 1
 4753: Starting byte set: a b 
 4754:   ab
 4755: --->ab
 4756:  +0 ^      a*
 4757:  +2 ^^     b
 4758:  +3 ^ ^    
 4759:  0: ab
 4760:   aaaab
 4761: --->aaaab
 4762:  +0 ^         a*
 4763:  +2 ^   ^     b
 4764:  +3 ^    ^    
 4765:  0: aaaab
 4766:   aaaacb
 4767: --->aaaacb
 4768:  +0 ^          a*
 4769:  +2 ^   ^      b
 4770:  +0  ^         a*
 4771:  +2  ^  ^      b
 4772:  +0   ^        a*
 4773:  +2   ^ ^      b
 4774:  +0    ^       a*
 4775:  +2    ^^      b
 4776:  +0      ^     a*
 4777:  +2      ^     b
 4778:  +3      ^^    
 4779:  0: b
 4780: 
 4781: /a*b/ICDZSS
 4782: ------------------------------------------------------------------
 4783:         Bra
 4784:         Callout 255 0 2
 4785:         a*+
 4786:         Callout 255 2 1
 4787:         b
 4788:         Callout 255 3 0
 4789:         Ket
 4790:         End
 4791: ------------------------------------------------------------------
 4792: Capturing subpattern count = 0
 4793: Options:
 4794: No first char
 4795: Need char = 'b'
 4796:   ab
 4797: --->ab
 4798:  +0 ^      a*
 4799:  +2 ^^     b
 4800:  +3 ^ ^    
 4801:  0: ab
 4802:   aaaab
 4803: --->aaaab
 4804:  +0 ^         a*
 4805:  +2 ^   ^     b
 4806:  +3 ^    ^    
 4807:  0: aaaab
 4808:   aaaacb
 4809: --->aaaacb
 4810:  +0 ^          a*
 4811:  +2 ^   ^      b
 4812:  +0  ^         a*
 4813:  +2  ^  ^      b
 4814:  +0   ^        a*
 4815:  +2   ^ ^      b
 4816:  +0    ^       a*
 4817:  +2    ^^      b
 4818:  +0     ^      a*
 4819:  +2     ^      b
 4820:  +0      ^     a*
 4821:  +2      ^     b
 4822:  +3      ^^    
 4823:  0: b
 4824: 
 4825: /a+b/ICDZ
 4826: ------------------------------------------------------------------
 4827:         Bra
 4828:         Callout 255 0 2
 4829:         a++
 4830:         Callout 255 2 1
 4831:         b
 4832:         Callout 255 3 0
 4833:         Ket
 4834:         End
 4835: ------------------------------------------------------------------
 4836: Capturing subpattern count = 0
 4837: Options:
 4838: First char = 'a'
 4839: Need char = 'b'
 4840:   ab
 4841: --->ab
 4842:  +0 ^      a+
 4843:  +2 ^^     b
 4844:  +3 ^ ^    
 4845:  0: ab
 4846:   aaaab
 4847: --->aaaab
 4848:  +0 ^         a+
 4849:  +2 ^   ^     b
 4850:  +3 ^    ^    
 4851:  0: aaaab
 4852:   aaaacb
 4853: --->aaaacb
 4854:  +0 ^          a+
 4855:  +2 ^   ^      b
 4856:  +0  ^         a+
 4857:  +2  ^  ^      b
 4858:  +0   ^        a+
 4859:  +2   ^ ^      b
 4860:  +0    ^       a+
 4861:  +2    ^^      b
 4862: No match
 4863: 
 4864: /(abc|def)x/ICDZS
 4865: ------------------------------------------------------------------
 4866:         Bra
 4867:         Callout 255 0 9
 4868:         CBra 1
 4869:         Callout 255 1 1
 4870:         a
 4871:         Callout 255 2 1
 4872:         b
 4873:         Callout 255 3 1
 4874:         c
 4875:         Callout 255 4 0
 4876:         Alt
 4877:         Callout 255 5 1
 4878:         d
 4879:         Callout 255 6 1
 4880:         e
 4881:         Callout 255 7 1
 4882:         f
 4883:         Callout 255 8 0
 4884:         Ket
 4885:         Callout 255 9 1
 4886:         x
 4887:         Callout 255 10 0
 4888:         Ket
 4889:         End
 4890: ------------------------------------------------------------------
 4891: Capturing subpattern count = 1
 4892: Options:
 4893: No first char
 4894: Need char = 'x'
 4895: Subject length lower bound = 4
 4896: Starting byte set: a d 
 4897:   abcx
 4898: --->abcx
 4899:  +0 ^        (abc|def)
 4900:  +1 ^        a
 4901:  +2 ^^       b
 4902:  +3 ^ ^      c
 4903:  +4 ^  ^     |
 4904:  +9 ^  ^     x
 4905: +10 ^   ^    
 4906:  0: abcx
 4907:  1: abc
 4908:   defx
 4909: --->defx
 4910:  +0 ^        (abc|def)
 4911:  +1 ^        a
 4912:  +5 ^        d
 4913:  +6 ^^       e
 4914:  +7 ^ ^      f
 4915:  +8 ^  ^     )
 4916:  +9 ^  ^     x
 4917: +10 ^   ^    
 4918:  0: defx
 4919:  1: def
 4920:   ** Failers 
 4921: No match
 4922:   abcdefzx
 4923: --->abcdefzx
 4924:  +0 ^            (abc|def)
 4925:  +1 ^            a
 4926:  +2 ^^           b
 4927:  +3 ^ ^          c
 4928:  +4 ^  ^         |
 4929:  +9 ^  ^         x
 4930:  +5 ^            d
 4931:  +0    ^         (abc|def)
 4932:  +1    ^         a
 4933:  +5    ^         d
 4934:  +6    ^^        e
 4935:  +7    ^ ^       f
 4936:  +8    ^  ^      )
 4937:  +9    ^  ^      x
 4938: No match
 4939: 
 4940: /(abc|def)x/ICDZSS
 4941: ------------------------------------------------------------------
 4942:         Bra
 4943:         Callout 255 0 9
 4944:         CBra 1
 4945:         Callout 255 1 1
 4946:         a
 4947:         Callout 255 2 1
 4948:         b
 4949:         Callout 255 3 1
 4950:         c
 4951:         Callout 255 4 0
 4952:         Alt
 4953:         Callout 255 5 1
 4954:         d
 4955:         Callout 255 6 1
 4956:         e
 4957:         Callout 255 7 1
 4958:         f
 4959:         Callout 255 8 0
 4960:         Ket
 4961:         Callout 255 9 1
 4962:         x
 4963:         Callout 255 10 0
 4964:         Ket
 4965:         End
 4966: ------------------------------------------------------------------
 4967: Capturing subpattern count = 1
 4968: Options:
 4969: No first char
 4970: Need char = 'x'
 4971:   abcx
 4972: --->abcx
 4973:  +0 ^        (abc|def)
 4974:  +1 ^        a
 4975:  +2 ^^       b
 4976:  +3 ^ ^      c
 4977:  +4 ^  ^     |
 4978:  +9 ^  ^     x
 4979: +10 ^   ^    
 4980:  0: abcx
 4981:  1: abc
 4982:   defx
 4983: --->defx
 4984:  +0 ^        (abc|def)
 4985:  +1 ^        a
 4986:  +5 ^        d
 4987:  +6 ^^       e
 4988:  +7 ^ ^      f
 4989:  +8 ^  ^     )
 4990:  +9 ^  ^     x
 4991: +10 ^   ^    
 4992:  0: defx
 4993:  1: def
 4994:   ** Failers 
 4995: No match
 4996:   abcdefzx
 4997: --->abcdefzx
 4998:  +0 ^            (abc|def)
 4999:  +1 ^            a
 5000:  +2 ^^           b
 5001:  +3 ^ ^          c
 5002:  +4 ^  ^         |
 5003:  +9 ^  ^         x
 5004:  +5 ^            d
 5005:  +0  ^           (abc|def)
 5006:  +1  ^           a
 5007:  +5  ^           d
 5008:  +0   ^          (abc|def)
 5009:  +1   ^          a
 5010:  +5   ^          d
 5011:  +0    ^         (abc|def)
 5012:  +1    ^         a
 5013:  +5    ^         d
 5014:  +6    ^^        e
 5015:  +7    ^ ^       f
 5016:  +8    ^  ^      )
 5017:  +9    ^  ^      x
 5018:  +0     ^        (abc|def)
 5019:  +1     ^        a
 5020:  +5     ^        d
 5021:  +0      ^       (abc|def)
 5022:  +1      ^       a
 5023:  +5      ^       d
 5024:  +0       ^      (abc|def)
 5025:  +1       ^      a
 5026:  +5       ^      d
 5027:  +0        ^     (abc|def)
 5028:  +1        ^     a
 5029:  +5        ^     d
 5030: No match
 5031: 
 5032: /(ab|cd){3,4}/IC
 5033: Capturing subpattern count = 1
 5034: Options:
 5035: No first char
 5036: No need char
 5037:   ababab
 5038: --->ababab
 5039:  +0 ^          (ab|cd){3,4}
 5040:  +1 ^          a
 5041:  +2 ^^         b
 5042:  +3 ^ ^        |
 5043:  +1 ^ ^        a
 5044:  +2 ^  ^       b
 5045:  +3 ^   ^      |
 5046:  +1 ^   ^      a
 5047:  +2 ^    ^     b
 5048:  +3 ^     ^    |
 5049:  +1 ^     ^    a
 5050:  +4 ^     ^    c
 5051: +12 ^     ^    
 5052:  0: ababab
 5053:  1: ab
 5054:   abcdabcd
 5055: --->abcdabcd
 5056:  +0 ^            (ab|cd){3,4}
 5057:  +1 ^            a
 5058:  +2 ^^           b
 5059:  +3 ^ ^          |
 5060:  +1 ^ ^          a
 5061:  +4 ^ ^          c
 5062:  +5 ^  ^         d
 5063:  +6 ^   ^        )
 5064:  +1 ^   ^        a
 5065:  +2 ^    ^       b
 5066:  +3 ^     ^      |
 5067:  +1 ^     ^      a
 5068:  +4 ^     ^      c
 5069:  +5 ^      ^     d
 5070:  +6 ^       ^    )
 5071: +12 ^       ^    
 5072:  0: abcdabcd
 5073:  1: cd
 5074:   abcdcdcdcdcd
 5075: --->abcdcdcdcdcd
 5076:  +0 ^                (ab|cd){3,4}
 5077:  +1 ^                a
 5078:  +2 ^^               b
 5079:  +3 ^ ^              |
 5080:  +1 ^ ^              a
 5081:  +4 ^ ^              c
 5082:  +5 ^  ^             d
 5083:  +6 ^   ^            )
 5084:  +1 ^   ^            a
 5085:  +4 ^   ^            c
 5086:  +5 ^    ^           d
 5087:  +6 ^     ^          )
 5088:  +1 ^     ^          a
 5089:  +4 ^     ^          c
 5090:  +5 ^      ^         d
 5091:  +6 ^       ^        )
 5092: +12 ^       ^        
 5093:  0: abcdcdcd
 5094:  1: cd
 5095: 
 5096: /([ab]{,4}c|xy)/ICDZS
 5097: ------------------------------------------------------------------
 5098:         Bra
 5099:         Callout 255 0 14
 5100:         CBra 1
 5101:         Callout 255 1 4
 5102:         [ab]
 5103:         Callout 255 5 1
 5104:         {
 5105:         Callout 255 6 1
 5106:         ,
 5107:         Callout 255 7 1
 5108:         4
 5109:         Callout 255 8 1
 5110:         }
 5111:         Callout 255 9 1
 5112:         c
 5113:         Callout 255 10 0
 5114:         Alt
 5115:         Callout 255 11 1
 5116:         x
 5117:         Callout 255 12 1
 5118:         y
 5119:         Callout 255 13 0
 5120:         Ket
 5121:         Callout 255 14 0
 5122:         Ket
 5123:         End
 5124: ------------------------------------------------------------------
 5125: Capturing subpattern count = 1
 5126: Options:
 5127: No first char
 5128: No need char
 5129: Subject length lower bound = 2
 5130: Starting byte set: a b x 
 5131:     Note: that { does NOT introduce a quantifier
 5132: --->Note: that { does NOT introduce a quantifier
 5133:  +0         ^                                        ([ab]{,4}c|xy)
 5134:  +1         ^                                        [ab]
 5135:  +5         ^^                                       {
 5136: +11         ^                                        x
 5137:  +0                                 ^                ([ab]{,4}c|xy)
 5138:  +1                                 ^                [ab]
 5139:  +5                                 ^^               {
 5140: +11                                 ^                x
 5141:  +0                                     ^            ([ab]{,4}c|xy)
 5142:  +1                                     ^            [ab]
 5143:  +5                                     ^^           {
 5144: +11                                     ^            x
 5145: No match
 5146: 
 5147: /([ab]{,4}c|xy)/ICDZSS
 5148: ------------------------------------------------------------------
 5149:         Bra
 5150:         Callout 255 0 14
 5151:         CBra 1
 5152:         Callout 255 1 4
 5153:         [ab]
 5154:         Callout 255 5 1
 5155:         {
 5156:         Callout 255 6 1
 5157:         ,
 5158:         Callout 255 7 1
 5159:         4
 5160:         Callout 255 8 1
 5161:         }
 5162:         Callout 255 9 1
 5163:         c
 5164:         Callout 255 10 0
 5165:         Alt
 5166:         Callout 255 11 1
 5167:         x
 5168:         Callout 255 12 1
 5169:         y
 5170:         Callout 255 13 0
 5171:         Ket
 5172:         Callout 255 14 0
 5173:         Ket
 5174:         End
 5175: ------------------------------------------------------------------
 5176: Capturing subpattern count = 1
 5177: Options:
 5178: No first char
 5179: No need char
 5180:     Note: that { does NOT introduce a quantifier
 5181: --->Note: that { does NOT introduce a quantifier
 5182:  +0 ^                                                ([ab]{,4}c|xy)
 5183:  +1 ^                                                [ab]
 5184: +11 ^                                                x
 5185:  +0  ^                                               ([ab]{,4}c|xy)
 5186:  +1  ^                                               [ab]
 5187: +11  ^                                               x
 5188:  +0   ^                                              ([ab]{,4}c|xy)
 5189:  +1   ^                                              [ab]
 5190: +11   ^                                              x
 5191:  +0    ^                                             ([ab]{,4}c|xy)
 5192:  +1    ^                                             [ab]
 5193: +11    ^                                             x
 5194:  +0     ^                                            ([ab]{,4}c|xy)
 5195:  +1     ^                                            [ab]
 5196: +11     ^                                            x
 5197:  +0      ^                                           ([ab]{,4}c|xy)
 5198:  +1      ^                                           [ab]
 5199: +11      ^                                           x
 5200:  +0       ^                                          ([ab]{,4}c|xy)
 5201:  +1       ^                                          [ab]
 5202: +11       ^                                          x
 5203:  +0        ^                                         ([ab]{,4}c|xy)
 5204:  +1        ^                                         [ab]
 5205: +11        ^                                         x
 5206:  +0         ^                                        ([ab]{,4}c|xy)
 5207:  +1         ^                                        [ab]
 5208:  +5         ^^                                       {
 5209: +11         ^                                        x
 5210:  +0          ^                                       ([ab]{,4}c|xy)
 5211:  +1          ^                                       [ab]
 5212: +11          ^                                       x
 5213:  +0           ^                                      ([ab]{,4}c|xy)
 5214:  +1           ^                                      [ab]
 5215: +11           ^                                      x
 5216:  +0            ^                                     ([ab]{,4}c|xy)
 5217:  +1            ^                                     [ab]
 5218: +11            ^                                     x
 5219:  +0             ^                                    ([ab]{,4}c|xy)
 5220:  +1             ^                                    [ab]
 5221: +11             ^                                    x
 5222:  +0              ^                                   ([ab]{,4}c|xy)
 5223:  +1              ^                                   [ab]
 5224: +11              ^                                   x
 5225:  +0               ^                                  ([ab]{,4}c|xy)
 5226:  +1               ^                                  [ab]
 5227: +11               ^                                  x
 5228:  +0                ^                                 ([ab]{,4}c|xy)
 5229:  +1                ^                                 [ab]
 5230: +11                ^                                 x
 5231:  +0                 ^                                ([ab]{,4}c|xy)
 5232:  +1                 ^                                [ab]
 5233: +11                 ^                                x
 5234:  +0                  ^                               ([ab]{,4}c|xy)
 5235:  +1                  ^                               [ab]
 5236: +11                  ^                               x
 5237:  +0                   ^                              ([ab]{,4}c|xy)
 5238:  +1                   ^                              [ab]
 5239: +11                   ^                              x
 5240:  +0                    ^                             ([ab]{,4}c|xy)
 5241:  +1                    ^                             [ab]
 5242: +11                    ^                             x
 5243:  +0                     ^                            ([ab]{,4}c|xy)
 5244:  +1                     ^                            [ab]
 5245: +11                     ^                            x
 5246:  +0                      ^                           ([ab]{,4}c|xy)
 5247:  +1                      ^                           [ab]
 5248: +11                      ^                           x
 5249:  +0                       ^                          ([ab]{,4}c|xy)
 5250:  +1                       ^                          [ab]
 5251: +11                       ^                          x
 5252:  +0                        ^                         ([ab]{,4}c|xy)
 5253:  +1                        ^                         [ab]
 5254: +11                        ^                         x
 5255:  +0                         ^                        ([ab]{,4}c|xy)
 5256:  +1                         ^                        [ab]
 5257: +11                         ^                        x
 5258:  +0                          ^                       ([ab]{,4}c|xy)
 5259:  +1                          ^                       [ab]
 5260: +11                          ^                       x
 5261:  +0                           ^                      ([ab]{,4}c|xy)
 5262:  +1                           ^                      [ab]
 5263: +11                           ^                      x
 5264:  +0                            ^                     ([ab]{,4}c|xy)
 5265:  +1                            ^                     [ab]
 5266: +11                            ^                     x
 5267:  +0                             ^                    ([ab]{,4}c|xy)
 5268:  +1                             ^                    [ab]
 5269: +11                             ^                    x
 5270:  +0                              ^                   ([ab]{,4}c|xy)
 5271:  +1                              ^                   [ab]
 5272: +11                              ^                   x
 5273:  +0                               ^                  ([ab]{,4}c|xy)
 5274:  +1                               ^                  [ab]
 5275: +11                               ^                  x
 5276:  +0                                ^                 ([ab]{,4}c|xy)
 5277:  +1                                ^                 [ab]
 5278: +11                                ^                 x
 5279:  +0                                 ^                ([ab]{,4}c|xy)
 5280:  +1                                 ^                [ab]
 5281:  +5                                 ^^               {
 5282: +11                                 ^                x
 5283:  +0                                  ^               ([ab]{,4}c|xy)
 5284:  +1                                  ^               [ab]
 5285: +11                                  ^               x
 5286:  +0                                   ^              ([ab]{,4}c|xy)
 5287:  +1                                   ^              [ab]
 5288: +11                                   ^              x
 5289:  +0                                    ^             ([ab]{,4}c|xy)
 5290:  +1                                    ^             [ab]
 5291: +11                                    ^             x
 5292:  +0                                     ^            ([ab]{,4}c|xy)
 5293:  +1                                     ^            [ab]
 5294:  +5                                     ^^           {
 5295: +11                                     ^            x
 5296:  +0                                      ^           ([ab]{,4}c|xy)
 5297:  +1                                      ^           [ab]
 5298: +11                                      ^           x
 5299:  +0                                       ^          ([ab]{,4}c|xy)
 5300:  +1                                       ^          [ab]
 5301: +11                                       ^          x
 5302:  +0                                        ^         ([ab]{,4}c|xy)
 5303:  +1                                        ^         [ab]
 5304: +11                                        ^         x
 5305:  +0                                         ^        ([ab]{,4}c|xy)
 5306:  +1                                         ^        [ab]
 5307: +11                                         ^        x
 5308:  +0                                          ^       ([ab]{,4}c|xy)
 5309:  +1                                          ^       [ab]
 5310: +11                                          ^       x
 5311:  +0                                           ^      ([ab]{,4}c|xy)
 5312:  +1                                           ^      [ab]
 5313: +11                                           ^      x
 5314:  +0                                            ^     ([ab]{,4}c|xy)
 5315:  +1                                            ^     [ab]
 5316: +11                                            ^     x
 5317:  +0                                             ^    ([ab]{,4}c|xy)
 5318:  +1                                             ^    [ab]
 5319: +11                                             ^    x
 5320: No match
 5321: 
 5322: /([ab]{1,4}c|xy){4,5}?123/ICDZ
 5323: ------------------------------------------------------------------
 5324:         Bra
 5325:         Callout 255 0 21
 5326:         CBra 1
 5327:         Callout 255 1 9
 5328:         [ab]{1,4}+
 5329:         Callout 255 10 1
 5330:         c
 5331:         Callout 255 11 0
 5332:         Alt
 5333:         Callout 255 12 1
 5334:         x
 5335:         Callout 255 13 1
 5336:         y
 5337:         Callout 255 14 0
 5338:         Ket
 5339:         CBra 1
 5340:         Callout 255 1 9
 5341:         [ab]{1,4}+
 5342:         Callout 255 10 1
 5343:         c
 5344:         Callout 255 11 0
 5345:         Alt
 5346:         Callout 255 12 1
 5347:         x
 5348:         Callout 255 13 1
 5349:         y
 5350:         Callout 255 14 0
 5351:         Ket
 5352:         CBra 1
 5353:         Callout 255 1 9
 5354:         [ab]{1,4}+
 5355:         Callout 255 10 1
 5356:         c
 5357:         Callout 255 11 0
 5358:         Alt
 5359:         Callout 255 12 1
 5360:         x
 5361:         Callout 255 13 1
 5362:         y
 5363:         Callout 255 14 0
 5364:         Ket
 5365:         CBra 1
 5366:         Callout 255 1 9
 5367:         [ab]{1,4}+
 5368:         Callout 255 10 1
 5369:         c
 5370:         Callout 255 11 0
 5371:         Alt
 5372:         Callout 255 12 1
 5373:         x
 5374:         Callout 255 13 1
 5375:         y
 5376:         Callout 255 14 0
 5377:         Ket
 5378:         Braminzero
 5379:         CBra 1
 5380:         Callout 255 1 9
 5381:         [ab]{1,4}+
 5382:         Callout 255 10 1
 5383:         c
 5384:         Callout 255 11 0
 5385:         Alt
 5386:         Callout 255 12 1
 5387:         x
 5388:         Callout 255 13 1
 5389:         y
 5390:         Callout 255 14 0
 5391:         Ket
 5392:         Callout 255 21 1
 5393:         1
 5394:         Callout 255 22 1
 5395:         2
 5396:         Callout 255 23 1
 5397:         3
 5398:         Callout 255 24 0
 5399:         Ket
 5400:         End
 5401: ------------------------------------------------------------------
 5402: Capturing subpattern count = 1
 5403: Options:
 5404: No first char
 5405: Need char = '3'
 5406:     aacaacaacaacaac123
 5407: --->aacaacaacaacaac123
 5408:  +0 ^                      ([ab]{1,4}c|xy){4,5}?
 5409:  +1 ^                      [ab]{1,4}
 5410: +10 ^ ^                    c
 5411: +11 ^  ^                   |
 5412:  +1 ^  ^                   [ab]{1,4}
 5413: +10 ^    ^                 c
 5414: +11 ^     ^                |
 5415:  +1 ^     ^                [ab]{1,4}
 5416: +10 ^       ^              c
 5417: +11 ^        ^             |
 5418:  +1 ^        ^             [ab]{1,4}
 5419: +10 ^          ^           c
 5420: +11 ^           ^          |
 5421: +21 ^           ^          1
 5422:  +1 ^           ^          [ab]{1,4}
 5423: +10 ^             ^        c
 5424: +11 ^              ^       |
 5425: +21 ^              ^       1
 5426: +22 ^               ^      2
 5427: +23 ^                ^     3
 5428: +24 ^                 ^    
 5429:  0: aacaacaacaacaac123
 5430:  1: aac
 5431: 
 5432: /\b.*/I
 5433: Capturing subpattern count = 0
 5434: Max lookbehind = 1
 5435: May match empty string
 5436: No options
 5437: No first char
 5438: No need char
 5439:   ab cd\>1
 5440:  0:  cd
 5441: 
 5442: /\b.*/Is
 5443: Capturing subpattern count = 0
 5444: Max lookbehind = 1
 5445: May match empty string
 5446: Options: dotall
 5447: No first char
 5448: No need char
 5449:   ab cd\>1
 5450:  0:  cd
 5451: 
 5452: /(?!.bcd).*/I
 5453: Capturing subpattern count = 0
 5454: May match empty string
 5455: No options
 5456: No first char
 5457: No need char
 5458:   Xbcd12345
 5459:  0: bcd12345
 5460: 
 5461: /abcde/I
 5462: Capturing subpattern count = 0
 5463: No options
 5464: First char = 'a'
 5465: Need char = 'e'
 5466:     ab\P
 5467: Partial match: ab
 5468:     abc\P
 5469: Partial match: abc
 5470:     abcd\P
 5471: Partial match: abcd
 5472:     abcde\P
 5473:  0: abcde
 5474:     the quick brown abc\P
 5475: Partial match: abc
 5476:     ** Failers\P
 5477: No match
 5478:     the quick brown abxyz fox\P
 5479: No match
 5480: 
 5481: "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
 5482: Capturing subpattern count = 3
 5483: Options: anchored
 5484: No first char
 5485: Need char = '/'
 5486:     13/05/04\P
 5487:  0: 13/05/04
 5488:  1: 13
 5489:  2: 05
 5490:     13/5/2004\P
 5491:  0: 13/5/2004
 5492:  1: 13
 5493:  2: 5
 5494:  3: 20
 5495:     02/05/09\P
 5496:  0: 02/05/09
 5497:  1: 02
 5498:  2: 05
 5499:     1\P
 5500: Partial match: 1
 5501:     1/2\P
 5502: Partial match: 1/2
 5503:     1/2/0\P
 5504: Partial match: 1/2/0
 5505:     1/2/04\P
 5506:  0: 1/2/04
 5507:  1: 1
 5508:  2: 2
 5509:     0\P
 5510: Partial match: 0
 5511:     02/\P
 5512: Partial match: 02/
 5513:     02/0\P
 5514: Partial match: 02/0
 5515:     02/1\P
 5516: Partial match: 02/1
 5517:     ** Failers\P
 5518: No match
 5519:     \P
 5520: No match
 5521:     123\P
 5522: No match
 5523:     33/4/04\P
 5524: No match
 5525:     3/13/04\P
 5526: No match
 5527:     0/1/2003\P
 5528: No match
 5529:     0/\P
 5530: No match
 5531:     02/0/\P
 5532: No match
 5533:     02/13\P
 5534: No match
 5535: 
 5536: /0{0,2}ABC/I
 5537: Capturing subpattern count = 0
 5538: No options
 5539: No first char
 5540: Need char = 'C'
 5541: 
 5542: /\d{3,}ABC/I
 5543: Capturing subpattern count = 0
 5544: No options
 5545: No first char
 5546: Need char = 'C'
 5547: 
 5548: /\d*ABC/I
 5549: Capturing subpattern count = 0
 5550: No options
 5551: No first char
 5552: Need char = 'C'
 5553: 
 5554: /[abc]+DE/I
 5555: Capturing subpattern count = 0
 5556: No options
 5557: No first char
 5558: Need char = 'E'
 5559: 
 5560: /[abc]?123/I
 5561: Capturing subpattern count = 0
 5562: No options
 5563: No first char
 5564: Need char = '3'
 5565:     123\P
 5566:  0: 123
 5567:     a\P
 5568: Partial match: a
 5569:     b\P
 5570: Partial match: b
 5571:     c\P
 5572: Partial match: c
 5573:     c12\P
 5574: Partial match: c12
 5575:     c123\P
 5576:  0: c123
 5577: 
 5578: /^(?:\d){3,5}X/I
 5579: Capturing subpattern count = 0
 5580: Options: anchored
 5581: No first char
 5582: Need char = 'X'
 5583:     1\P
 5584: Partial match: 1
 5585:     123\P
 5586: Partial match: 123
 5587:     123X
 5588:  0: 123X
 5589:     1234\P
 5590: Partial match: 1234
 5591:     1234X
 5592:  0: 1234X
 5593:     12345\P
 5594: Partial match: 12345
 5595:     12345X
 5596:  0: 12345X
 5597:     *** Failers
 5598: No match
 5599:     1X
 5600: No match
 5601:     123456\P
 5602: No match
 5603: 
 5604: /abc/IS>testsavedregex
 5605: Capturing subpattern count = 0
 5606: No options
 5607: First char = 'a'
 5608: Need char = 'c'
 5609: Subject length lower bound = 3
 5610: No set of starting bytes
 5611: Compiled pattern written to testsavedregex
 5612: Study data written to testsavedregex
 5613: <testsavedregex
 5614: Compiled pattern loaded from testsavedregex
 5615: Study data loaded from testsavedregex
 5616:     abc
 5617:  0: abc
 5618:     ** Failers
 5619: No match
 5620:     bca
 5621: No match
 5622: 
 5623: /abc/ISS>testsavedregex
 5624: Capturing subpattern count = 0
 5625: No options
 5626: First char = 'a'
 5627: Need char = 'c'
 5628: Compiled pattern written to testsavedregex
 5629: <testsavedregex
 5630: Compiled pattern loaded from testsavedregex
 5631: No study data
 5632:     abc
 5633:  0: abc
 5634:     ** Failers
 5635: No match
 5636:     bca
 5637: No match
 5638: 
 5639: /abc/IFS>testsavedregex
 5640: Capturing subpattern count = 0
 5641: No options
 5642: First char = 'a'
 5643: Need char = 'c'
 5644: Subject length lower bound = 3
 5645: No set of starting bytes
 5646: Compiled pattern written to testsavedregex
 5647: Study data written to testsavedregex
 5648: <testsavedregex
 5649: Compiled pattern (byte-inverted) loaded from testsavedregex
 5650: Study data loaded from testsavedregex
 5651:     abc
 5652:  0: abc
 5653:     ** Failers
 5654: No match
 5655:     bca
 5656: No match
 5657: 
 5658: /abc/IFSS>testsavedregex
 5659: Capturing subpattern count = 0
 5660: No options
 5661: First char = 'a'
 5662: Need char = 'c'
 5663: Compiled pattern written to testsavedregex
 5664: <testsavedregex
 5665: Compiled pattern (byte-inverted) loaded from testsavedregex
 5666: No study data
 5667:     abc
 5668:  0: abc
 5669:     ** Failers
 5670: No match
 5671:     bca
 5672: No match
 5673: 
 5674: /(a|b)/IS>testsavedregex
 5675: Capturing subpattern count = 1
 5676: No options
 5677: No first char
 5678: No need char
 5679: Subject length lower bound = 1
 5680: Starting byte set: a b 
 5681: Compiled pattern written to testsavedregex
 5682: Study data written to testsavedregex
 5683: <testsavedregex
 5684: Compiled pattern loaded from testsavedregex
 5685: Study data loaded from testsavedregex
 5686:     abc
 5687:  0: a
 5688:  1: a
 5689:     ** Failers
 5690:  0: a
 5691:  1: a
 5692:     def
 5693: No match
 5694: 
 5695: /(a|b)/ISS>testsavedregex
 5696: Capturing subpattern count = 1
 5697: No options
 5698: No first char
 5699: No need char
 5700: Compiled pattern written to testsavedregex
 5701: <testsavedregex
 5702: Compiled pattern loaded from testsavedregex
 5703: No study data
 5704:     abc
 5705:  0: a
 5706:  1: a
 5707:     ** Failers
 5708:  0: a
 5709:  1: a
 5710:     def
 5711: No match
 5712: 
 5713: /(a|b)/ISF>testsavedregex
 5714: Capturing subpattern count = 1
 5715: No options
 5716: No first char
 5717: No need char
 5718: Subject length lower bound = 1
 5719: Starting byte set: a b 
 5720: Compiled pattern written to testsavedregex
 5721: Study data written to testsavedregex
 5722: <testsavedregex
 5723: Compiled pattern (byte-inverted) loaded from testsavedregex
 5724: Study data loaded from testsavedregex
 5725:     abc
 5726:  0: a
 5727:  1: a
 5728:     ** Failers
 5729:  0: a
 5730:  1: a
 5731:     def
 5732: No match
 5733: 
 5734: /(a|b)/ISSF>testsavedregex
 5735: Capturing subpattern count = 1
 5736: No options
 5737: No first char
 5738: No need char
 5739: Compiled pattern written to testsavedregex
 5740: <testsavedregex
 5741: Compiled pattern (byte-inverted) loaded from testsavedregex
 5742: No study data
 5743:     abc
 5744:  0: a
 5745:  1: a
 5746:     ** Failers
 5747:  0: a
 5748:  1: a
 5749:     def
 5750: No match
 5751: 
 5752: ~<(\w+)/?>(.)*</(\1)>~smgI
 5753: Capturing subpattern count = 3
 5754: Max back reference = 1
 5755: Options: multiline dotall
 5756: First char = '<'
 5757: Need char = '>'
 5758:     \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>
 5759:  0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>
 5760:  1: seite
 5761:  2: \x0a
 5762:  3: seite
 5763: 
 5764: /^a/IF
 5765: Capturing subpattern count = 0
 5766: Options: anchored
 5767: No first char
 5768: No need char
 5769: 
 5770: /line\nbreak/I
 5771: Capturing subpattern count = 0
 5772: Contains explicit CR or LF match
 5773: No options
 5774: First char = 'l'
 5775: Need char = 'k'
 5776:     this is a line\nbreak
 5777:  0: line\x0abreak
 5778:     line one\nthis is a line\nbreak in the second line
 5779:  0: line\x0abreak
 5780: 
 5781: /line\nbreak/If
 5782: Capturing subpattern count = 0
 5783: Contains explicit CR or LF match
 5784: Options: firstline
 5785: First char = 'l'
 5786: Need char = 'k'
 5787:     this is a line\nbreak
 5788:  0: line\x0abreak
 5789:     ** Failers
 5790: No match
 5791:     line one\nthis is a line\nbreak in the second line
 5792: No match
 5793: 
 5794: /line\nbreak/Imf
 5795: Capturing subpattern count = 0
 5796: Contains explicit CR or LF match
 5797: Options: multiline firstline
 5798: First char = 'l'
 5799: Need char = 'k'
 5800:     this is a line\nbreak
 5801:  0: line\x0abreak
 5802:     ** Failers
 5803: No match
 5804:     line one\nthis is a line\nbreak in the second line
 5805: No match
 5806: 
 5807: /(?i)(?-i)AbCd/I
 5808: Capturing subpattern count = 0
 5809: No options
 5810: First char = 'A'
 5811: Need char = 'd'
 5812:     AbCd
 5813:  0: AbCd
 5814:     ** Failers
 5815: No match
 5816:     abcd
 5817: No match
 5818: 
 5819: /a{11111111111111111111}/I
 5820: Failed: number too big in {} quantifier at offset 22
 5821: 
 5822: /(){64294967295}/I
 5823: Failed: number too big in {} quantifier at offset 14
 5824: 
 5825: /(){2,4294967295}/I
 5826: Failed: number too big in {} quantifier at offset 15
 5827: 
 5828: "(?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
 5829: Capturing subpattern count = 1
 5830: Max back reference = 1
 5831: No options
 5832: First char = 'a' (caseless)
 5833: Need char = 'B'
 5834:     abcdefghijklAkB
 5835:  0: abcdefghijklAkB
 5836:  1: k
 5837: 
 5838: "(?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
 5839: Capturing subpattern count = 12
 5840: Max back reference = 11
 5841: Named capturing subpatterns:
 5842:   n0    1
 5843:   n1    2
 5844:   n10  11
 5845:   n11  12
 5846:   n2    3
 5847:   n3    4
 5848:   n4    5
 5849:   n5    6
 5850:   n6    7
 5851:   n7    8
 5852:   n8    9
 5853:   n9   10
 5854: No options
 5855: First char = 'a'
 5856: Need char = 'B'
 5857:     abcdefghijklAkB
 5858:  0: abcdefghijklAkB
 5859:  1: a
 5860:  2: b
 5861:  3: c
 5862:  4: d
 5863:  5: e
 5864:  6: f
 5865:  7: g
 5866:  8: h
 5867:  9: i
 5868: 10: j
 5869: 11: k
 5870: 12: l
 5871: 
 5872: "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
 5873: Capturing subpattern count = 12
 5874: Max back reference = 11
 5875: No options
 5876: First char = 'a'
 5877: Need char = 'B'
 5878:     abcdefghijklAkB
 5879:  0: abcdefghijklAkB
 5880:  1: a
 5881:  2: b
 5882:  3: c
 5883:  4: d
 5884:  5: e
 5885:  6: f
 5886:  7: g
 5887:  8: h
 5888:  9: i
 5889: 10: j
 5890: 11: k
 5891: 12: l
 5892: 
 5893: "(?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
 5894: Capturing subpattern count = 101
 5895: Named capturing subpatterns:
 5896:   name0     1
 5897:   name1     2
 5898:   name10   11
 5899:   name100 101
 5900:   name11   12
 5901:   name12   13
 5902:   name13   14
 5903:   name14   15
 5904:   name15   16
 5905:   name16   17
 5906:   name17   18
 5907:   name18   19
 5908:   name19   20
 5909:   name2     3
 5910:   name20   21
 5911:   name21   22
 5912:   name22   23
 5913:   name23   24
 5914:   name24   25
 5915:   name25   26
 5916:   name26   27
 5917:   name27   28
 5918:   name28   29
 5919:   name29   30
 5920:   name3     4
 5921:   name30   31
 5922:   name31   32
 5923:   name32   33
 5924:   name33   34
 5925:   name34   35
 5926:   name35   36
 5927:   name36   37
 5928:   name37   38
 5929:   name38   39
 5930:   name39   40
 5931:   name4     5
 5932:   name40   41
 5933:   name41   42
 5934:   name42   43
 5935:   name43   44
 5936:   name44   45
 5937:   name45   46
 5938:   name46   47
 5939:   name47   48
 5940:   name48   49
 5941:   name49   50
 5942:   name5     6
 5943:   name50   51
 5944:   name51   52
 5945:   name52   53
 5946:   name53   54
 5947:   name54   55
 5948:   name55   56
 5949:   name56   57
 5950:   name57   58
 5951:   name58   59
 5952:   name59   60
 5953:   name6     7
 5954:   name60   61
 5955:   name61   62
 5956:   name62   63
 5957:   name63   64
 5958:   name64   65
 5959:   name65   66
 5960:   name66   67
 5961:   name67   68
 5962:   name68   69
 5963:   name69   70
 5964:   name7     8
 5965:   name70   71
 5966:   name71   72
 5967:   name72   73
 5968:   name73   74
 5969:   name74   75
 5970:   name75   76
 5971:   name76   77
 5972:   name77   78
 5973:   name78   79
 5974:   name79   80
 5975:   name8     9
 5976:   name80   81
 5977:   name81   82
 5978:   name82   83
 5979:   name83   84
 5980:   name84   85
 5981:   name85   86
 5982:   name86   87
 5983:   name87   88
 5984:   name88   89
 5985:   name89   90
 5986:   name9    10
 5987:   name90   91
 5988:   name91   92
 5989:   name92   93
 5990:   name93   94
 5991:   name94   95
 5992:   name95   96
 5993:   name96   97
 5994:   name97   98
 5995:   name98   99
 5996:   name99  100
 5997: No options
 5998: First char = 'a'
 5999: Need char = 'a'
 6000:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 6001: Matched, but too many substrings
 6002:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 6003:  1: a
 6004:  2: a
 6005:  3: a
 6006:  4: a
 6007:  5: a
 6008:  6: a
 6009:  7: a
 6010:  8: a
 6011:  9: a
 6012: 10: a
 6013: 11: a
 6014: 12: a
 6015: 13: a
 6016: 14: a
 6017: 
 6018: "(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(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
 6019: Capturing subpattern count = 101
 6020: No options
 6021: First char = 'a'
 6022: Need char = 'a'
 6023:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 6024: Matched, but too many substrings
 6025:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 6026:  1: a
 6027:  2: a
 6028:  3: a
 6029:  4: a
 6030:  5: a
 6031:  6: a
 6032:  7: a
 6033:  8: a
 6034:  9: a
 6035: 10: a
 6036: 11: a
 6037: 12: a
 6038: 13: a
 6039: 14: a
 6040: 
 6041: /[^()]*(?:\((?R)\)[^()]*)*/I
 6042: Capturing subpattern count = 0
 6043: May match empty string
 6044: No options
 6045: No first char
 6046: No need char
 6047:     (this(and)that
 6048:  0: 
 6049:     (this(and)that)
 6050:  0: (this(and)that)
 6051:     (this(and)that)stuff
 6052:  0: (this(and)that)stuff
 6053: 
 6054: /[^()]*(?:\((?>(?R))\)[^()]*)*/I
 6055: Capturing subpattern count = 0
 6056: May match empty string
 6057: No options
 6058: No first char
 6059: No need char
 6060:     (this(and)that
 6061:  0: 
 6062:     (this(and)that)
 6063:  0: (this(and)that)
 6064: 
 6065: /[^()]*(?:\((?R)\))*[^()]*/I
 6066: Capturing subpattern count = 0
 6067: May match empty string
 6068: No options
 6069: No first char
 6070: No need char
 6071:     (this(and)that
 6072:  0: 
 6073:     (this(and)that)
 6074:  0: (this(and)that)
 6075: 
 6076: /(?:\((?R)\))*[^()]*/I
 6077: Capturing subpattern count = 0
 6078: May match empty string
 6079: No options
 6080: No first char
 6081: No need char
 6082:     (this(and)that
 6083:  0: 
 6084:     (this(and)that)
 6085:  0: 
 6086:     ((this))
 6087:  0: ((this))
 6088: 
 6089: /(?:\((?R)\))|[^()]*/I
 6090: Capturing subpattern count = 0
 6091: May match empty string
 6092: No options
 6093: No first char
 6094: No need char
 6095:     (this(and)that
 6096:  0: 
 6097:     (this(and)that)
 6098:  0: 
 6099:     (this)
 6100:  0: (this)
 6101:     ((this))
 6102:  0: ((this))
 6103: 
 6104: /\x{0000ff}/I
 6105: Capturing subpattern count = 0
 6106: No options
 6107: First char = \xff
 6108: No need char
 6109: 
 6110: /^((?P<A>a1)|(?P<A>a2)b)/I
 6111: Failed: two named subpatterns have the same name at offset 17
 6112: 
 6113: /^((?P<A>a1)|(?P<A>a2)b)/IJ
 6114: Capturing subpattern count = 3
 6115: Named capturing subpatterns:
 6116:   A   2
 6117:   A   3
 6118: Options: anchored dupnames
 6119: No first char
 6120: No need char
 6121:     a1b\CA
 6122:  0: a1
 6123:  1: a1
 6124:  2: a1
 6125:   C a1 (2) A
 6126:     a2b\CA
 6127:  0: a2b
 6128:  1: a2b
 6129:  2: <unset>
 6130:  3: a2
 6131:   C a2 (2) A
 6132:     ** Failers
 6133: No match
 6134:     a1b\CZ\CA
 6135: no parentheses with name "Z"
 6136:  0: a1
 6137:  1: a1
 6138:  2: a1
 6139: copy substring Z failed -7
 6140:   C a1 (2) A
 6141:     
 6142: /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
 6143: Capturing subpattern count = 3
 6144: Named capturing subpatterns:
 6145:   a   1
 6146:   a   3
 6147:   b   2
 6148: May match empty string
 6149: Options: dupnames
 6150: No first char
 6151: No need char
 6152: 
 6153: /^(?P<A>a)(?P<A>b)/IJ
 6154: Capturing subpattern count = 2
 6155: Named capturing subpatterns:
 6156:   A   1
 6157:   A   2
 6158: Options: anchored dupnames
 6159: No first char
 6160: No need char
 6161:     ab\CA
 6162:  0: ab
 6163:  1: a
 6164:  2: b
 6165:   C a (1) A
 6166: 
 6167: /^(?P<A>a)(?P<A>b)|cd/IJ
 6168: Capturing subpattern count = 2
 6169: Named capturing subpatterns:
 6170:   A   1
 6171:   A   2
 6172: Options: dupnames
 6173: No first char
 6174: No need char
 6175:     ab\CA
 6176:  0: ab
 6177:  1: a
 6178:  2: b
 6179:   C a (1) A
 6180:     cd\CA
 6181:  0: cd
 6182: copy substring A failed -7
 6183: 
 6184: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
 6185: Capturing subpattern count = 4
 6186: Named capturing subpatterns:
 6187:   A   1
 6188:   A   2
 6189:   A   3
 6190:   A   4
 6191: Options: dupnames
 6192: No first char
 6193: No need char
 6194:     cdefgh\CA
 6195:  0: cdefgh
 6196:  1: <unset>
 6197:  2: <unset>
 6198:  3: ef
 6199:  4: gh
 6200:   C ef (2) A
 6201: 
 6202: /^((?P<A>a1)|(?P<A>a2)b)/IJ
 6203: Capturing subpattern count = 3
 6204: Named capturing subpatterns:
 6205:   A   2
 6206:   A   3
 6207: Options: anchored dupnames
 6208: No first char
 6209: No need char
 6210:     a1b\GA
 6211:  0: a1
 6212:  1: a1
 6213:  2: a1
 6214:   G a1 (2) A
 6215:     a2b\GA
 6216:  0: a2b
 6217:  1: a2b
 6218:  2: <unset>
 6219:  3: a2
 6220:   G a2 (2) A
 6221:     ** Failers
 6222: No match
 6223:     a1b\GZ\GA
 6224: no parentheses with name "Z"
 6225:  0: a1
 6226:  1: a1
 6227:  2: a1
 6228: get substring Z failed -7
 6229:   G a1 (2) A
 6230: 
 6231: /^(?P<A>a)(?P<A>b)/IJ
 6232: Capturing subpattern count = 2
 6233: Named capturing subpatterns:
 6234:   A   1
 6235:   A   2
 6236: Options: anchored dupnames
 6237: No first char
 6238: No need char
 6239:     ab\GA
 6240:  0: ab
 6241:  1: a
 6242:  2: b
 6243:   G a (1) A
 6244: 
 6245: /^(?P<A>a)(?P<A>b)|cd/IJ
 6246: Capturing subpattern count = 2
 6247: Named capturing subpatterns:
 6248:   A   1
 6249:   A   2
 6250: Options: dupnames
 6251: No first char
 6252: No need char
 6253:     ab\GA
 6254:  0: ab
 6255:  1: a
 6256:  2: b
 6257:   G a (1) A
 6258:     cd\GA
 6259:  0: cd
 6260: get substring A failed -7
 6261: 
 6262: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
 6263: Capturing subpattern count = 4
 6264: Named capturing subpatterns:
 6265:   A   1
 6266:   A   2
 6267:   A   3
 6268:   A   4
 6269: Options: dupnames
 6270: No first char
 6271: No need char
 6272:     cdefgh\GA
 6273:  0: cdefgh
 6274:  1: <unset>
 6275:  2: <unset>
 6276:  3: ef
 6277:  4: gh
 6278:   G ef (2) A
 6279: 
 6280: /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
 6281: Capturing subpattern count = 3
 6282: Named capturing subpatterns:
 6283:   A   2
 6284:   A   3
 6285: Options: anchored dupnames
 6286: Duplicate name status changes
 6287: No first char
 6288: No need char
 6289:     a1b\CA
 6290:  0: a1
 6291:  1: a1
 6292:  2: a1
 6293:   C a1 (2) A
 6294:     a2b\CA
 6295:  0: a2b
 6296:  1: a2b
 6297:  2: <unset>
 6298:  3: a2
 6299:   C a2 (2) A
 6300: 
 6301: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
 6302: Failed: two named subpatterns have the same name at offset 37
 6303: 
 6304: / In this next test, J is not set at the outer level; consequently it isn't
 6305: set in the pattern's options; consequently pcre_get_named_substring() produces
 6306: a random value. /Ix
 6307: Capturing subpattern count = 1
 6308: Options: extended
 6309: First char = 'I'
 6310: Need char = 'e'
 6311: 
 6312: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
 6313: Capturing subpattern count = 4
 6314: Named capturing subpatterns:
 6315:   A   1
 6316:   B   2
 6317:   B   3
 6318:   C   4
 6319: Options: anchored
 6320: Duplicate name status changes
 6321: No first char
 6322: No need char
 6323:     a bc d\CA\CB\CC
 6324:  0: a bc d
 6325:  1: a
 6326:  2: b
 6327:  3: c
 6328:  4: d
 6329:   C a (1) A
 6330:   C b (1) B
 6331:   C d (1) C
 6332: 
 6333: /^(?P<A>a)?(?(A)a|b)/I
 6334: Capturing subpattern count = 1
 6335: Named capturing subpatterns:
 6336:   A   1
 6337: Options: anchored
 6338: No first char
 6339: No need char
 6340:     aabc
 6341:  0: aa
 6342:  1: a
 6343:     bc
 6344:  0: b
 6345:     ** Failers
 6346: No match
 6347:     abc
 6348: No match
 6349: 
 6350: /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
 6351: Capturing subpattern count = 1
 6352: Named capturing subpatterns:
 6353:   ZZ   1
 6354: No options
 6355: No first char
 6356: Need char = 'X'
 6357:     bXaX
 6358:  0: bXaX
 6359:  1: X
 6360: 
 6361: /(?:(?(2y)a|b)(X))+/I
 6362: Failed: malformed number or name after (?( at offset 7
 6363: 
 6364: /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
 6365: Failed: reference to non-existent subpattern at offset 9
 6366: 
 6367: /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
 6368: Capturing subpattern count = 1
 6369: Named capturing subpatterns:
 6370:   ZZ   1
 6371: No options
 6372: No first char
 6373: Need char = 'X'
 6374:     bbXaaX
 6375:  0: bbXaaX
 6376:  1: X
 6377: 
 6378: /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
 6379: Capturing subpattern count = 1
 6380: Named capturing subpatterns:
 6381:   ZZ   1
 6382: No options
 6383: No first char
 6384: Need char = 'X'
 6385:     (b)\\Xa\\X
 6386:  0: (b)\Xa\X
 6387:  1: X
 6388: 
 6389: /(?P<ABC/I
 6390: Failed: syntax error in subpattern name (missing terminator) at offset 7
 6391: 
 6392: /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
 6393: Capturing subpattern count = 1
 6394: Max back reference = 1
 6395: Named capturing subpatterns:
 6396:   A   1
 6397: No options
 6398: No first char
 6399: No need char
 6400:     bXXaYYaY
 6401:  0: bXXaYYaY
 6402:  1: Y
 6403:     bXYaXXaX
 6404:  0: bX
 6405:  1: X
 6406: 
 6407: /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
 6408: Capturing subpattern count = 10
 6409: Max back reference = 10
 6410: Named capturing subpatterns:
 6411:   A  10
 6412: No options
 6413: No first char
 6414: No need char
 6415:     bXXaYYaY
 6416:  0: bXXaYYaY
 6417:  1: 
 6418:  2: 
 6419:  3: 
 6420:  4: 
 6421:  5: 
 6422:  6: 
 6423:  7: 
 6424:  8: 
 6425:  9: 
 6426: 10: Y
 6427: 
 6428: /\s*,\s*/IS
 6429: Capturing subpattern count = 0
 6430: No options
 6431: No first char
 6432: Need char = ','
 6433: Subject length lower bound = 1
 6434: Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 , 
 6435:     \x0b,\x0b
 6436:  0: \x0b,\x0b
 6437:     \x0c,\x0d
 6438:  0: \x0c,\x0d
 6439: 
 6440: /^abc/Im
 6441: Capturing subpattern count = 0
 6442: Options: multiline
 6443: First char at start or follows newline
 6444: Need char = 'c'
 6445:     xyz\nabc
 6446:  0: abc
 6447:     xyz\nabc\<lf>
 6448:  0: abc
 6449:     xyz\r\nabc\<lf>
 6450:  0: abc
 6451:     xyz\rabc\<cr>
 6452:  0: abc
 6453:     xyz\r\nabc\<crlf>
 6454:  0: abc
 6455:     ** Failers
 6456: No match
 6457:     xyz\nabc\<cr>
 6458: No match
 6459:     xyz\r\nabc\<cr>
 6460: No match
 6461:     xyz\nabc\<crlf>
 6462: No match
 6463:     xyz\rabc\<crlf>
 6464: No match
 6465:     xyz\rabc\<lf>
 6466: No match
 6467: 
 6468: /abc$/Im<lf>
 6469: Capturing subpattern count = 0
 6470: Options: multiline
 6471: Forced newline sequence: LF
 6472: First char = 'a'
 6473: Need char = 'c'
 6474:     xyzabc
 6475:  0: abc
 6476:     xyzabc\n
 6477:  0: abc
 6478:     xyzabc\npqr
 6479:  0: abc
 6480:     xyzabc\r\<cr>
 6481:  0: abc
 6482:     xyzabc\rpqr\<cr>
 6483:  0: abc
 6484:     xyzabc\r\n\<crlf>
 6485:  0: abc
 6486:     xyzabc\r\npqr\<crlf>
 6487:  0: abc
 6488:     ** Failers
 6489: No match
 6490:     xyzabc\r
 6491: No match
 6492:     xyzabc\rpqr
 6493: No match
 6494:     xyzabc\r\n
 6495: No match
 6496:     xyzabc\r\npqr
 6497: No match
 6498: 
 6499: /^abc/Im<cr>
 6500: Capturing subpattern count = 0
 6501: Options: multiline
 6502: Forced newline sequence: CR
 6503: First char at start or follows newline
 6504: Need char = 'c'
 6505:     xyz\rabcdef
 6506:  0: abc
 6507:     xyz\nabcdef\<lf>
 6508:  0: abc
 6509:     ** Failers
 6510: No match
 6511:     xyz\nabcdef
 6512: No match
 6513: 
 6514: /^abc/Im<lf>
 6515: Capturing subpattern count = 0
 6516: Options: multiline
 6517: Forced newline sequence: LF
 6518: First char at start or follows newline
 6519: Need char = 'c'
 6520:     xyz\nabcdef
 6521:  0: abc
 6522:     xyz\rabcdef\<cr>
 6523:  0: abc
 6524:     ** Failers
 6525: No match
 6526:     xyz\rabcdef
 6527: No match
 6528: 
 6529: /^abc/Im<crlf>
 6530: Capturing subpattern count = 0
 6531: Options: multiline
 6532: Forced newline sequence: CRLF
 6533: First char at start or follows newline
 6534: Need char = 'c'
 6535:     xyz\r\nabcdef
 6536:  0: abc
 6537:     xyz\rabcdef\<cr>
 6538:  0: abc
 6539:     ** Failers
 6540: No match
 6541:     xyz\rabcdef
 6542: No match
 6543: 
 6544: /^abc/Im<bad>
 6545: Unknown modifier at: <bad>
 6546: 
 6547: 
 6548: /abc/I
 6549: Capturing subpattern count = 0
 6550: No options
 6551: First char = 'a'
 6552: Need char = 'c'
 6553:     xyz\rabc\<bad>
 6554: Unknown escape sequence at: <bad>
 6555:     abc
 6556:  0: abc
 6557: 
 6558: /.*/I<lf>
 6559: Capturing subpattern count = 0
 6560: May match empty string
 6561: Options:
 6562: Forced newline sequence: LF
 6563: First char at start or follows newline
 6564: No need char
 6565:     abc\ndef
 6566:  0: abc
 6567:     abc\rdef
 6568:  0: abc\x0ddef
 6569:     abc\r\ndef
 6570:  0: abc\x0d
 6571:     \<cr>abc\ndef
 6572:  0: abc\x0adef
 6573:     \<cr>abc\rdef
 6574:  0: abc
 6575:     \<cr>abc\r\ndef
 6576:  0: abc
 6577:     \<crlf>abc\ndef
 6578:  0: abc\x0adef
 6579:     \<crlf>abc\rdef
 6580:  0: abc\x0ddef
 6581:     \<crlf>abc\r\ndef
 6582:  0: abc
 6583: 
 6584: /\w+(.)(.)?def/Is
 6585: Capturing subpattern count = 2
 6586: Options: dotall
 6587: No first char
 6588: Need char = 'f'
 6589:     abc\ndef
 6590:  0: abc\x0adef
 6591:  1: \x0a
 6592:     abc\rdef
 6593:  0: abc\x0ddef
 6594:  1: \x0d
 6595:     abc\r\ndef
 6596:  0: abc\x0d\x0adef
 6597:  1: \x0d
 6598:  2: \x0a
 6599: 
 6600: +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
 6601: Capturing subpattern count = 1
 6602: May match empty string
 6603: No options
 6604: No first char
 6605: No need char
 6606:    /* this is a C style comment */\M
 6607: Minimum match() limit = 120
 6608: Minimum match() recursion limit = 6
 6609:  0: /* this is a C style comment */
 6610:  1: /* this is a C style comment */
 6611: 
 6612: /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
 6613: Capturing subpattern count = 1
 6614: Named capturing subpatterns:
 6615:   B   1
 6616: No options
 6617: No first char
 6618: Need char = '.'
 6619: 
 6620: /()()()()()()()()()()()()()()()()()()()()
 6621:  ()()()()()()()()()()()()()()()()()()()()
 6622:  ()()()()()()()()()()()()()()()()()()()()
 6623:  ()()()()()()()()()()()()()()()()()()()()
 6624:  ()()()()()()()()()()()()()()()()()()()()
 6625:  (.(.))/Ix
 6626: Capturing subpattern count = 102
 6627: Options: extended
 6628: No first char
 6629: No need char
 6630:     XY\O400
 6631:  0: XY
 6632:  1: 
 6633:  2: 
 6634:  3: 
 6635:  4: 
 6636:  5: 
 6637:  6: 
 6638:  7: 
 6639:  8: 
 6640:  9: 
 6641: 10: 
 6642: 11: 
 6643: 12: 
 6644: 13: 
 6645: 14: 
 6646: 15: 
 6647: 16: 
 6648: 17: 
 6649: 18: 
 6650: 19: 
 6651: 20: 
 6652: 21: 
 6653: 22: 
 6654: 23: 
 6655: 24: 
 6656: 25: 
 6657: 26: 
 6658: 27: 
 6659: 28: 
 6660: 29: 
 6661: 30: 
 6662: 31: 
 6663: 32: 
 6664: 33: 
 6665: 34: 
 6666: 35: 
 6667: 36: 
 6668: 37: 
 6669: 38: 
 6670: 39: 
 6671: 40: 
 6672: 41: 
 6673: 42: 
 6674: 43: 
 6675: 44: 
 6676: 45: 
 6677: 46: 
 6678: 47: 
 6679: 48: 
 6680: 49: 
 6681: 50: 
 6682: 51: 
 6683: 52: 
 6684: 53: 
 6685: 54: 
 6686: 55: 
 6687: 56: 
 6688: 57: 
 6689: 58: 
 6690: 59: 
 6691: 60: 
 6692: 61: 
 6693: 62: 
 6694: 63: 
 6695: 64: 
 6696: 65: 
 6697: 66: 
 6698: 67: 
 6699: 68: 
 6700: 69: 
 6701: 70: 
 6702: 71: 
 6703: 72: 
 6704: 73: 
 6705: 74: 
 6706: 75: 
 6707: 76: 
 6708: 77: 
 6709: 78: 
 6710: 79: 
 6711: 80: 
 6712: 81: 
 6713: 82: 
 6714: 83: 
 6715: 84: 
 6716: 85: 
 6717: 86: 
 6718: 87: 
 6719: 88: 
 6720: 89: 
 6721: 90: 
 6722: 91: 
 6723: 92: 
 6724: 93: 
 6725: 94: 
 6726: 95: 
 6727: 96: 
 6728: 97: 
 6729: 98: 
 6730: 99: 
 6731: 100: 
 6732: 101: XY
 6733: 102: Y
 6734: 
 6735: /(a*b|(?i:c*(?-i)d))/IS
 6736: Capturing subpattern count = 1
 6737: No options
 6738: No first char
 6739: No need char
 6740: Subject length lower bound = 1
 6741: Starting byte set: C a b c d 
 6742: 
 6743: /()[ab]xyz/IS
 6744: Capturing subpattern count = 1
 6745: No options
 6746: No first char
 6747: Need char = 'z'
 6748: Subject length lower bound = 4
 6749: Starting byte set: a b 
 6750: 
 6751: /(|)[ab]xyz/IS
 6752: Capturing subpattern count = 1
 6753: No options
 6754: No first char
 6755: Need char = 'z'
 6756: Subject length lower bound = 4
 6757: Starting byte set: a b 
 6758: 
 6759: /(|c)[ab]xyz/IS
 6760: Capturing subpattern count = 1
 6761: No options
 6762: No first char
 6763: Need char = 'z'
 6764: Subject length lower bound = 4
 6765: Starting byte set: a b c 
 6766: 
 6767: /(|c?)[ab]xyz/IS
 6768: Capturing subpattern count = 1
 6769: No options
 6770: No first char
 6771: Need char = 'z'
 6772: Subject length lower bound = 4
 6773: Starting byte set: a b c 
 6774: 
 6775: /(d?|c?)[ab]xyz/IS
 6776: Capturing subpattern count = 1
 6777: No options
 6778: No first char
 6779: Need char = 'z'
 6780: Subject length lower bound = 4
 6781: Starting byte set: a b c d 
 6782: 
 6783: /(d?|c)[ab]xyz/IS
 6784: Capturing subpattern count = 1
 6785: No options
 6786: No first char
 6787: Need char = 'z'
 6788: Subject length lower bound = 4
 6789: Starting byte set: a b c d 
 6790: 
 6791: /^a*b\d/DZ
 6792: ------------------------------------------------------------------
 6793:         Bra
 6794:         ^
 6795:         a*+
 6796:         b
 6797:         \d
 6798:         Ket
 6799:         End
 6800: ------------------------------------------------------------------
 6801: Capturing subpattern count = 0
 6802: Options: anchored
 6803: No first char
 6804: Need char = 'b'
 6805: 
 6806: /^a*+b\d/DZ
 6807: ------------------------------------------------------------------
 6808:         Bra
 6809:         ^
 6810:         a*+
 6811:         b
 6812:         \d
 6813:         Ket
 6814:         End
 6815: ------------------------------------------------------------------
 6816: Capturing subpattern count = 0
 6817: Options: anchored
 6818: No first char
 6819: Need char = 'b'
 6820: 
 6821: /^a*?b\d/DZ
 6822: ------------------------------------------------------------------
 6823:         Bra
 6824:         ^
 6825:         a*+
 6826:         b
 6827:         \d
 6828:         Ket
 6829:         End
 6830: ------------------------------------------------------------------
 6831: Capturing subpattern count = 0
 6832: Options: anchored
 6833: No first char
 6834: Need char = 'b'
 6835: 
 6836: /^a+A\d/DZ
 6837: ------------------------------------------------------------------
 6838:         Bra
 6839:         ^
 6840:         a++
 6841:         A
 6842:         \d
 6843:         Ket
 6844:         End
 6845: ------------------------------------------------------------------
 6846: Capturing subpattern count = 0
 6847: Options: anchored
 6848: No first char
 6849: Need char = 'A'
 6850:     aaaA5
 6851:  0: aaaA5
 6852:     ** Failers
 6853: No match
 6854:     aaaa5
 6855: No match
 6856: 
 6857: /^a*A\d/IiDZ
 6858: ------------------------------------------------------------------
 6859:         Bra
 6860:         ^
 6861:      /i a*
 6862:      /i A
 6863:         \d
 6864:         Ket
 6865:         End
 6866: ------------------------------------------------------------------
 6867: Capturing subpattern count = 0
 6868: Options: anchored caseless
 6869: No first char
 6870: Need char = 'A' (caseless)
 6871:     aaaA5
 6872:  0: aaaA5
 6873:     aaaa5
 6874:  0: aaaa5
 6875: 
 6876: /(a*|b*)[cd]/IS
 6877: Capturing subpattern count = 1
 6878: No options
 6879: No first char
 6880: No need char
 6881: Subject length lower bound = 1
 6882: Starting byte set: a b c d 
 6883: 
 6884: /(a+|b*)[cd]/IS
 6885: Capturing subpattern count = 1
 6886: No options
 6887: No first char
 6888: No need char
 6889: Subject length lower bound = 1
 6890: Starting byte set: a b c d 
 6891: 
 6892: /(a*|b+)[cd]/IS
 6893: Capturing subpattern count = 1
 6894: No options
 6895: No first char
 6896: No need char
 6897: Subject length lower bound = 1
 6898: Starting byte set: a b c d 
 6899: 
 6900: /(a+|b+)[cd]/IS
 6901: Capturing subpattern count = 1
 6902: No options
 6903: No first char
 6904: No need char
 6905: Subject length lower bound = 2
 6906: Starting byte set: a b 
 6907: 
 6908: /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
 6909:  ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
 6910:  (((
 6911:  a
 6912:  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
 6913:  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
 6914:  )))
 6915: /Ix
 6916: Capturing subpattern count = 203
 6917: Options: extended
 6918: First char = 'a'
 6919: No need char
 6920:   large nest
 6921: Matched, but too many substrings
 6922:  0: a
 6923:  1: a
 6924:  2: a
 6925:  3: a
 6926:  4: a
 6927:  5: a
 6928:  6: a
 6929:  7: a
 6930:  8: a
 6931:  9: a
 6932: 10: a
 6933: 11: a
 6934: 12: a
 6935: 13: a
 6936: 14: a
 6937: 
 6938: /a*\d/BZ
 6939: ------------------------------------------------------------------
 6940:         Bra
 6941:         a*+
 6942:         \d
 6943:         Ket
 6944:         End
 6945: ------------------------------------------------------------------
 6946: 
 6947: /a*\D/BZ
 6948: ------------------------------------------------------------------
 6949:         Bra
 6950:         a*
 6951:         \D
 6952:         Ket
 6953:         End
 6954: ------------------------------------------------------------------
 6955: 
 6956: /0*\d/BZ
 6957: ------------------------------------------------------------------
 6958:         Bra
 6959:         0*
 6960:         \d
 6961:         Ket
 6962:         End
 6963: ------------------------------------------------------------------
 6964: 
 6965: /0*\D/BZ
 6966: ------------------------------------------------------------------
 6967:         Bra
 6968:         0*+
 6969:         \D
 6970:         Ket
 6971:         End
 6972: ------------------------------------------------------------------
 6973: 
 6974: /a*\s/BZ
 6975: ------------------------------------------------------------------
 6976:         Bra
 6977:         a*+
 6978:         \s
 6979:         Ket
 6980:         End
 6981: ------------------------------------------------------------------
 6982: 
 6983: /a*\S/BZ
 6984: ------------------------------------------------------------------
 6985:         Bra
 6986:         a*
 6987:         \S
 6988:         Ket
 6989:         End
 6990: ------------------------------------------------------------------
 6991: 
 6992: / *\s/BZ
 6993: ------------------------------------------------------------------
 6994:         Bra
 6995:          *
 6996:         \s
 6997:         Ket
 6998:         End
 6999: ------------------------------------------------------------------
 7000: 
 7001: / *\S/BZ
 7002: ------------------------------------------------------------------
 7003:         Bra
 7004:          *+
 7005:         \S
 7006:         Ket
 7007:         End
 7008: ------------------------------------------------------------------
 7009: 
 7010: /a*\w/BZ
 7011: ------------------------------------------------------------------
 7012:         Bra
 7013:         a*
 7014:         \w
 7015:         Ket
 7016:         End
 7017: ------------------------------------------------------------------
 7018: 
 7019: /a*\W/BZ
 7020: ------------------------------------------------------------------
 7021:         Bra
 7022:         a*+
 7023:         \W
 7024:         Ket
 7025:         End
 7026: ------------------------------------------------------------------
 7027: 
 7028: /=*\w/BZ
 7029: ------------------------------------------------------------------
 7030:         Bra
 7031:         =*+
 7032:         \w
 7033:         Ket
 7034:         End
 7035: ------------------------------------------------------------------
 7036: 
 7037: /=*\W/BZ
 7038: ------------------------------------------------------------------
 7039:         Bra
 7040:         =*
 7041:         \W
 7042:         Ket
 7043:         End
 7044: ------------------------------------------------------------------
 7045: 
 7046: /\d*a/BZ
 7047: ------------------------------------------------------------------
 7048:         Bra
 7049:         \d*+
 7050:         a
 7051:         Ket
 7052:         End
 7053: ------------------------------------------------------------------
 7054: 
 7055: /\d*2/BZ
 7056: ------------------------------------------------------------------
 7057:         Bra
 7058:         \d*
 7059:         2
 7060:         Ket
 7061:         End
 7062: ------------------------------------------------------------------
 7063: 
 7064: /\d*\d/BZ
 7065: ------------------------------------------------------------------
 7066:         Bra
 7067:         \d*
 7068:         \d
 7069:         Ket
 7070:         End
 7071: ------------------------------------------------------------------
 7072: 
 7073: /\d*\D/BZ
 7074: ------------------------------------------------------------------
 7075:         Bra
 7076:         \d*+
 7077:         \D
 7078:         Ket
 7079:         End
 7080: ------------------------------------------------------------------
 7081: 
 7082: /\d*\s/BZ
 7083: ------------------------------------------------------------------
 7084:         Bra
 7085:         \d*+
 7086:         \s
 7087:         Ket
 7088:         End
 7089: ------------------------------------------------------------------
 7090: 
 7091: /\d*\S/BZ
 7092: ------------------------------------------------------------------
 7093:         Bra
 7094:         \d*
 7095:         \S
 7096:         Ket
 7097:         End
 7098: ------------------------------------------------------------------
 7099: 
 7100: /\d*\w/BZ
 7101: ------------------------------------------------------------------
 7102:         Bra
 7103:         \d*
 7104:         \w
 7105:         Ket
 7106:         End
 7107: ------------------------------------------------------------------
 7108: 
 7109: /\d*\W/BZ
 7110: ------------------------------------------------------------------
 7111:         Bra
 7112:         \d*+
 7113:         \W
 7114:         Ket
 7115:         End
 7116: ------------------------------------------------------------------
 7117: 
 7118: /\D*a/BZ
 7119: ------------------------------------------------------------------
 7120:         Bra
 7121:         \D*
 7122:         a
 7123:         Ket
 7124:         End
 7125: ------------------------------------------------------------------
 7126: 
 7127: /\D*2/BZ
 7128: ------------------------------------------------------------------
 7129:         Bra
 7130:         \D*+
 7131:         2
 7132:         Ket
 7133:         End
 7134: ------------------------------------------------------------------
 7135: 
 7136: /\D*\d/BZ
 7137: ------------------------------------------------------------------
 7138:         Bra
 7139:         \D*+
 7140:         \d
 7141:         Ket
 7142:         End
 7143: ------------------------------------------------------------------
 7144: 
 7145: /\D*\D/BZ
 7146: ------------------------------------------------------------------
 7147:         Bra
 7148:         \D*
 7149:         \D
 7150:         Ket
 7151:         End
 7152: ------------------------------------------------------------------
 7153: 
 7154: /\D*\s/BZ
 7155: ------------------------------------------------------------------
 7156:         Bra
 7157:         \D*
 7158:         \s
 7159:         Ket
 7160:         End
 7161: ------------------------------------------------------------------
 7162: 
 7163: /\D*\S/BZ
 7164: ------------------------------------------------------------------
 7165:         Bra
 7166:         \D*
 7167:         \S
 7168:         Ket
 7169:         End
 7170: ------------------------------------------------------------------
 7171: 
 7172: /\D*\w/BZ
 7173: ------------------------------------------------------------------
 7174:         Bra
 7175:         \D*
 7176:         \w
 7177:         Ket
 7178:         End
 7179: ------------------------------------------------------------------
 7180: 
 7181: /\D*\W/BZ
 7182: ------------------------------------------------------------------
 7183:         Bra
 7184:         \D*
 7185:         \W
 7186:         Ket
 7187:         End
 7188: ------------------------------------------------------------------
 7189: 
 7190: /\s*a/BZ
 7191: ------------------------------------------------------------------
 7192:         Bra
 7193:         \s*+
 7194:         a
 7195:         Ket
 7196:         End
 7197: ------------------------------------------------------------------
 7198: 
 7199: /\s*2/BZ
 7200: ------------------------------------------------------------------
 7201:         Bra
 7202:         \s*+
 7203:         2
 7204:         Ket
 7205:         End
 7206: ------------------------------------------------------------------
 7207: 
 7208: /\s*\d/BZ
 7209: ------------------------------------------------------------------
 7210:         Bra
 7211:         \s*+
 7212:         \d
 7213:         Ket
 7214:         End
 7215: ------------------------------------------------------------------
 7216: 
 7217: /\s*\D/BZ
 7218: ------------------------------------------------------------------
 7219:         Bra
 7220:         \s*
 7221:         \D
 7222:         Ket
 7223:         End
 7224: ------------------------------------------------------------------
 7225: 
 7226: /\s*\s/BZ
 7227: ------------------------------------------------------------------
 7228:         Bra
 7229:         \s*
 7230:         \s
 7231:         Ket
 7232:         End
 7233: ------------------------------------------------------------------
 7234: 
 7235: /\s*\S/BZ
 7236: ------------------------------------------------------------------
 7237:         Bra
 7238:         \s*+
 7239:         \S
 7240:         Ket
 7241:         End
 7242: ------------------------------------------------------------------
 7243: 
 7244: /\s*\w/BZ
 7245: ------------------------------------------------------------------
 7246:         Bra
 7247:         \s*+
 7248:         \w
 7249:         Ket
 7250:         End
 7251: ------------------------------------------------------------------
 7252: 
 7253: /\s*\W/BZ
 7254: ------------------------------------------------------------------
 7255:         Bra
 7256:         \s*
 7257:         \W
 7258:         Ket
 7259:         End
 7260: ------------------------------------------------------------------
 7261: 
 7262: /\S*a/BZ
 7263: ------------------------------------------------------------------
 7264:         Bra
 7265:         \S*
 7266:         a
 7267:         Ket
 7268:         End
 7269: ------------------------------------------------------------------
 7270: 
 7271: /\S*2/BZ
 7272: ------------------------------------------------------------------
 7273:         Bra
 7274:         \S*
 7275:         2
 7276:         Ket
 7277:         End
 7278: ------------------------------------------------------------------
 7279: 
 7280: /\S*\d/BZ
 7281: ------------------------------------------------------------------
 7282:         Bra
 7283:         \S*
 7284:         \d
 7285:         Ket
 7286:         End
 7287: ------------------------------------------------------------------
 7288: 
 7289: /\S*\D/BZ
 7290: ------------------------------------------------------------------
 7291:         Bra
 7292:         \S*
 7293:         \D
 7294:         Ket
 7295:         End
 7296: ------------------------------------------------------------------
 7297: 
 7298: /\S*\s/BZ
 7299: ------------------------------------------------------------------
 7300:         Bra
 7301:         \S*+
 7302:         \s
 7303:         Ket
 7304:         End
 7305: ------------------------------------------------------------------
 7306: 
 7307: /\S*\S/BZ
 7308: ------------------------------------------------------------------
 7309:         Bra
 7310:         \S*
 7311:         \S
 7312:         Ket
 7313:         End
 7314: ------------------------------------------------------------------
 7315: 
 7316: /\S*\w/BZ
 7317: ------------------------------------------------------------------
 7318:         Bra
 7319:         \S*
 7320:         \w
 7321:         Ket
 7322:         End
 7323: ------------------------------------------------------------------
 7324: 
 7325: /\S*\W/BZ
 7326: ------------------------------------------------------------------
 7327:         Bra
 7328:         \S*
 7329:         \W
 7330:         Ket
 7331:         End
 7332: ------------------------------------------------------------------
 7333: 
 7334: /\w*a/BZ
 7335: ------------------------------------------------------------------
 7336:         Bra
 7337:         \w*
 7338:         a
 7339:         Ket
 7340:         End
 7341: ------------------------------------------------------------------
 7342: 
 7343: /\w*2/BZ
 7344: ------------------------------------------------------------------
 7345:         Bra
 7346:         \w*
 7347:         2
 7348:         Ket
 7349:         End
 7350: ------------------------------------------------------------------
 7351: 
 7352: /\w*\d/BZ
 7353: ------------------------------------------------------------------
 7354:         Bra
 7355:         \w*
 7356:         \d
 7357:         Ket
 7358:         End
 7359: ------------------------------------------------------------------
 7360: 
 7361: /\w*\D/BZ
 7362: ------------------------------------------------------------------
 7363:         Bra
 7364:         \w*
 7365:         \D
 7366:         Ket
 7367:         End
 7368: ------------------------------------------------------------------
 7369: 
 7370: /\w*\s/BZ
 7371: ------------------------------------------------------------------
 7372:         Bra
 7373:         \w*+
 7374:         \s
 7375:         Ket
 7376:         End
 7377: ------------------------------------------------------------------
 7378: 
 7379: /\w*\S/BZ
 7380: ------------------------------------------------------------------
 7381:         Bra
 7382:         \w*
 7383:         \S
 7384:         Ket
 7385:         End
 7386: ------------------------------------------------------------------
 7387: 
 7388: /\w*\w/BZ
 7389: ------------------------------------------------------------------
 7390:         Bra
 7391:         \w*
 7392:         \w
 7393:         Ket
 7394:         End
 7395: ------------------------------------------------------------------
 7396: 
 7397: /\w*\W/BZ
 7398: ------------------------------------------------------------------
 7399:         Bra
 7400:         \w*+
 7401:         \W
 7402:         Ket
 7403:         End
 7404: ------------------------------------------------------------------
 7405: 
 7406: /\W*a/BZ
 7407: ------------------------------------------------------------------
 7408:         Bra
 7409:         \W*+
 7410:         a
 7411:         Ket
 7412:         End
 7413: ------------------------------------------------------------------
 7414: 
 7415: /\W*2/BZ
 7416: ------------------------------------------------------------------
 7417:         Bra
 7418:         \W*+
 7419:         2
 7420:         Ket
 7421:         End
 7422: ------------------------------------------------------------------
 7423: 
 7424: /\W*\d/BZ
 7425: ------------------------------------------------------------------
 7426:         Bra
 7427:         \W*+
 7428:         \d
 7429:         Ket
 7430:         End
 7431: ------------------------------------------------------------------
 7432: 
 7433: /\W*\D/BZ
 7434: ------------------------------------------------------------------
 7435:         Bra
 7436:         \W*
 7437:         \D
 7438:         Ket
 7439:         End
 7440: ------------------------------------------------------------------
 7441: 
 7442: /\W*\s/BZ
 7443: ------------------------------------------------------------------
 7444:         Bra
 7445:         \W*
 7446:         \s
 7447:         Ket
 7448:         End
 7449: ------------------------------------------------------------------
 7450: 
 7451: /\W*\S/BZ
 7452: ------------------------------------------------------------------
 7453:         Bra
 7454:         \W*
 7455:         \S
 7456:         Ket
 7457:         End
 7458: ------------------------------------------------------------------
 7459: 
 7460: /\W*\w/BZ
 7461: ------------------------------------------------------------------
 7462:         Bra
 7463:         \W*+
 7464:         \w
 7465:         Ket
 7466:         End
 7467: ------------------------------------------------------------------
 7468: 
 7469: /\W*\W/BZ
 7470: ------------------------------------------------------------------
 7471:         Bra
 7472:         \W*
 7473:         \W
 7474:         Ket
 7475:         End
 7476: ------------------------------------------------------------------
 7477: 
 7478: /[^a]+a/BZ
 7479: ------------------------------------------------------------------
 7480:         Bra
 7481:         [^a]++
 7482:         a
 7483:         Ket
 7484:         End
 7485: ------------------------------------------------------------------
 7486: 
 7487: /[^a]+a/BZi
 7488: ------------------------------------------------------------------
 7489:         Bra
 7490:      /i [^a]++
 7491:      /i a
 7492:         Ket
 7493:         End
 7494: ------------------------------------------------------------------
 7495: 
 7496: /[^a]+A/BZi
 7497: ------------------------------------------------------------------
 7498:         Bra
 7499:      /i [^a]++
 7500:      /i A
 7501:         Ket
 7502:         End
 7503: ------------------------------------------------------------------
 7504: 
 7505: /[^a]+b/BZ
 7506: ------------------------------------------------------------------
 7507:         Bra
 7508:         [^a]+
 7509:         b
 7510:         Ket
 7511:         End
 7512: ------------------------------------------------------------------
 7513: 
 7514: /[^a]+\d/BZ
 7515: ------------------------------------------------------------------
 7516:         Bra
 7517:         [^a]+
 7518:         \d
 7519:         Ket
 7520:         End
 7521: ------------------------------------------------------------------
 7522: 
 7523: /a*[^a]/BZ
 7524: ------------------------------------------------------------------
 7525:         Bra
 7526:         a*+
 7527:         [^a]
 7528:         Ket
 7529:         End
 7530: ------------------------------------------------------------------
 7531: 
 7532: /(?P<abc>x)(?P<xyz>y)/I
 7533: Capturing subpattern count = 2
 7534: Named capturing subpatterns:
 7535:   abc   1
 7536:   xyz   2
 7537: No options
 7538: First char = 'x'
 7539: Need char = 'y'
 7540:     xy\Cabc\Cxyz
 7541:  0: xy
 7542:  1: x
 7543:  2: y
 7544:   C x (1) abc
 7545:   C y (1) xyz
 7546: 
 7547: /(?<abc>x)(?'xyz'y)/I
 7548: Capturing subpattern count = 2
 7549: Named capturing subpatterns:
 7550:   abc   1
 7551:   xyz   2
 7552: No options
 7553: First char = 'x'
 7554: Need char = 'y'
 7555:     xy\Cabc\Cxyz
 7556:  0: xy
 7557:  1: x
 7558:  2: y
 7559:   C x (1) abc
 7560:   C y (1) xyz
 7561: 
 7562: /(?<abc'x)(?'xyz'y)/I
 7563: Failed: syntax error in subpattern name (missing terminator) at offset 6
 7564: 
 7565: /(?<abc>x)(?'xyz>y)/I
 7566: Failed: syntax error in subpattern name (missing terminator) at offset 15
 7567: 
 7568: /(?P'abc'x)(?P<xyz>y)/I
 7569: Failed: unrecognized character after (?P at offset 3
 7570: 
 7571: /^(?:(?(ZZ)a|b)(?<ZZ>X))+/
 7572:     bXaX
 7573:  0: bXaX
 7574:  1: X
 7575:     bXbX
 7576:  0: bX
 7577:  1: X
 7578:     ** Failers
 7579: No match
 7580:     aXaX
 7581: No match
 7582:     aXbX
 7583: No match
 7584: 
 7585: /^(?P>abc)(?<abcd>xxx)/
 7586: Failed: reference to non-existent subpattern at offset 8
 7587: 
 7588: /^(?P>abc)(?<abc>x|y)/
 7589:     xx
 7590:  0: xx
 7591:  1: x
 7592:     xy
 7593:  0: xy
 7594:  1: y
 7595:     yy
 7596:  0: yy
 7597:  1: y
 7598:     yx
 7599:  0: yx
 7600:  1: x
 7601: 
 7602: /^(?P>abc)(?P<abc>x|y)/
 7603:     xx
 7604:  0: xx
 7605:  1: x
 7606:     xy
 7607:  0: xy
 7608:  1: y
 7609:     yy
 7610:  0: yy
 7611:  1: y
 7612:     yx
 7613:  0: yx
 7614:  1: x
 7615: 
 7616: /^((?(abc)a|b)(?<abc>x|y))+/
 7617:     bxay
 7618:  0: bxay
 7619:  1: ay
 7620:  2: y
 7621:     bxby
 7622:  0: bx
 7623:  1: bx
 7624:  2: x
 7625:     ** Failers
 7626: No match
 7627:     axby
 7628: No match
 7629: 
 7630: /^(((?P=abc)|X)(?<abc>x|y))+/
 7631:     XxXxxx
 7632:  0: XxXxxx
 7633:  1: xx
 7634:  2: x
 7635:  3: x
 7636:     XxXyyx
 7637:  0: XxXyyx
 7638:  1: yx
 7639:  2: y
 7640:  3: x
 7641:     XxXyxx
 7642:  0: XxXy
 7643:  1: Xy
 7644:  2: X
 7645:  3: y
 7646:     ** Failers
 7647: No match
 7648:     x
 7649: No match
 7650: 
 7651: /^(?1)(abc)/
 7652:     abcabc
 7653:  0: abcabc
 7654:  1: abc
 7655: 
 7656: /^(?:(?:\1|X)(a|b))+/
 7657:     Xaaa
 7658:  0: Xaaa
 7659:  1: a
 7660:     Xaba
 7661:  0: Xa
 7662:  1: a
 7663: 
 7664: /^[\E\Qa\E-\Qz\E]+/BZ
 7665: ------------------------------------------------------------------
 7666:         Bra
 7667:         ^
 7668:         [a-z]++
 7669:         Ket
 7670:         End
 7671: ------------------------------------------------------------------
 7672: 
 7673: /^[a\Q]bc\E]/BZ
 7674: ------------------------------------------------------------------
 7675:         Bra
 7676:         ^
 7677:         [\]a-c]
 7678:         Ket
 7679:         End
 7680: ------------------------------------------------------------------
 7681: 
 7682: /^[a-\Q\E]/BZ
 7683: ------------------------------------------------------------------
 7684:         Bra
 7685:         ^
 7686:         [\-a]
 7687:         Ket
 7688:         End
 7689: ------------------------------------------------------------------
 7690: 
 7691: /^(?P>abc)[()](?<abc>)/BZ
 7692: ------------------------------------------------------------------
 7693:         Bra
 7694:         ^
 7695:         Recurse
 7696:         [()]
 7697:         CBra 1
 7698:         Ket
 7699:         Ket
 7700:         End
 7701: ------------------------------------------------------------------
 7702: 
 7703: /^((?(abc)y)[()](?P<abc>x))+/BZ
 7704: ------------------------------------------------------------------
 7705:         Bra
 7706:         ^
 7707:         CBra 1
 7708:         Cond
 7709:       2 Cond ref
 7710:         y
 7711:         Ket
 7712:         [()]
 7713:         CBra 2
 7714:         x
 7715:         Ket
 7716:         KetRmax
 7717:         Ket
 7718:         End
 7719: ------------------------------------------------------------------
 7720:     (xy)x
 7721:  0: (xy)x
 7722:  1: y)x
 7723:  2: x
 7724: 
 7725: /^(?P>abc)\Q()\E(?<abc>)/BZ
 7726: ------------------------------------------------------------------
 7727:         Bra
 7728:         ^
 7729:         Recurse
 7730:         ()
 7731:         CBra 1
 7732:         Ket
 7733:         Ket
 7734:         End
 7735: ------------------------------------------------------------------
 7736: 
 7737: /^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
 7738: ------------------------------------------------------------------
 7739:         Bra
 7740:         ^
 7741:         Recurse
 7742:         [(\]a]
 7743:         CBra 1
 7744:         Ket
 7745:         Ket
 7746:         End
 7747: ------------------------------------------------------------------
 7748: 
 7749: /^(?P>abc) # this is (a comment)
 7750:   (?<abc>)/BZx
 7751: ------------------------------------------------------------------
 7752:         Bra
 7753:         ^
 7754:         Recurse
 7755:         CBra 1
 7756:         Ket
 7757:         Ket
 7758:         End
 7759: ------------------------------------------------------------------
 7760: 
 7761: /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
 7762: Capturing subpattern count = 4
 7763: Max back reference = 4
 7764: Named capturing subpatterns:
 7765:   four    4
 7766:   one     1
 7767:   three   3
 7768:   two     2
 7769: May match empty string
 7770: Options: anchored caseless
 7771: No first char
 7772: No need char
 7773:     1221
 7774:  0: 1221
 7775:  1: 1221
 7776:  2: 1
 7777:     Satan, oscillate my metallic sonatas!
 7778:  0: Satan, oscillate my metallic sonatas!
 7779:  1: <unset>
 7780:  2: <unset>
 7781:  3: Satan, oscillate my metallic sonatas
 7782:  4: S
 7783:     A man, a plan, a canal: Panama!
 7784:  0: A man, a plan, a canal: Panama!
 7785:  1: <unset>
 7786:  2: <unset>
 7787:  3: A man, a plan, a canal: Panama
 7788:  4: A
 7789:     Able was I ere I saw Elba.
 7790:  0: Able was I ere I saw Elba.
 7791:  1: <unset>
 7792:  2: <unset>
 7793:  3: Able was I ere I saw Elba
 7794:  4: A
 7795:     *** Failers
 7796: No match
 7797:     The quick brown fox
 7798: No match
 7799: 
 7800: /(?=(\w+))\1:/I
 7801: Capturing subpattern count = 1
 7802: Max back reference = 1
 7803: No options
 7804: No first char
 7805: Need char = ':'
 7806:     abcd:
 7807:  0: abcd:
 7808:  1: abcd
 7809: 
 7810: /(?=(?'abc'\w+))\k<abc>:/I
 7811: Capturing subpattern count = 1
 7812: Max back reference = 1
 7813: Named capturing subpatterns:
 7814:   abc   1
 7815: No options
 7816: No first char
 7817: Need char = ':'
 7818:     abcd:
 7819:  0: abcd:
 7820:  1: abcd
 7821: 
 7822: /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
 7823:     adaa
 7824:  0: adaa
 7825:  1: a
 7826:  2: d
 7827:     ** Failers
 7828: No match
 7829:     addd
 7830: No match
 7831:     adbb
 7832: No match
 7833: 
 7834: /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
 7835:     bdaa
 7836:  0: bdaa
 7837:  1: b
 7838:  2: d
 7839:     bdab
 7840:  0: bdab
 7841:  1: b
 7842:  2: d
 7843:     ** Failers
 7844: No match
 7845:     bddd
 7846: No match
 7847: 
 7848: /(?(<bc))/
 7849: Failed: malformed number or name after (?( at offset 6
 7850: 
 7851: /(?(''))/
 7852: Failed: assertion expected after (?( at offset 4
 7853: 
 7854: /(?('R')stuff)/
 7855: Failed: reference to non-existent subpattern at offset 7
 7856: 
 7857: /((abc (?(R) (?(R1)1) (?(R2)2) X  |  (?1)  (?2)   (?R) ))) /x
 7858:     abcabc1Xabc2XabcXabcabc
 7859:  0: abcabc1Xabc2XabcX
 7860:  1: abcabc1Xabc2XabcX
 7861:  2: abcabc1Xabc2XabcX
 7862: 
 7863: /(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
 7864:     abcabc1Xabc2XabcXabcabc
 7865:  0: abcabc1Xabc2XabcX
 7866:  1: abcabc1Xabc2XabcX
 7867:  2: abcabc1Xabc2XabcX
 7868: 
 7869: /(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
 7870: Failed: reference to non-existent subpattern at offset 29
 7871: 
 7872: /^(?(DEFINE) abc | xyz ) /x
 7873: Failed: DEFINE group contains more than one branch at offset 22
 7874: 
 7875: /(?(DEFINE) abc) xyz/xI
 7876: Capturing subpattern count = 0
 7877: Options: extended
 7878: First char = 'x'
 7879: Need char = 'z'
 7880: 
 7881: /(a|)*\d/
 7882:   \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 7883: No match
 7884:   \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
 7885: Matched, but too many substrings
 7886: 
 7887: /^a.b/<lf>
 7888:     a\rb
 7889:  0: a\x0db
 7890:     a\nb\<cr>
 7891:  0: a\x0ab
 7892:     a\x85b\<anycrlf> 
 7893:  0: a\x85b
 7894:     ** Failers
 7895: No match
 7896:     a\nb
 7897: No match
 7898:     a\nb\<any>
 7899: No match
 7900:     a\rb\<cr>
 7901: No match
 7902:     a\rb\<any>
 7903: No match
 7904:     a\x85b\<any> 
 7905: No match
 7906:     a\rb\<anycrlf>
 7907: No match
 7908: 
 7909: /^abc./mgx<any>
 7910:     abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
 7911:  0: abc1
 7912:  0: abc2
 7913:  0: abc3
 7914:  0: abc4
 7915:  0: abc5
 7916:  0: abc6
 7917:  0: abc7
 7918: 
 7919: /abc.$/mgx<any>
 7920:     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
 7921:  0: abc1
 7922:  0: abc2
 7923:  0: abc3
 7924:  0: abc4
 7925:  0: abc5
 7926:  0: abc6
 7927:  0: abc9
 7928: 
 7929: /a/<cr><any>
 7930: 
 7931: /a/<any><crlf>
 7932: Failed: inconsistent NEWLINE options at offset 0
 7933: 
 7934: /^a\Rb/<bsr_unicode>
 7935:     a\nb
 7936:  0: a\x0ab
 7937:     a\rb
 7938:  0: a\x0db
 7939:     a\r\nb
 7940:  0: a\x0d\x0ab
 7941:     a\x0bb
 7942:  0: a\x0bb
 7943:     a\x0cb
 7944:  0: a\x0cb
 7945:     a\x85b
 7946:  0: a\x85b
 7947:     ** Failers
 7948: No match
 7949:     a\n\rb
 7950: No match
 7951: 
 7952: /^a\R*b/<bsr_unicode>
 7953:     ab
 7954:  0: ab
 7955:     a\nb
 7956:  0: a\x0ab
 7957:     a\rb
 7958:  0: a\x0db
 7959:     a\r\nb
 7960:  0: a\x0d\x0ab
 7961:     a\x0bb
 7962:  0: a\x0bb
 7963:     a\x0cb
 7964:  0: a\x0cb
 7965:     a\x85b
 7966:  0: a\x85b
 7967:     a\n\rb
 7968:  0: a\x0a\x0db
 7969:     a\n\r\x85\x0cb
 7970:  0: a\x0a\x0d\x85\x0cb
 7971: 
 7972: /^a\R+b/<bsr_unicode>
 7973:     a\nb
 7974:  0: a\x0ab
 7975:     a\rb
 7976:  0: a\x0db
 7977:     a\r\nb
 7978:  0: a\x0d\x0ab
 7979:     a\x0bb
 7980:  0: a\x0bb
 7981:     a\x0cb
 7982:  0: a\x0cb
 7983:     a\x85b
 7984:  0: a\x85b
 7985:     a\n\rb
 7986:  0: a\x0a\x0db
 7987:     a\n\r\x85\x0cb
 7988:  0: a\x0a\x0d\x85\x0cb
 7989:     ** Failers
 7990: No match
 7991:     ab
 7992: No match
 7993: 
 7994: /^a\R{1,3}b/<bsr_unicode>
 7995:     a\nb
 7996:  0: a\x0ab
 7997:     a\n\rb
 7998:  0: a\x0a\x0db
 7999:     a\n\r\x85b
 8000:  0: a\x0a\x0d\x85b
 8001:     a\r\n\r\nb
 8002:  0: a\x0d\x0a\x0d\x0ab
 8003:     a\r\n\r\n\r\nb
 8004:  0: a\x0d\x0a\x0d\x0a\x0d\x0ab
 8005:     a\n\r\n\rb
 8006:  0: a\x0a\x0d\x0a\x0db
 8007:     a\n\n\r\nb
 8008:  0: a\x0a\x0a\x0d\x0ab
 8009:     ** Failers
 8010: No match
 8011:     a\n\n\n\rb
 8012: No match
 8013:     a\r
 8014: No match
 8015: 
 8016: /^a[\R]b/<bsr_unicode>
 8017:     aRb
 8018:  0: aRb
 8019:     ** Failers
 8020: No match
 8021:     a\nb
 8022: No match
 8023: 
 8024: /(?&abc)X(?<abc>P)/I
 8025: Capturing subpattern count = 1
 8026: Named capturing subpatterns:
 8027:   abc   1
 8028: No options
 8029: No first char
 8030: Need char = 'P'
 8031:     abcPXP123
 8032:  0: PXP
 8033:  1: P
 8034: 
 8035: /(?1)X(?<abc>P)/I
 8036: Capturing subpattern count = 1
 8037: Named capturing subpatterns:
 8038:   abc   1
 8039: No options
 8040: No first char
 8041: Need char = 'P'
 8042:     abcPXP123
 8043:  0: PXP
 8044:  1: P
 8045: 
 8046: /(?:a(?&abc)b)*(?<abc>x)/
 8047:     123axbaxbaxbx456
 8048:  0: axbaxbaxbx
 8049:  1: x
 8050:     123axbaxbaxb456
 8051:  0: x
 8052:  1: x
 8053: 
 8054: /(?:a(?&abc)b){1,5}(?<abc>x)/
 8055:     123axbaxbaxbx456
 8056:  0: axbaxbaxbx
 8057:  1: x
 8058: 
 8059: /(?:a(?&abc)b){2,5}(?<abc>x)/
 8060:     123axbaxbaxbx456
 8061:  0: axbaxbaxbx
 8062:  1: x
 8063: 
 8064: /(?:a(?&abc)b){2,}(?<abc>x)/
 8065:     123axbaxbaxbx456
 8066:  0: axbaxbaxbx
 8067:  1: x
 8068: 
 8069: /(abc)(?i:(?1))/
 8070:    defabcabcxyz
 8071:  0: abcabc
 8072:  1: abc
 8073:    DEFabcABCXYZ
 8074: No match
 8075: 
 8076: /(abc)(?:(?i)(?1))/
 8077:    defabcabcxyz
 8078:  0: abcabc
 8079:  1: abc
 8080:    DEFabcABCXYZ
 8081: No match
 8082: 
 8083: /^(a)\g-2/
 8084: Failed: reference to non-existent subpattern at offset 7
 8085: 
 8086: /^(a)\g/
 8087: Failed: a numbered reference must not be zero at offset 5
 8088: 
 8089: /^(a)\g{0}/
 8090: Failed: a numbered reference must not be zero at offset 8
 8091: 
 8092: /^(a)\g{3/
 8093: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
 8094: 
 8095: /^(a)\g{aa}/
 8096: Failed: reference to non-existent subpattern at offset 9
 8097: 
 8098: /^a.b/<lf>
 8099:     a\rb
 8100:  0: a\x0db
 8101:     *** Failers
 8102: No match
 8103:     a\nb
 8104: No match
 8105: 
 8106: /.+foo/
 8107:     afoo
 8108:  0: afoo
 8109:     ** Failers
 8110: No match
 8111:     \r\nfoo
 8112: No match
 8113:     \nfoo
 8114: No match
 8115: 
 8116: /.+foo/<crlf>
 8117:     afoo
 8118:  0: afoo
 8119:     \nfoo
 8120:  0: \x0afoo
 8121:     ** Failers
 8122: No match
 8123:     \r\nfoo
 8124: No match
 8125: 
 8126: /.+foo/<any>
 8127:     afoo
 8128:  0: afoo
 8129:     ** Failers
 8130: No match
 8131:     \nfoo
 8132: No match
 8133:     \r\nfoo
 8134: No match
 8135: 
 8136: /.+foo/s
 8137:     afoo
 8138:  0: afoo
 8139:     \r\nfoo
 8140:  0: \x0d\x0afoo
 8141:     \nfoo
 8142:  0: \x0afoo
 8143:     
 8144: /^$/mg<any>
 8145:     abc\r\rxyz
 8146:  0: 
 8147:     abc\n\rxyz  
 8148:  0: 
 8149:     ** Failers 
 8150: No match
 8151:     abc\r\nxyz
 8152: No match
 8153: 
 8154: /(?m)^$/<any>g+
 8155:     abc\r\n\r\n
 8156:  0: 
 8157:  0+ \x0d\x0a
 8158: 
 8159: /(?m)^$|^\r\n/<any>g+ 
 8160:     abc\r\n\r\n
 8161:  0: 
 8162:  0+ \x0d\x0a
 8163:  0: \x0d\x0a
 8164:  0+ 
 8165:     
 8166: /(?m)$/<any>g+ 
 8167:     abc\r\n\r\n
 8168:  0: 
 8169:  0+ \x0d\x0a\x0d\x0a
 8170:  0: 
 8171:  0+ \x0d\x0a
 8172:  0: 
 8173:  0+ 
 8174: 
 8175: /abc.$/mgx<anycrlf>
 8176:     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
 8177:  0: abc1
 8178:  0: abc4
 8179:  0: abc5
 8180:  0: abc9
 8181: 
 8182: /^X/m
 8183:     XABC
 8184:  0: X
 8185:     ** Failers 
 8186: No match
 8187:     XABC\B
 8188: No match
 8189: 
 8190: /(ab|c)(?-1)/BZ
 8191: ------------------------------------------------------------------
 8192:         Bra
 8193:         CBra 1
 8194:         ab
 8195:         Alt
 8196:         c
 8197:         Ket
 8198:         Recurse
 8199:         Ket
 8200:         End
 8201: ------------------------------------------------------------------
 8202:     abc
 8203:  0: abc
 8204:  1: ab
 8205: 
 8206: /xy(?+1)(abc)/BZ
 8207: ------------------------------------------------------------------
 8208:         Bra
 8209:         xy
 8210:         Recurse
 8211:         CBra 1
 8212:         abc
 8213:         Ket
 8214:         Ket
 8215:         End
 8216: ------------------------------------------------------------------
 8217:     xyabcabc
 8218:  0: xyabcabc
 8219:  1: abc
 8220:     ** Failers
 8221: No match
 8222:     xyabc  
 8223: No match
 8224:     
 8225: /x(?-0)y/
 8226: Failed: a numbered reference must not be zero at offset 5
 8227: 
 8228: /x(?-1)y/
 8229: Failed: reference to non-existent subpattern at offset 5
 8230: 
 8231: /x(?+0)y/ 
 8232: Failed: a numbered reference must not be zero at offset 5
 8233: 
 8234: /x(?+1)y/
 8235: Failed: reference to non-existent subpattern at offset 5
 8236: 
 8237: /^(abc)?(?(-1)X|Y)/BZ
 8238: ------------------------------------------------------------------
 8239:         Bra
 8240:         ^
 8241:         Brazero
 8242:         CBra 1
 8243:         abc
 8244:         Ket
 8245:         Cond
 8246:       1 Cond ref
 8247:         X
 8248:         Alt
 8249:         Y
 8250:         Ket
 8251:         Ket
 8252:         End
 8253: ------------------------------------------------------------------
 8254:     abcX
 8255:  0: abcX
 8256:  1: abc
 8257:     Y
 8258:  0: Y
 8259:     ** Failers
 8260: No match
 8261:     abcY   
 8262: No match
 8263:     
 8264: /^((?(+1)X|Y)(abc))+/BZ 
 8265: ------------------------------------------------------------------
 8266:         Bra
 8267:         ^
 8268:         CBra 1
 8269:         Cond
 8270:       2 Cond ref
 8271:         X
 8272:         Alt
 8273:         Y
 8274:         Ket
 8275:         CBra 2
 8276:         abc
 8277:         Ket
 8278:         KetRmax
 8279:         Ket
 8280:         End
 8281: ------------------------------------------------------------------
 8282:     YabcXabc
 8283:  0: YabcXabc
 8284:  1: Xabc
 8285:  2: abc
 8286:     YabcXabcXabc
 8287:  0: YabcXabcXabc
 8288:  1: Xabc
 8289:  2: abc
 8290:     ** Failers
 8291: No match
 8292:     XabcXabc  
 8293: No match
 8294: 
 8295: /(?(-1)a)/BZ
 8296: Failed: reference to non-existent subpattern at offset 6
 8297: 
 8298: /((?(-1)a))/BZ
 8299: ------------------------------------------------------------------
 8300:         Bra
 8301:         CBra 1
 8302:         Cond
 8303:       1 Cond ref
 8304:         a
 8305:         Ket
 8306:         Ket
 8307:         Ket
 8308:         End
 8309: ------------------------------------------------------------------
 8310: 
 8311: /((?(-2)a))/BZ
 8312: Failed: reference to non-existent subpattern at offset 7
 8313: 
 8314: /^(?(+1)X|Y)(.)/BZ
 8315: ------------------------------------------------------------------
 8316:         Bra
 8317:         ^
 8318:         Cond
 8319:       1 Cond ref
 8320:         X
 8321:         Alt
 8322:         Y
 8323:         Ket
 8324:         CBra 1
 8325:         Any
 8326:         Ket
 8327:         Ket
 8328:         End
 8329: ------------------------------------------------------------------
 8330:     Y!
 8331:  0: Y!
 8332:  1: !
 8333: 
 8334: /(?<A>tom|bon)-\k{A}/
 8335:     tom-tom
 8336:  0: tom-tom
 8337:  1: tom
 8338:     bon-bon 
 8339:  0: bon-bon
 8340:  1: bon
 8341:     ** Failers
 8342: No match
 8343:     tom-bon  
 8344: No match
 8345: 
 8346: /\g{A/ 
 8347: Failed: syntax error in subpattern name (missing terminator) at offset 4
 8348: 
 8349: /(?|(abc)|(xyz))/BZ
 8350: ------------------------------------------------------------------
 8351:         Bra
 8352:         Bra
 8353:         CBra 1
 8354:         abc
 8355:         Ket
 8356:         Alt
 8357:         CBra 1
 8358:         xyz
 8359:         Ket
 8360:         Ket
 8361:         Ket
 8362:         End
 8363: ------------------------------------------------------------------
 8364:    >abc<
 8365:  0: abc
 8366:  1: abc
 8367:    >xyz< 
 8368:  0: xyz
 8369:  1: xyz
 8370: 
 8371: /(x)(?|(abc)|(xyz))(x)/BZ
 8372: ------------------------------------------------------------------
 8373:         Bra
 8374:         CBra 1
 8375:         x
 8376:         Ket
 8377:         Bra
 8378:         CBra 2
 8379:         abc
 8380:         Ket
 8381:         Alt
 8382:         CBra 2
 8383:         xyz
 8384:         Ket
 8385:         Ket
 8386:         CBra 3
 8387:         x
 8388:         Ket
 8389:         Ket
 8390:         End
 8391: ------------------------------------------------------------------
 8392:     xabcx
 8393:  0: xabcx
 8394:  1: x
 8395:  2: abc
 8396:  3: x
 8397:     xxyzx 
 8398:  0: xxyzx
 8399:  1: x
 8400:  2: xyz
 8401:  3: x
 8402: 
 8403: /(x)(?|(abc)(pqr)|(xyz))(x)/BZ
 8404: ------------------------------------------------------------------
 8405:         Bra
 8406:         CBra 1
 8407:         x
 8408:         Ket
 8409:         Bra
 8410:         CBra 2
 8411:         abc
 8412:         Ket
 8413:         CBra 3
 8414:         pqr
 8415:         Ket
 8416:         Alt
 8417:         CBra 2
 8418:         xyz
 8419:         Ket
 8420:         Ket
 8421:         CBra 4
 8422:         x
 8423:         Ket
 8424:         Ket
 8425:         End
 8426: ------------------------------------------------------------------
 8427:     xabcpqrx
 8428:  0: xabcpqrx
 8429:  1: x
 8430:  2: abc
 8431:  3: pqr
 8432:  4: x
 8433:     xxyzx 
 8434:  0: xxyzx
 8435:  1: x
 8436:  2: xyz
 8437:  3: <unset>
 8438:  4: x
 8439: 
 8440: /\H++X/BZ
 8441: ------------------------------------------------------------------
 8442:         Bra
 8443:         \H++
 8444:         X
 8445:         Ket
 8446:         End
 8447: ------------------------------------------------------------------
 8448:     ** Failers
 8449: No match
 8450:     XXXX
 8451: No match
 8452:     
 8453: /\H+\hY/BZ
 8454: ------------------------------------------------------------------
 8455:         Bra
 8456:         \H++
 8457:         \h
 8458:         Y
 8459:         Ket
 8460:         End
 8461: ------------------------------------------------------------------
 8462:     XXXX Y 
 8463:  0: XXXX Y
 8464: 
 8465: /\H+ Y/BZ
 8466: ------------------------------------------------------------------
 8467:         Bra
 8468:         \H++
 8469:          Y
 8470:         Ket
 8471:         End
 8472: ------------------------------------------------------------------
 8473: 
 8474: /\h+A/BZ
 8475: ------------------------------------------------------------------
 8476:         Bra
 8477:         \h++
 8478:         A
 8479:         Ket
 8480:         End
 8481: ------------------------------------------------------------------
 8482: 
 8483: /\v*B/BZ
 8484: ------------------------------------------------------------------
 8485:         Bra
 8486:         \v*+
 8487:         B
 8488:         Ket
 8489:         End
 8490: ------------------------------------------------------------------
 8491: 
 8492: /\V+\x0a/BZ
 8493: ------------------------------------------------------------------
 8494:         Bra
 8495:         \V++
 8496:         \x0a
 8497:         Ket
 8498:         End
 8499: ------------------------------------------------------------------
 8500: 
 8501: /A+\h/BZ
 8502: ------------------------------------------------------------------
 8503:         Bra
 8504:         A++
 8505:         \h
 8506:         Ket
 8507:         End
 8508: ------------------------------------------------------------------
 8509: 
 8510: / *\H/BZ
 8511: ------------------------------------------------------------------
 8512:         Bra
 8513:          *+
 8514:         \H
 8515:         Ket
 8516:         End
 8517: ------------------------------------------------------------------
 8518: 
 8519: /A*\v/BZ
 8520: ------------------------------------------------------------------
 8521:         Bra
 8522:         A*+
 8523:         \v
 8524:         Ket
 8525:         End
 8526: ------------------------------------------------------------------
 8527: 
 8528: /\x0b*\V/BZ
 8529: ------------------------------------------------------------------
 8530:         Bra
 8531:         \x0b*+
 8532:         \V
 8533:         Ket
 8534:         End
 8535: ------------------------------------------------------------------
 8536: 
 8537: /\d+\h/BZ
 8538: ------------------------------------------------------------------
 8539:         Bra
 8540:         \d++
 8541:         \h
 8542:         Ket
 8543:         End
 8544: ------------------------------------------------------------------
 8545: 
 8546: /\d*\v/BZ
 8547: ------------------------------------------------------------------
 8548:         Bra
 8549:         \d*+
 8550:         \v
 8551:         Ket
 8552:         End
 8553: ------------------------------------------------------------------
 8554: 
 8555: /S+\h\S+\v/BZ
 8556: ------------------------------------------------------------------
 8557:         Bra
 8558:         S++
 8559:         \h
 8560:         \S++
 8561:         \v
 8562:         Ket
 8563:         End
 8564: ------------------------------------------------------------------
 8565: 
 8566: /\w{3,}\h\w+\v/BZ
 8567: ------------------------------------------------------------------
 8568:         Bra
 8569:         \w{3}
 8570:         \w*+
 8571:         \h
 8572:         \w++
 8573:         \v
 8574:         Ket
 8575:         End
 8576: ------------------------------------------------------------------
 8577: 
 8578: /\h+\d\h+\w\h+\S\h+\H/BZ
 8579: ------------------------------------------------------------------
 8580:         Bra
 8581:         \h++
 8582:         \d
 8583:         \h++
 8584:         \w
 8585:         \h++
 8586:         \S
 8587:         \h++
 8588:         \H
 8589:         Ket
 8590:         End
 8591: ------------------------------------------------------------------
 8592: 
 8593: /\v+\d\v+\w\v+\S\v+\V/BZ
 8594: ------------------------------------------------------------------
 8595:         Bra
 8596:         \v++
 8597:         \d
 8598:         \v++
 8599:         \w
 8600:         \v++
 8601:         \S
 8602:         \v++
 8603:         \V
 8604:         Ket
 8605:         End
 8606: ------------------------------------------------------------------
 8607: 
 8608: /\H+\h\H+\d/BZ
 8609: ------------------------------------------------------------------
 8610:         Bra
 8611:         \H++
 8612:         \h
 8613:         \H+
 8614:         \d
 8615:         Ket
 8616:         End
 8617: ------------------------------------------------------------------
 8618: 
 8619: /\V+\v\V+\w/BZ
 8620: ------------------------------------------------------------------
 8621:         Bra
 8622:         \V++
 8623:         \v
 8624:         \V+
 8625:         \w
 8626:         Ket
 8627:         End
 8628: ------------------------------------------------------------------
 8629: 
 8630: /\( (?: [^()]* | (?R) )* \)/x
 8631: \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)
 8632:  0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
 8633: 
 8634: /[\E]AAA/
 8635: Failed: missing terminating ] for character class at offset 7
 8636: 
 8637: /[\Q\E]AAA/
 8638: Failed: missing terminating ] for character class at offset 9
 8639: 
 8640: /[^\E]AAA/
 8641: Failed: missing terminating ] for character class at offset 8
 8642: 
 8643: /[^\Q\E]AAA/
 8644: Failed: missing terminating ] for character class at offset 10
 8645: 
 8646: /[\E^]AAA/
 8647: Failed: missing terminating ] for character class at offset 8
 8648: 
 8649: /[\Q\E^]AAA/
 8650: Failed: missing terminating ] for character class at offset 10
 8651: 
 8652: /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
 8653: ------------------------------------------------------------------
 8654:         Bra
 8655:         A
 8656:         *PRUNE
 8657:         B
 8658:         *SKIP
 8659:         C
 8660:         *THEN
 8661:         D
 8662:         *COMMIT
 8663:         E
 8664:         *FAIL
 8665:         F
 8666:         *FAIL
 8667:         G
 8668:         *FAIL
 8669:         H
 8670:         *ACCEPT
 8671:         I
 8672:         Ket
 8673:         End
 8674: ------------------------------------------------------------------
 8675: 
 8676: /^a+(*FAIL)/C
 8677:     aaaaaa
 8678: --->aaaaaa
 8679:  +0 ^          ^
 8680:  +1 ^          a+
 8681:  +3 ^     ^    (*FAIL)
 8682:  +3 ^    ^     (*FAIL)
 8683:  +3 ^   ^      (*FAIL)
 8684:  +3 ^  ^       (*FAIL)
 8685:  +3 ^ ^        (*FAIL)
 8686:  +3 ^^         (*FAIL)
 8687: No match
 8688:     
 8689: /a+b?c+(*FAIL)/C
 8690:     aaabccc
 8691: --->aaabccc
 8692:  +0 ^           a+
 8693:  +2 ^  ^        b?
 8694:  +4 ^   ^       c+
 8695:  +6 ^      ^    (*FAIL)
 8696:  +6 ^     ^     (*FAIL)
 8697:  +6 ^    ^      (*FAIL)
 8698:  +0  ^          a+
 8699:  +2  ^ ^        b?
 8700:  +4  ^  ^       c+
 8701:  +6  ^     ^    (*FAIL)
 8702:  +6  ^    ^     (*FAIL)
 8703:  +6  ^   ^      (*FAIL)
 8704:  +0   ^         a+
 8705:  +2   ^^        b?
 8706:  +4   ^ ^       c+
 8707:  +6   ^    ^    (*FAIL)
 8708:  +6   ^   ^     (*FAIL)
 8709:  +6   ^  ^      (*FAIL)
 8710: No match
 8711: 
 8712: /a+b?(*PRUNE)c+(*FAIL)/C
 8713:     aaabccc
 8714: --->aaabccc
 8715:  +0 ^           a+
 8716:  +2 ^  ^        b?
 8717:  +4 ^   ^       (*PRUNE)
 8718: +12 ^   ^       c+
 8719: +14 ^      ^    (*FAIL)
 8720: +14 ^     ^     (*FAIL)
 8721: +14 ^    ^      (*FAIL)
 8722:  +0  ^          a+
 8723:  +2  ^ ^        b?
 8724:  +4  ^  ^       (*PRUNE)
 8725: +12  ^  ^       c+
 8726: +14  ^     ^    (*FAIL)
 8727: +14  ^    ^     (*FAIL)
 8728: +14  ^   ^      (*FAIL)
 8729:  +0   ^         a+
 8730:  +2   ^^        b?
 8731:  +4   ^ ^       (*PRUNE)
 8732: +12   ^ ^       c+
 8733: +14   ^    ^    (*FAIL)
 8734: +14   ^   ^     (*FAIL)
 8735: +14   ^  ^      (*FAIL)
 8736: No match
 8737: 
 8738: /a+b?(*COMMIT)c+(*FAIL)/C
 8739:     aaabccc
 8740: --->aaabccc
 8741:  +0 ^           a+
 8742:  +2 ^  ^        b?
 8743:  +4 ^   ^       (*COMMIT)
 8744: +13 ^   ^       c+
 8745: +15 ^      ^    (*FAIL)
 8746: +15 ^     ^     (*FAIL)
 8747: +15 ^    ^      (*FAIL)
 8748: No match
 8749:     
 8750: /a+b?(*SKIP)c+(*FAIL)/C
 8751:     aaabcccaaabccc
 8752: --->aaabcccaaabccc
 8753:  +0 ^                  a+
 8754:  +2 ^  ^               b?
 8755:  +4 ^   ^              (*SKIP)
 8756: +11 ^   ^              c+
 8757: +13 ^      ^           (*FAIL)
 8758: +13 ^     ^            (*FAIL)
 8759: +13 ^    ^             (*FAIL)
 8760:  +0        ^           a+
 8761:  +2        ^  ^        b?
 8762:  +4        ^   ^       (*SKIP)
 8763: +11        ^   ^       c+
 8764: +13        ^      ^    (*FAIL)
 8765: +13        ^     ^     (*FAIL)
 8766: +13        ^    ^      (*FAIL)
 8767: No match
 8768: 
 8769: /a+b?(*THEN)c+(*FAIL)/C
 8770:     aaabccc
 8771: --->aaabccc
 8772:  +0 ^           a+
 8773:  +2 ^  ^        b?
 8774:  +4 ^   ^       (*THEN)
 8775: +11 ^   ^       c+
 8776: +13 ^      ^    (*FAIL)
 8777: +13 ^     ^     (*FAIL)
 8778: +13 ^    ^      (*FAIL)
 8779:  +0  ^          a+
 8780:  +2  ^ ^        b?
 8781:  +4  ^  ^       (*THEN)
 8782: +11  ^  ^       c+
 8783: +13  ^     ^    (*FAIL)
 8784: +13  ^    ^     (*FAIL)
 8785: +13  ^   ^      (*FAIL)
 8786:  +0   ^         a+
 8787:  +2   ^^        b?
 8788:  +4   ^ ^       (*THEN)
 8789: +11   ^ ^       c+
 8790: +13   ^    ^    (*FAIL)
 8791: +13   ^   ^     (*FAIL)
 8792: +13   ^  ^      (*FAIL)
 8793: No match
 8794:     
 8795: /a(*MARK)b/ 
 8796: Failed: (*MARK) must have an argument at offset 7
 8797: 
 8798: /(?i:A{1,}\6666666666)/
 8799: Failed: number is too big at offset 19
 8800: 
 8801: /\g6666666666/
 8802: Failed: number is too big at offset 11
 8803: 
 8804: /[\g6666666666]/BZ
 8805: ------------------------------------------------------------------
 8806:         Bra
 8807:         [6g]
 8808:         Ket
 8809:         End
 8810: ------------------------------------------------------------------
 8811: 
 8812: /(?1)\c[/
 8813: Failed: reference to non-existent subpattern at offset 3
 8814: 
 8815: /.+A/<crlf>
 8816:     \r\nA
 8817: No match
 8818:     
 8819: /\nA/<crlf>
 8820:     \r\nA 
 8821:  0: \x0aA
 8822: 
 8823: /[\r\n]A/<crlf>
 8824:     \r\nA 
 8825:  0: \x0aA
 8826: 
 8827: /(\r|\n)A/<crlf>
 8828:     \r\nA 
 8829:  0: \x0aA
 8830:  1: \x0a
 8831: 
 8832: /a(*CR)b/
 8833: Failed: (*VERB) not recognized or malformed at offset 5
 8834: 
 8835: /(*CR)a.b/
 8836:     a\nb
 8837:  0: a\x0ab
 8838:     ** Failers
 8839: No match
 8840:     a\rb  
 8841: No match
 8842: 
 8843: /(*CR)a.b/<lf>
 8844:     a\nb
 8845:  0: a\x0ab
 8846:     ** Failers
 8847: No match
 8848:     a\rb  
 8849: No match
 8850: 
 8851: /(*LF)a.b/<CRLF>
 8852:     a\rb
 8853:  0: a\x0db
 8854:     ** Failers
 8855: No match
 8856:     a\nb  
 8857: No match
 8858: 
 8859: /(*CRLF)a.b/
 8860:     a\rb
 8861:  0: a\x0db
 8862:     a\nb  
 8863:  0: a\x0ab
 8864:     ** Failers
 8865: No match
 8866:     a\r\nb  
 8867: No match
 8868: 
 8869: /(*ANYCRLF)a.b/<CR>
 8870:     ** Failers
 8871: No match
 8872:     a\rb
 8873: No match
 8874:     a\nb  
 8875: No match
 8876:     a\r\nb  
 8877: No match
 8878: 
 8879: /(*ANY)a.b/<cr>
 8880:     ** Failers
 8881: No match
 8882:     a\rb
 8883: No match
 8884:     a\nb  
 8885: No match
 8886:     a\r\nb  
 8887: No match
 8888:     a\x85b 
 8889: No match
 8890:     
 8891: /(*ANY).*/g
 8892:     abc\r\ndef
 8893:  0: abc
 8894:  0: 
 8895:  0: def
 8896:  0: 
 8897: 
 8898: /(*ANYCRLF).*/g
 8899:     abc\r\ndef
 8900:  0: abc
 8901:  0: 
 8902:  0: def
 8903:  0: 
 8904: 
 8905: /(*CRLF).*/g
 8906:     abc\r\ndef
 8907:  0: abc
 8908:  0: 
 8909:  0: def
 8910:  0: 
 8911: 
 8912: /a\Rb/I<bsr_anycrlf>
 8913: Capturing subpattern count = 0
 8914: Options: bsr_anycrlf
 8915: First char = 'a'
 8916: Need char = 'b'
 8917:     a\rb
 8918:  0: a\x0db
 8919:     a\nb
 8920:  0: a\x0ab
 8921:     a\r\nb
 8922:  0: a\x0d\x0ab
 8923:     ** Failers
 8924: No match
 8925:     a\x85b
 8926: No match
 8927:     a\x0bb     
 8928: No match
 8929: 
 8930: /a\Rb/I<bsr_unicode>
 8931: Capturing subpattern count = 0
 8932: Options: bsr_unicode
 8933: First char = 'a'
 8934: Need char = 'b'
 8935:     a\rb
 8936:  0: a\x0db
 8937:     a\nb
 8938:  0: a\x0ab
 8939:     a\r\nb
 8940:  0: a\x0d\x0ab
 8941:     a\x85b
 8942:  0: a\x85b
 8943:     a\x0bb     
 8944:  0: a\x0bb
 8945:     ** Failers 
 8946: No match
 8947:     a\x85b\<bsr_anycrlf>
 8948: No match
 8949:     a\x0bb\<bsr_anycrlf>
 8950: No match
 8951:     
 8952: /a\R?b/I<bsr_anycrlf>
 8953: Capturing subpattern count = 0
 8954: Options: bsr_anycrlf
 8955: First char = 'a'
 8956: Need char = 'b'
 8957:     a\rb
 8958:  0: a\x0db
 8959:     a\nb
 8960:  0: a\x0ab
 8961:     a\r\nb
 8962:  0: a\x0d\x0ab
 8963:     ** Failers
 8964: No match
 8965:     a\x85b
 8966: No match
 8967:     a\x0bb     
 8968: No match
 8969: 
 8970: /a\R?b/I<bsr_unicode>
 8971: Capturing subpattern count = 0
 8972: Options: bsr_unicode
 8973: First char = 'a'
 8974: Need char = 'b'
 8975:     a\rb
 8976:  0: a\x0db
 8977:     a\nb
 8978:  0: a\x0ab
 8979:     a\r\nb
 8980:  0: a\x0d\x0ab
 8981:     a\x85b
 8982:  0: a\x85b
 8983:     a\x0bb     
 8984:  0: a\x0bb
 8985:     ** Failers 
 8986: No match
 8987:     a\x85b\<bsr_anycrlf>
 8988: No match
 8989:     a\x0bb\<bsr_anycrlf>
 8990: No match
 8991:     
 8992: /a\R{2,4}b/I<bsr_anycrlf>
 8993: Capturing subpattern count = 0
 8994: Options: bsr_anycrlf
 8995: First char = 'a'
 8996: Need char = 'b'
 8997:     a\r\n\nb
 8998:  0: a\x0d\x0a\x0ab
 8999:     a\n\r\rb
 9000:  0: a\x0a\x0d\x0db
 9001:     a\r\n\r\n\r\n\r\nb
 9002:  0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
 9003:     ** Failers
 9004: No match
 9005:     a\x85\85b
 9006: No match
 9007:     a\x0b\0bb     
 9008: No match
 9009: 
 9010: /a\R{2,4}b/I<bsr_unicode>
 9011: Capturing subpattern count = 0
 9012: Options: bsr_unicode
 9013: First char = 'a'
 9014: Need char = 'b'
 9015:     a\r\rb
 9016:  0: a\x0d\x0db
 9017:     a\n\n\nb
 9018:  0: a\x0a\x0a\x0ab
 9019:     a\r\n\n\r\rb
 9020:  0: a\x0d\x0a\x0a\x0d\x0db
 9021:     a\x85\85b
 9022: No match
 9023:     a\x0b\0bb     
 9024: No match
 9025:     ** Failers 
 9026: No match
 9027:     a\r\r\r\r\rb 
 9028: No match
 9029:     a\x85\85b\<bsr_anycrlf>
 9030: No match
 9031:     a\x0b\0bb\<bsr_anycrlf>
 9032: No match
 9033:  
 9034: /(*BSR_ANYCRLF)a\Rb/I
 9035: Capturing subpattern count = 0
 9036: Options: bsr_anycrlf
 9037: First char = 'a'
 9038: Need char = 'b'
 9039:     a\nb
 9040:  0: a\x0ab
 9041:     a\rb 
 9042:  0: a\x0db
 9043: 
 9044: /(*BSR_UNICODE)a\Rb/I
 9045: Capturing subpattern count = 0
 9046: Options: bsr_unicode
 9047: First char = 'a'
 9048: Need char = 'b'
 9049:     a\x85b
 9050:  0: a\x85b
 9051: 
 9052: /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
 9053: Capturing subpattern count = 0
 9054: Options: bsr_anycrlf
 9055: Forced newline sequence: CRLF
 9056: First char = 'a'
 9057: Need char = 'b'
 9058:     a\nb
 9059:  0: a\x0ab
 9060:     a\rb 
 9061:  0: a\x0db
 9062: 
 9063: /(*CRLF)(*BSR_UNICODE)a\Rb/I
 9064: Capturing subpattern count = 0
 9065: Options: bsr_unicode
 9066: Forced newline sequence: CRLF
 9067: First char = 'a'
 9068: Need char = 'b'
 9069:     a\x85b
 9070:  0: a\x85b
 9071: 
 9072: /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
 9073: Capturing subpattern count = 0
 9074: Options: bsr_anycrlf
 9075: Forced newline sequence: CR
 9076: First char = 'a'
 9077: Need char = 'b'
 9078: 
 9079: /(?<a>)(?&)/
 9080: Failed: subpattern name expected at offset 9
 9081: 
 9082: /(?<abc>)(?&a)/
 9083: Failed: reference to non-existent subpattern at offset 12
 9084: 
 9085: /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
 9086: Failed: reference to non-existent subpattern at offset 32
 9087: 
 9088: /(?+-a)/
 9089: Failed: digit expected after (?+ at offset 3
 9090: 
 9091: /(?-+a)/
 9092: Failed: unrecognized character after (? or (?- at offset 3
 9093: 
 9094: /(?(-1))/
 9095: Failed: reference to non-existent subpattern at offset 6
 9096: 
 9097: /(?(+10))/
 9098: Failed: reference to non-existent subpattern at offset 7
 9099: 
 9100: /(?(10))/
 9101: Failed: reference to non-existent subpattern at offset 6
 9102: 
 9103: /(?(+2))()()/
 9104: 
 9105: /(?(2))()()/
 9106: 
 9107: /\k''/
 9108: Failed: subpattern name expected at offset 3
 9109: 
 9110: /\k<>/
 9111: Failed: subpattern name expected at offset 3
 9112: 
 9113: /\k{}/
 9114: Failed: subpattern name expected at offset 3
 9115: 
 9116: /\k/
 9117: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
 9118: 
 9119: /\kabc/
 9120: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
 9121: 
 9122: /(?P=)/
 9123: Failed: subpattern name expected at offset 4
 9124: 
 9125: /(?P>)/
 9126: Failed: subpattern name expected at offset 4
 9127: 
 9128: /(?!\w)(?R)/
 9129: Failed: recursive call could loop indefinitely at offset 9
 9130: 
 9131: /(?=\w)(?R)/
 9132: Failed: recursive call could loop indefinitely at offset 9
 9133: 
 9134: /(?<!\w)(?R)/
 9135: Failed: recursive call could loop indefinitely at offset 10
 9136: 
 9137: /(?<=\w)(?R)/
 9138: Failed: recursive call could loop indefinitely at offset 10
 9139: 
 9140: /[[:foo:]]/
 9141: Failed: unknown POSIX class name at offset 3
 9142: 
 9143: /[[:1234:]]/
 9144: Failed: unknown POSIX class name at offset 3
 9145: 
 9146: /[[:f\oo:]]/
 9147: Failed: unknown POSIX class name at offset 3
 9148: 
 9149: /[[: :]]/
 9150: Failed: unknown POSIX class name at offset 3
 9151: 
 9152: /[[:...:]]/
 9153: Failed: unknown POSIX class name at offset 3
 9154: 
 9155: /[[:l\ower:]]/
 9156: Failed: unknown POSIX class name at offset 3
 9157: 
 9158: /[[:abc\:]]/
 9159: Failed: unknown POSIX class name at offset 3
 9160: 
 9161: /[abc[:x\]pqr:]]/
 9162: Failed: unknown POSIX class name at offset 6
 9163: 
 9164: /[[:a\dz:]]/
 9165: Failed: unknown POSIX class name at offset 3
 9166: 
 9167: /(^(a|b\g<-1'c))/
 9168: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
 9169: 
 9170: /^(?+1)(?<a>x|y){0}z/
 9171:     xzxx
 9172:  0: xz
 9173:     yzyy 
 9174:  0: yz
 9175:     ** Failers
 9176: No match
 9177:     xxz  
 9178: No match
 9179: 
 9180: /(\3)(\1)(a)/
 9181:     cat
 9182: No match
 9183: 
 9184: /(\3)(\1)(a)/<JS>
 9185:     cat
 9186:  0: a
 9187:  1: 
 9188:  2: 
 9189:  3: a
 9190:     
 9191: /TA]/
 9192:     The ACTA] comes 
 9193:  0: TA]
 9194: 
 9195: /TA]/<JS>
 9196: Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
 9197: 
 9198: /(?2)[]a()b](abc)/
 9199: Failed: reference to non-existent subpattern at offset 3
 9200: 
 9201: /(?2)[^]a()b](abc)/
 9202: Failed: reference to non-existent subpattern at offset 3
 9203: 
 9204: /(?1)[]a()b](abc)/
 9205:     abcbabc
 9206:  0: abcbabc
 9207:  1: abc
 9208:     ** Failers 
 9209: No match
 9210:     abcXabc
 9211: No match
 9212: 
 9213: /(?1)[^]a()b](abc)/
 9214:     abcXabc
 9215:  0: abcXabc
 9216:  1: abc
 9217:     ** Failers 
 9218: No match
 9219:     abcbabc
 9220: No match
 9221: 
 9222: /(?2)[]a()b](abc)(xyz)/
 9223:     xyzbabcxyz
 9224:  0: xyzbabcxyz
 9225:  1: abc
 9226:  2: xyz
 9227: 
 9228: /(?&N)[]a(?<N>)](?<M>abc)/
 9229: Failed: reference to non-existent subpattern at offset 4
 9230: 
 9231: /(?&N)[]a(?<N>)](abc)/
 9232: Failed: reference to non-existent subpattern at offset 4
 9233: 
 9234: /a[]b/
 9235: Failed: missing terminating ] for character class at offset 4
 9236: 
 9237: /a[^]b/
 9238: Failed: missing terminating ] for character class at offset 5
 9239: 
 9240: /a[]b/<JS>
 9241:     ** Failers
 9242: No match
 9243:     ab
 9244: No match
 9245: 
 9246: /a[]+b/<JS>
 9247:     ** Failers
 9248: No match
 9249:     ab 
 9250: No match
 9251: 
 9252: /a[]*+b/<JS>
 9253:     ** Failers
 9254: No match
 9255:     ab 
 9256: No match
 9257: 
 9258: /a[^]b/<JS>
 9259:     aXb
 9260:  0: aXb
 9261:     a\nb 
 9262:  0: a\x0ab
 9263:     ** Failers
 9264: No match
 9265:     ab  
 9266: No match
 9267:     
 9268: /a[^]+b/<JS> 
 9269:     aXb
 9270:  0: aXb
 9271:     a\nX\nXb 
 9272:  0: a\x0aX\x0aXb
 9273:     ** Failers
 9274: No match
 9275:     ab  
 9276: No match
 9277: 
 9278: /a(?!)b/BZ
 9279: ------------------------------------------------------------------
 9280:         Bra
 9281:         a
 9282:         *FAIL
 9283:         b
 9284:         Ket
 9285:         End
 9286: ------------------------------------------------------------------
 9287: 
 9288: /(?!)?a/BZ
 9289: ------------------------------------------------------------------
 9290:         Bra
 9291:         Brazero
 9292:         Assert not
 9293:         Ket
 9294:         a
 9295:         Ket
 9296:         End
 9297: ------------------------------------------------------------------
 9298:     ab
 9299:  0: a
 9300: 
 9301: /a(*FAIL)+b/
 9302: Failed: nothing to repeat at offset 8
 9303: 
 9304: /(abc|pqr|123){0}[xyz]/SI
 9305: Capturing subpattern count = 1
 9306: No options
 9307: No first char
 9308: No need char
 9309: Subject length lower bound = 1
 9310: Starting byte set: x y z 
 9311: 
 9312: /(?(?=.*b)b|^)/CI
 9313: Capturing subpattern count = 0
 9314: May match empty string
 9315: Options:
 9316: No first char
 9317: No need char
 9318:    adc
 9319: --->adc
 9320:  +0 ^       (?(?=.*b)b|^)
 9321:  +2 ^       (?=.*b)
 9322:  +5 ^       .*
 9323:  +7 ^  ^    b
 9324:  +7 ^ ^     b
 9325:  +7 ^^      b
 9326:  +7 ^       b
 9327: +11 ^       ^
 9328: +12 ^       )
 9329: +13 ^       
 9330:  0: 
 9331:    abc 
 9332: --->abc
 9333:  +0 ^       (?(?=.*b)b|^)
 9334:  +2 ^       (?=.*b)
 9335:  +5 ^       .*
 9336:  +7 ^  ^    b
 9337:  +7 ^ ^     b
 9338:  +7 ^^      b
 9339:  +8 ^ ^     )
 9340:  +9 ^       b
 9341:  +0  ^      (?(?=.*b)b|^)
 9342:  +2  ^      (?=.*b)
 9343:  +5  ^      .*
 9344:  +7  ^ ^    b
 9345:  +7  ^^     b
 9346:  +7  ^      b
 9347:  +8  ^^     )
 9348:  +9  ^      b
 9349: +10  ^^     |
 9350: +13  ^^     
 9351:  0: b
 9352:    
 9353: /(?(?=b).*b|^d)/I
 9354: Capturing subpattern count = 0
 9355: No options
 9356: No first char
 9357: No need char
 9358: 
 9359: /(?(?=.*b).*b|^d)/I
 9360: Capturing subpattern count = 0
 9361: No options
 9362: First char at start or follows newline
 9363: No need char
 9364: 
 9365: /xyz/C
 9366:   xyz 
 9367: --->xyz
 9368:  +0 ^       x
 9369:  +1 ^^      y
 9370:  +2 ^ ^     z
 9371:  +3 ^  ^    
 9372:  0: xyz
 9373:   abcxyz 
 9374: --->abcxyz
 9375:  +0    ^       x
 9376:  +1    ^^      y
 9377:  +2    ^ ^     z
 9378:  +3    ^  ^    
 9379:  0: xyz
 9380:   abcxyz\Y
 9381: --->abcxyz
 9382:  +0 ^          x
 9383:  +0  ^         x
 9384:  +0   ^        x
 9385:  +0    ^       x
 9386:  +1    ^^      y
 9387:  +2    ^ ^     z
 9388:  +3    ^  ^    
 9389:  0: xyz
 9390:   ** Failers 
 9391: No match
 9392:   abc
 9393: No match
 9394:   abc\Y
 9395: --->abc
 9396:  +0 ^       x
 9397:  +0  ^      x
 9398:  +0   ^     x
 9399:  +0    ^    x
 9400: No match
 9401:   abcxypqr  
 9402: No match
 9403:   abcxypqr\Y  
 9404: --->abcxypqr
 9405:  +0 ^            x
 9406:  +0  ^           x
 9407:  +0   ^          x
 9408:  +0    ^         x
 9409:  +1    ^^        y
 9410:  +2    ^ ^       z
 9411:  +0     ^        x
 9412:  +0      ^       x
 9413:  +0       ^      x
 9414:  +0        ^     x
 9415:  +0         ^    x
 9416: No match
 9417:   
 9418: /(*NO_START_OPT)xyz/C
 9419:   abcxyz
 9420: --->abcxyz
 9421: +15 ^          x
 9422: +15  ^         x
 9423: +15   ^        x
 9424: +15    ^       x
 9425: +16    ^^      y
 9426: +17    ^ ^     z
 9427: +18    ^  ^    
 9428:  0: xyz
 9429:   
 9430: /(*NO_AUTO_POSSESS)a+b/BZ  
 9431: ------------------------------------------------------------------
 9432:         Bra
 9433:         a+
 9434:         b
 9435:         Ket
 9436:         End
 9437: ------------------------------------------------------------------
 9438: 
 9439: /xyz/CY
 9440:   abcxyz 
 9441: --->abcxyz
 9442:  +0 ^          x
 9443:  +0  ^         x
 9444:  +0   ^        x
 9445:  +0    ^       x
 9446:  +1    ^^      y
 9447:  +2    ^ ^     z
 9448:  +3    ^  ^    
 9449:  0: xyz
 9450: 
 9451: /^"((?(?=[a])[^"])|b)*"$/C
 9452:     "ab"
 9453: --->"ab"
 9454:  +0 ^        ^
 9455:  +1 ^        "
 9456:  +2 ^^       ((?(?=[a])[^"])|b)*
 9457:  +3 ^^       (?(?=[a])[^"])
 9458:  +5 ^^       (?=[a])
 9459:  +8 ^^       [a]
 9460: +11 ^ ^      )
 9461: +12 ^^       [^"]
 9462: +16 ^ ^      )
 9463: +17 ^ ^      |
 9464:  +3 ^ ^      (?(?=[a])[^"])
 9465:  +5 ^ ^      (?=[a])
 9466:  +8 ^ ^      [a]
 9467: +17 ^ ^      |
 9468: +21 ^ ^      "
 9469: +18 ^ ^      b
 9470: +19 ^  ^     )
 9471:  +3 ^  ^     (?(?=[a])[^"])
 9472:  +5 ^  ^     (?=[a])
 9473:  +8 ^  ^     [a]
 9474: +17 ^  ^     |
 9475: +21 ^  ^     "
 9476: +22 ^   ^    $
 9477: +23 ^   ^    
 9478:  0: "ab"
 9479:  1: 
 9480: 
 9481: /^"((?(?=[a])[^"])|b)*"$/
 9482:     "ab"
 9483:  0: "ab"
 9484:  1: 
 9485: 
 9486: /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
 9487: Failed: reference to non-existent subpattern at offset 5
 9488: 
 9489: /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
 9490:     XYabcdY
 9491:  0: XYabcdY
 9492:  1: a
 9493:  2: b
 9494:  3: c
 9495:  4: d
 9496:  5: Y
 9497:  
 9498: /Xa{2,4}b/
 9499:     X\P
 9500: Partial match: X
 9501:     Xa\P
 9502: Partial match: Xa
 9503:     Xaa\P 
 9504: Partial match: Xaa
 9505:     Xaaa\P
 9506: Partial match: Xaaa
 9507:     Xaaaa\P 
 9508: Partial match: Xaaaa
 9509:     
 9510: /Xa{2,4}?b/
 9511:     X\P
 9512: Partial match: X
 9513:     Xa\P
 9514: Partial match: Xa
 9515:     Xaa\P 
 9516: Partial match: Xaa
 9517:     Xaaa\P
 9518: Partial match: Xaaa
 9519:     Xaaaa\P 
 9520: Partial match: Xaaaa
 9521:     
 9522: /Xa{2,4}+b/
 9523:     X\P
 9524: Partial match: X
 9525:     Xa\P
 9526: Partial match: Xa
 9527:     Xaa\P 
 9528: Partial match: Xaa
 9529:     Xaaa\P
 9530: Partial match: Xaaa
 9531:     Xaaaa\P 
 9532: Partial match: Xaaaa
 9533:     
 9534: /X\d{2,4}b/
 9535:     X\P
 9536: Partial match: X
 9537:     X3\P
 9538: Partial match: X3
 9539:     X33\P 
 9540: Partial match: X33
 9541:     X333\P
 9542: Partial match: X333
 9543:     X3333\P 
 9544: Partial match: X3333
 9545:     
 9546: /X\d{2,4}?b/
 9547:     X\P
 9548: Partial match: X
 9549:     X3\P
 9550: Partial match: X3
 9551:     X33\P 
 9552: Partial match: X33
 9553:     X333\P
 9554: Partial match: X333
 9555:     X3333\P 
 9556: Partial match: X3333
 9557:     
 9558: /X\d{2,4}+b/
 9559:     X\P
 9560: Partial match: X
 9561:     X3\P
 9562: Partial match: X3
 9563:     X33\P 
 9564: Partial match: X33
 9565:     X333\P
 9566: Partial match: X333
 9567:     X3333\P 
 9568: Partial match: X3333
 9569:     
 9570: /X\D{2,4}b/
 9571:     X\P
 9572: Partial match: X
 9573:     Xa\P
 9574: Partial match: Xa
 9575:     Xaa\P 
 9576: Partial match: Xaa
 9577:     Xaaa\P
 9578: Partial match: Xaaa
 9579:     Xaaaa\P 
 9580: Partial match: Xaaaa
 9581:     
 9582: /X\D{2,4}?b/
 9583:     X\P
 9584: Partial match: X
 9585:     Xa\P
 9586: Partial match: Xa
 9587:     Xaa\P 
 9588: Partial match: Xaa
 9589:     Xaaa\P
 9590: Partial match: Xaaa
 9591:     Xaaaa\P 
 9592: Partial match: Xaaaa
 9593:     
 9594: /X\D{2,4}+b/
 9595:     X\P
 9596: Partial match: X
 9597:     Xa\P
 9598: Partial match: Xa
 9599:     Xaa\P 
 9600: Partial match: Xaa
 9601:     Xaaa\P
 9602: Partial match: Xaaa
 9603:     Xaaaa\P 
 9604: Partial match: Xaaaa
 9605:     
 9606: /X[abc]{2,4}b/
 9607:     X\P
 9608: Partial match: X
 9609:     Xa\P
 9610: Partial match: Xa
 9611:     Xaa\P 
 9612: Partial match: Xaa
 9613:     Xaaa\P
 9614: Partial match: Xaaa
 9615:     Xaaaa\P 
 9616: Partial match: Xaaaa
 9617:     
 9618: /X[abc]{2,4}?b/
 9619:     X\P
 9620: Partial match: X
 9621:     Xa\P
 9622: Partial match: Xa
 9623:     Xaa\P 
 9624: Partial match: Xaa
 9625:     Xaaa\P
 9626: Partial match: Xaaa
 9627:     Xaaaa\P 
 9628: Partial match: Xaaaa
 9629:     
 9630: /X[abc]{2,4}+b/
 9631:     X\P
 9632: Partial match: X
 9633:     Xa\P
 9634: Partial match: Xa
 9635:     Xaa\P 
 9636: Partial match: Xaa
 9637:     Xaaa\P
 9638: Partial match: Xaaa
 9639:     Xaaaa\P 
 9640: Partial match: Xaaaa
 9641:     
 9642: /X[^a]{2,4}b/
 9643:     X\P
 9644: Partial match: X
 9645:     Xz\P
 9646: Partial match: Xz
 9647:     Xzz\P 
 9648: Partial match: Xzz
 9649:     Xzzz\P
 9650: Partial match: Xzzz
 9651:     Xzzzz\P 
 9652: Partial match: Xzzzz
 9653:     
 9654: /X[^a]{2,4}?b/
 9655:     X\P
 9656: Partial match: X
 9657:     Xz\P
 9658: Partial match: Xz
 9659:     Xzz\P 
 9660: Partial match: Xzz
 9661:     Xzzz\P
 9662: Partial match: Xzzz
 9663:     Xzzzz\P 
 9664: Partial match: Xzzzz
 9665:     
 9666: /X[^a]{2,4}+b/
 9667:     X\P
 9668: Partial match: X
 9669:     Xz\P
 9670: Partial match: Xz
 9671:     Xzz\P 
 9672: Partial match: Xzz
 9673:     Xzzz\P
 9674: Partial match: Xzzz
 9675:     Xzzzz\P 
 9676: Partial match: Xzzzz
 9677:     
 9678: /(Y)X\1{2,4}b/
 9679:     YX\P
 9680: Partial match: YX
 9681:     YXY\P
 9682: Partial match: YXY
 9683:     YXYY\P 
 9684: Partial match: YXYY
 9685:     YXYYY\P
 9686: Partial match: YXYYY
 9687:     YXYYYY\P 
 9688: Partial match: YXYYYY
 9689:     
 9690: /(Y)X\1{2,4}?b/
 9691:     YX\P
 9692: Partial match: YX
 9693:     YXY\P
 9694: Partial match: YXY
 9695:     YXYY\P 
 9696: Partial match: YXYY
 9697:     YXYYY\P
 9698: Partial match: YXYYY
 9699:     YXYYYY\P 
 9700: Partial match: YXYYYY
 9701:     
 9702: /(Y)X\1{2,4}+b/
 9703:     YX\P
 9704: Partial match: YX
 9705:     YXY\P
 9706: Partial match: YXY
 9707:     YXYY\P 
 9708: Partial match: YXYY
 9709:     YXYYY\P
 9710: Partial match: YXYYY
 9711:     YXYYYY\P 
 9712: Partial match: YXYYYY
 9713:     
 9714: /\++\KZ|\d+X|9+Y/
 9715:     ++++123999\P
 9716: Partial match: 123999
 9717:     ++++123999Y\P
 9718:  0: 999Y
 9719:     ++++Z1234\P 
 9720:  0: Z
 9721: 
 9722: /Z(*F)/
 9723:     Z\P
 9724: No match
 9725:     ZA\P 
 9726: No match
 9727:     
 9728: /Z(?!)/
 9729:     Z\P 
 9730: No match
 9731:     ZA\P 
 9732: No match
 9733: 
 9734: /dog(sbody)?/
 9735:     dogs\P
 9736:  0: dog
 9737:     dogs\P\P 
 9738: Partial match: dogs
 9739:     
 9740: /dog(sbody)??/
 9741:     dogs\P
 9742:  0: dog
 9743:     dogs\P\P 
 9744:  0: dog
 9745: 
 9746: /dog|dogsbody/
 9747:     dogs\P
 9748:  0: dog
 9749:     dogs\P\P 
 9750:  0: dog
 9751:  
 9752: /dogsbody|dog/
 9753:     dogs\P
 9754:  0: dog
 9755:     dogs\P\P 
 9756: Partial match: dogs
 9757: 
 9758: /\bthe cat\b/
 9759:     the cat\P
 9760:  0: the cat
 9761:     the cat\P\P
 9762: Partial match: the cat
 9763: 
 9764: /abc/
 9765:    abc\P
 9766:  0: abc
 9767:    abc\P\P
 9768:  0: abc
 9769:    
 9770: /abc\K123/
 9771:     xyzabc123pqr
 9772:  0: 123
 9773:     xyzabc12\P
 9774: Partial match: abc12
 9775:     xyzabc12\P\P
 9776: Partial match: abc12
 9777:     
 9778: /(?<=abc)123/
 9779:     xyzabc123pqr 
 9780:  0: 123
 9781:     xyzabc12\P
 9782: Partial match at offset 6: abc12
 9783:     xyzabc12\P\P
 9784: Partial match at offset 6: abc12
 9785: 
 9786: /\babc\b/
 9787:     +++abc+++
 9788:  0: abc
 9789:     +++ab\P
 9790: Partial match at offset 3: +ab
 9791:     +++ab\P\P  
 9792: Partial match at offset 3: +ab
 9793: 
 9794: /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
 9795: ------------------------------------------------------------------
 9796:         Bra
 9797:         Recurse
 9798:         Recurse
 9799:         Cond
 9800:         Cond def
 9801:         CBra 1
 9802:         <
 9803:         [^m]
 9804:         [^>]
 9805:         >
 9806:         [^<]
 9807:         Ket
 9808:         CBra 2
 9809:         \w*+
 9810:         Ket
 9811:         Ket
 9812:         Ket
 9813:         End
 9814: ------------------------------------------------------------------
 9815: 
 9816: /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
 9817: ------------------------------------------------------------------
 9818:         Bra
 9819:         Recurse
 9820:         Recurse
 9821:         Cond
 9822:         Cond def
 9823:         CBra 1
 9824:         <
 9825:         [\x00-/:-\xff] (neg)
 9826:         [^>]
 9827:         >
 9828:         [^<]
 9829:         Ket
 9830:         CBra 2
 9831:         \w*+
 9832:         Ket
 9833:         Ket
 9834:         Ket
 9835:         End
 9836: ------------------------------------------------------------------
 9837: 
 9838: /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
 9839: ------------------------------------------------------------------
 9840:         Bra
 9841:         CBra 1
 9842:         ab
 9843:         Ket
 9844:         CBra 2
 9845:         x
 9846:         CBra 3
 9847:         y
 9848:         Ket
 9849:         z
 9850:         CBra 4
 9851:         cd
 9852:         Close 4
 9853:         Close 2
 9854:         *ACCEPT
 9855:         Ket
 9856:         Ket
 9857:         pq
 9858:         Ket
 9859:         End
 9860: ------------------------------------------------------------------
 9861: 
 9862: /abc\K/+
 9863:     abcdef
 9864:  0: 
 9865:  0+ def
 9866:     abcdef\N\N
 9867:  0: 
 9868:  0+ def
 9869:     xyzabcdef\N\N
 9870:  0: 
 9871:  0+ def
 9872:     ** Failers
 9873: No match
 9874:     abcdef\N 
 9875: No match
 9876:     xyzabcdef\N
 9877: No match
 9878:     
 9879: /^(?:(?=abc)|abc\K)/+
 9880:     abcdef
 9881:  0: 
 9882:  0+ abcdef
 9883:     abcdef\N\N 
 9884:  0: 
 9885:  0+ def
 9886:     ** Failers 
 9887: No match
 9888:     abcdef\N 
 9889: No match
 9890: 
 9891: /a?b?/+
 9892:     xyz
 9893:  0: 
 9894:  0+ xyz
 9895:     xyzabc
 9896:  0: 
 9897:  0+ xyzabc
 9898:     xyzabc\N
 9899:  0: ab
 9900:  0+ c
 9901:     xyzabc\N\N
 9902:  0: 
 9903:  0+ yzabc
 9904:     xyz\N\N    
 9905:  0: 
 9906:  0+ yz
 9907:     ** Failers 
 9908:  0: 
 9909:  0+ ** Failers
 9910:     xyz\N 
 9911: No match
 9912: 
 9913: /^a?b?/+
 9914:     xyz
 9915:  0: 
 9916:  0+ xyz
 9917:     xyzabc
 9918:  0: 
 9919:  0+ xyzabc
 9920:     ** Failers 
 9921:  0: 
 9922:  0+ ** Failers
 9923:     xyzabc\N
 9924: No match
 9925:     xyzabc\N\N
 9926: No match
 9927:     xyz\N\N    
 9928: No match
 9929:     xyz\N 
 9930: No match
 9931:     
 9932: /^(?<name>a|b\g<name>c)/
 9933:     aaaa
 9934:  0: a
 9935:  1: a
 9936:     bacxxx
 9937:  0: bac
 9938:  1: bac
 9939:     bbaccxxx 
 9940:  0: bbacc
 9941:  1: bbacc
 9942:     bbbacccxx
 9943:  0: bbbaccc
 9944:  1: bbbaccc
 9945: 
 9946: /^(?<name>a|b\g'name'c)/
 9947:     aaaa
 9948:  0: a
 9949:  1: a
 9950:     bacxxx
 9951:  0: bac
 9952:  1: bac
 9953:     bbaccxxx 
 9954:  0: bbacc
 9955:  1: bbacc
 9956:     bbbacccxx
 9957:  0: bbbaccc
 9958:  1: bbbaccc
 9959: 
 9960: /^(a|b\g<1>c)/
 9961:     aaaa
 9962:  0: a
 9963:  1: a
 9964:     bacxxx
 9965:  0: bac
 9966:  1: bac
 9967:     bbaccxxx 
 9968:  0: bbacc
 9969:  1: bbacc
 9970:     bbbacccxx
 9971:  0: bbbaccc
 9972:  1: bbbaccc
 9973: 
 9974: /^(a|b\g'1'c)/
 9975:     aaaa
 9976:  0: a
 9977:  1: a
 9978:     bacxxx
 9979:  0: bac
 9980:  1: bac
 9981:     bbaccxxx 
 9982:  0: bbacc
 9983:  1: bbacc
 9984:     bbbacccxx
 9985:  0: bbbaccc
 9986:  1: bbbaccc
 9987: 
 9988: /^(a|b\g'-1'c)/
 9989:     aaaa
 9990:  0: a
 9991:  1: a
 9992:     bacxxx
 9993:  0: bac
 9994:  1: bac
 9995:     bbaccxxx 
 9996:  0: bbacc
 9997:  1: bbacc
 9998:     bbbacccxx
 9999:  0: bbbaccc
10000:  1: bbbaccc
10001: 
10002: /(^(a|b\g<-1>c))/
10003:     aaaa
10004:  0: a
10005:  1: a
10006:  2: a
10007:     bacxxx
10008:  0: bac
10009:  1: bac
10010:  2: bac
10011:     bbaccxxx 
10012:  0: bbacc
10013:  1: bbacc
10014:  2: bbacc
10015:     bbbacccxx
10016:  0: bbbaccc
10017:  1: bbbaccc
10018:  2: bbbaccc
10019: 
10020: /(?-i:\g<name>)(?i:(?<name>a))/
10021:     XaaX
10022:  0: aa
10023:  1: a
10024:     XAAX 
10025:  0: AA
10026:  1: A
10027: 
10028: /(?i:\g<name>)(?-i:(?<name>a))/
10029:     XaaX
10030:  0: aa
10031:  1: a
10032:     ** Failers 
10033: No match
10034:     XAAX 
10035: No match
10036: 
10037: /(?-i:\g<+1>)(?i:(a))/
10038:     XaaX
10039:  0: aa
10040:  1: a
10041:     XAAX 
10042:  0: AA
10043:  1: A
10044: 
10045: /(?=(?<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>\})\}))\{/
10046: 
10047: /(?<n>a|b|c)\g<n>*/
10048:    abc
10049:  0: abc
10050:  1: a
10051:    accccbbb 
10052:  0: accccbbb
10053:  1: a
10054: 
10055: /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
10056:     XYabcdY
10057:  0: XYabcdY
10058:  1: a
10059:  2: b
10060:  3: <unset>
10061:  4: <unset>
10062:  5: c
10063:  6: d
10064:  7: Y
10065: 
10066: /(?<=b(?1)|zzz)(a)/
10067:     xbaax
10068:  0: a
10069:  1: a
10070:     xzzzax 
10071:  0: a
10072:  1: a
10073: 
10074: /(a)(?<=b\1)/
10075: Failed: lookbehind assertion is not fixed length at offset 10
10076: 
10077: /(a)(?<=b+(?1))/
10078: Failed: lookbehind assertion is not fixed length at offset 13
10079: 
10080: /(a+)(?<=b(?1))/
10081: Failed: lookbehind assertion is not fixed length at offset 14
10082: 
10083: /(a(?<=b(?1)))/
10084: Failed: lookbehind assertion is not fixed length at offset 13
10085: 
10086: /(?<=b(?1))xyz/
10087: Failed: reference to non-existent subpattern at offset 8
10088: 
10089: /(?<=b(?1))xyz(b+)pqrstuvew/
10090: Failed: lookbehind assertion is not fixed length at offset 26
10091: 
10092: /(a|bc)\1/SI
10093: Capturing subpattern count = 1
10094: Max back reference = 1
10095: No options
10096: No first char
10097: No need char
10098: Subject length lower bound = 2
10099: Starting byte set: a b 
10100: 
10101: /(a|bc)\1{2,3}/SI
10102: Capturing subpattern count = 1
10103: Max back reference = 1
10104: No options
10105: No first char
10106: No need char
10107: Subject length lower bound = 3
10108: Starting byte set: a b 
10109: 
10110: /(a|bc)(?1)/SI
10111: Capturing subpattern count = 1
10112: No options
10113: No first char
10114: No need char
10115: Subject length lower bound = 2
10116: Starting byte set: a b 
10117: 
10118: /(a|b\1)(a|b\1)/SI
10119: Capturing subpattern count = 2
10120: Max back reference = 1
10121: No options
10122: No first char
10123: No need char
10124: Subject length lower bound = 2
10125: Starting byte set: a b 
10126: 
10127: /(a|b\1){2}/SI
10128: Capturing subpattern count = 1
10129: Max back reference = 1
10130: No options
10131: No first char
10132: No need char
10133: Subject length lower bound = 2
10134: Starting byte set: a b 
10135: 
10136: /(a|bbbb\1)(a|bbbb\1)/SI
10137: Capturing subpattern count = 2
10138: Max back reference = 1
10139: No options
10140: No first char
10141: No need char
10142: Subject length lower bound = 2
10143: Starting byte set: a b 
10144: 
10145: /(a|bbbb\1){2}/SI
10146: Capturing subpattern count = 1
10147: Max back reference = 1
10148: No options
10149: No first char
10150: No need char
10151: Subject length lower bound = 2
10152: Starting byte set: a b 
10153: 
10154: /^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
10155: Capturing subpattern count = 1
10156: Options: anchored
10157: No first char
10158: Need char = ':'
10159: Subject length lower bound = 22
10160: No set of starting bytes
10161: 
10162: /<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
10163: Capturing subpattern count = 11
10164: Options: caseless dotall
10165: First char = '<'
10166: Need char = '>'
10167: Subject length lower bound = 47
10168: No set of starting bytes
10169: 
10170: "(?>.*/)foo"SI
10171: Capturing subpattern count = 0
10172: No options
10173: No first char
10174: Need char = 'o'
10175: Subject length lower bound = 4
10176: No set of starting bytes
10177: 
10178: /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10179: Capturing subpattern count = 0
10180: Options: extended
10181: No first char
10182: Need char = '-'
10183: Subject length lower bound = 8
10184: No set of starting bytes
10185: 
10186: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10187: Capturing subpattern count = 1
10188: Options: caseless
10189: No first char
10190: No need char
10191: Subject length lower bound = 1
10192: Starting byte set: A B C a b c 
10193: 
10194: /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10195: Capturing subpattern count = 0
10196: No options
10197: No first char
10198: Need char = 'b'
10199: Subject length lower bound = 41
10200: Starting byte set: c d 
10201: 
10202: /<a[\s]+href[\s]*=[\s]*          # find <a href=
10203:  ([\"\'])?                       # find single or double quote
10204:  (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10205:                                  # quote, otherwise match up to next space
10206: /isxSI
10207: Capturing subpattern count = 3
10208: Max back reference = 1
10209: Options: caseless extended dotall
10210: First char = '<'
10211: Need char = '='
10212: Subject length lower bound = 9
10213: No set of starting bytes
10214: 
10215: /^(?!:)                       # colon disallowed at start
10216:   (?:                         # start of item
10217:     (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10218:     (?(1)0 | () ) )           # if null previously matched, fail; else null
10219:     :                         # followed by colon
10220:   ){1,7}                      # end item; 1-7 of them required               
10221:   [0-9a-f]{1,4} $             # final hex number at end of string
10222:   (?(1)|.)                    # check that there was an empty component
10223:   /xiIS
10224: Capturing subpattern count = 1
10225: Options: anchored caseless extended
10226: No first char
10227: Need char = ':'
10228: Subject length lower bound = 2
10229: No set of starting bytes
10230: 
10231: /(?|(?<a>A)|(?<a>B))/I
10232: Capturing subpattern count = 1
10233: Named capturing subpatterns:
10234:   a   1
10235: No options
10236: No first char
10237: No need char
10238:     AB\Ca
10239:  0: A
10240:  1: A
10241:   C A (1) a
10242:     BA\Ca
10243:  0: B
10244:  1: B
10245:   C B (1) a
10246: 
10247: /(?|(?<a>A)|(?<b>B))/ 
10248: Failed: different names for subpatterns of the same number are not allowed at offset 15
10249: 
10250: /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10251:     b(?<quote> (?<apostrophe>')|(?<realquote>")) ) 
10252:     (?('quote')[a-z]+|[0-9]+)/JIx
10253: Capturing subpattern count = 6
10254: Named capturing subpatterns:
10255:   apostrophe   2
10256:   apostrophe   5
10257:   quote        1
10258:   quote        4
10259:   realquote    3
10260:   realquote    6
10261: Options: extended dupnames
10262: No first char
10263: No need char
10264:     a"aaaaa
10265:  0: a"aaaaa
10266:  1: "
10267:  2: <unset>
10268:  3: "
10269:     b"aaaaa 
10270:  0: b"aaaaa
10271:  1: <unset>
10272:  2: <unset>
10273:  3: <unset>
10274:  4: "
10275:  5: <unset>
10276:  6: "
10277:     ** Failers 
10278: No match
10279:     b"11111
10280: No match
10281:     a"11111 
10282: No match
10283:     
10284: /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10285: ------------------------------------------------------------------
10286:         Bra
10287:         ^
10288:         Bra
10289:         CBra 1
10290:         a
10291:         Ket
10292:         CBra 2
10293:         b
10294:         Ket
10295:         CBra 3
10296:         c
10297:         Ket
10298:         CBra 4
10299:         d
10300:         Ket
10301:         Alt
10302:         CBra 1
10303:         e
10304:         Ket
10305:         Ket
10306:         Cond
10307:         Cond ref <D>2
10308:         X
10309:         Alt
10310:         Y
10311:         Ket
10312:         Ket
10313:         End
10314: ------------------------------------------------------------------
10315: Capturing subpattern count = 4
10316: Named capturing subpatterns:
10317:   D   4
10318:   D   1
10319: Options: anchored extended dupnames
10320: No first char
10321: No need char
10322:     abcdX
10323:  0: abcdX
10324:  1: a
10325:  2: b
10326:  3: c
10327:  4: d
10328:     eX
10329:  0: eX
10330:  1: e
10331:     ** Failers
10332: No match
10333:     abcdY
10334: No match
10335:     ey     
10336: No match
10337:     
10338: /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10339: ------------------------------------------------------------------
10340:         Bra
10341:         CBra 1
10342:         a
10343:         Ket
10344:         CBra 2
10345:         b
10346:         Ket
10347:         CBra 3
10348:         c
10349:         Ket
10350:         CBra 4
10351:         d
10352:         Cond
10353:         Cond recurse <A>2
10354:         $
10355:         Alt
10356:         Recurse
10357:         Ket
10358:         Ket
10359:         Ket
10360:         End
10361: ------------------------------------------------------------------
10362: Capturing subpattern count = 4
10363: Named capturing subpatterns:
10364:   A   1
10365:   A   4
10366: Options: extended dupnames
10367: First char = 'a'
10368: Need char = 'd'
10369:     abcdd
10370:  0: abcdd
10371:  1: a
10372:  2: b
10373:  3: c
10374:  4: dd
10375:     ** Failers
10376: No match
10377:     abcdde  
10378: No match
10379: 
10380: /abcd*/
10381:     xxxxabcd\P
10382:  0: abcd
10383:     xxxxabcd\P\P
10384: Partial match: abcd
10385: 
10386: /abcd*/i
10387:     xxxxabcd\P
10388:  0: abcd
10389:     xxxxabcd\P\P
10390: Partial match: abcd
10391:     XXXXABCD\P
10392:  0: ABCD
10393:     XXXXABCD\P\P
10394: Partial match: ABCD
10395: 
10396: /abc\d*/
10397:     xxxxabc1\P
10398:  0: abc1
10399:     xxxxabc1\P\P
10400: Partial match: abc1
10401: 
10402: /(a)bc\1*/
10403:     xxxxabca\P
10404:  0: abca
10405:  1: a
10406:     xxxxabca\P\P
10407: Partial match: abca
10408: 
10409: /abc[de]*/
10410:     xxxxabcde\P
10411:  0: abcde
10412:     xxxxabcde\P\P
10413: Partial match: abcde
10414: 
10415: /-- This is not in the Perl-compatible test because Perl seems currently to be
10416:     broken and not behaving as specified in that it *does* bumpalong after
10417:     hitting (*COMMIT). --/
10418: 
10419: /(?1)(A(*COMMIT)|B)D/
10420:     ABD
10421:  0: ABD
10422:  1: B
10423:     XABD
10424:  0: ABD
10425:  1: B
10426:     BAD
10427:  0: BAD
10428:  1: A
10429:     ABXABD  
10430:  0: ABD
10431:  1: B
10432:     ** Failers 
10433: No match
10434:     ABX 
10435: No match
10436:     BAXBAD  
10437: No match
10438: 
10439: /(\3)(\1)(a)/<JS>
10440:     cat
10441:  0: a
10442:  1: 
10443:  2: 
10444:  3: a
10445: 
10446: /(\3)(\1)(a)/SI<JS>
10447: Capturing subpattern count = 3
10448: Max back reference = 3
10449: Options:
10450: No first char
10451: Need char = 'a'
10452: Subject length lower bound = 1
10453: No set of starting bytes
10454:     cat
10455:  0: a
10456:  1: 
10457:  2: 
10458:  3: a
10459: 
10460: /(\3)(\1)(a)/SI
10461: Capturing subpattern count = 3
10462: Max back reference = 3
10463: No options
10464: No first char
10465: Need char = 'a'
10466: Subject length lower bound = 3
10467: No set of starting bytes
10468:     cat
10469: No match
10470: 
10471: /i(?(DEFINE)(?<s>a))/SI
10472: Capturing subpattern count = 1
10473: Named capturing subpatterns:
10474:   s   1
10475: No options
10476: First char = 'i'
10477: No need char
10478: Subject length lower bound = 1
10479: No set of starting bytes
10480:     i
10481:  0: i
10482:     
10483: /()i(?(1)a)/SI 
10484: Capturing subpattern count = 1
10485: No options
10486: No first char
10487: Need char = 'i'
10488: Subject length lower bound = 1
10489: Starting byte set: i 
10490:     ia
10491:  0: ia
10492:  1: 
10493: 
10494: /(?i)a(?-i)b|c/BZ
10495: ------------------------------------------------------------------
10496:         Bra
10497:      /i a
10498:         b
10499:         Alt
10500:         c
10501:         Ket
10502:         End
10503: ------------------------------------------------------------------
10504:     XabX
10505:  0: ab
10506:     XAbX
10507:  0: Ab
10508:     CcC 
10509:  0: c
10510:     ** Failers
10511: No match
10512:     XABX   
10513: No match
10514: 
10515: /(?i)a(?s)b|c/BZ
10516: ------------------------------------------------------------------
10517:         Bra
10518:      /i ab
10519:         Alt
10520:      /i c
10521:         Ket
10522:         End
10523: ------------------------------------------------------------------
10524: 
10525: /(?i)a(?s-i)b|c/BZ
10526: ------------------------------------------------------------------
10527:         Bra
10528:      /i a
10529:         b
10530:         Alt
10531:         c
10532:         Ket
10533:         End
10534: ------------------------------------------------------------------
10535: 
10536: /^(ab(c\1)d|x){2}$/BZ
10537: ------------------------------------------------------------------
10538:         Bra
10539:         ^
10540:         Once
10541:         CBra 1
10542:         ab
10543:         CBra 2
10544:         c
10545:         \1
10546:         Ket
10547:         d
10548:         Alt
10549:         x
10550:         Ket
10551:         Ket
10552:         Once
10553:         CBra 1
10554:         ab
10555:         CBra 2
10556:         c
10557:         \1
10558:         Ket
10559:         d
10560:         Alt
10561:         x
10562:         Ket
10563:         Ket
10564:         $
10565:         Ket
10566:         End
10567: ------------------------------------------------------------------
10568:     xabcxd
10569:  0: xabcxd
10570:  1: abcxd
10571:  2: cx
10572:     
10573: /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10574: ------------------------------------------------------------------
10575:         Bra
10576:         ^
10577:         Braposzero
10578:         SBraPos
10579:         Recurse
10580:         KetRpos
10581:         Cond
10582:         Cond def
10583:         CBra 1
10584:         Any
10585:         Ket
10586:         Ket
10587:         $
10588:         Ket
10589:         End
10590: ------------------------------------------------------------------
10591: 
10592: /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10593: ------------------------------------------------------------------
10594:         Bra
10595:         ^
10596:         Brazero
10597:         Once
10598:         Recurse
10599:         KetRmax
10600:         Cond
10601:         Cond def
10602:         CBra 1
10603:         Any
10604:         Ket
10605:         Ket
10606:         $
10607:         Ket
10608:         End
10609: ------------------------------------------------------------------
10610: 
10611: / -- This one is here because Perl gives the match as "b" rather than "ab". I
10612:      believe this to be a Perl bug. --/  
10613:       
10614: /(?>a\Kb)z|(ab)/
10615:     ab 
10616:  0: ab
10617:  1: ab
10618: 
10619: /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10620: Failed: recursive call could loop indefinitely at offset 31
10621: 
10622: /abc(*MARK:)pqr/
10623: Failed: (*MARK) must have an argument at offset 10
10624: 
10625: /abc(*:)pqr/
10626: Failed: (*MARK) must have an argument at offset 6
10627: 
10628: /abc(*FAIL:123)xyz/
10629: Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10630: 
10631: /--- This should, and does, fail. In Perl, it does not, which I think is a 
10632:      bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10633: 
10634: /A(*COMMIT)B/+K
10635:     ACABX
10636: No match
10637: 
10638: /--- These should be different, but in Perl they are not, which I think
10639:      is a bug in Perl. ---/
10640: 
10641: /A(*THEN)B|A(*THEN)C/K
10642:     AC
10643:  0: AC
10644: 
10645: /A(*PRUNE)B|A(*PRUNE)C/K
10646:     AC
10647: No match
10648:     
10649: /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10650: though PCRE does. ---/
10651: 
10652: /^A(*:A)B|^X(*:A)Y/K
10653:     ** Failers
10654: No match
10655:     XAQQ
10656: No match, mark = A
10657:     
10658: /--- COMMIT at the start of a pattern should be the same as an anchor. Perl 
10659: optimizations defeat this. So does the PCRE optimization unless we disable it 
10660: with \Y. ---/
10661: 
10662: /(*COMMIT)ABC/
10663:     ABCDEFG
10664:  0: ABC
10665:     ** Failers
10666: No match
10667:     DEFGABC\Y  
10668: No match
10669:     
10670: /^(ab (c+(*THEN)cd) | xyz)/x
10671:     abcccd  
10672: No match
10673: 
10674: /^(ab (c+(*PRUNE)cd) | xyz)/x
10675:     abcccd  
10676: No match
10677: 
10678: /^(ab (c+(*FAIL)cd) | xyz)/x
10679:     abcccd  
10680: No match
10681:     
10682: /--- Perl gets some of these wrong ---/ 
10683: 
10684: /(?>.(*ACCEPT))*?5/
10685:     abcde
10686:  0: a
10687: 
10688: /(.(*ACCEPT))*?5/
10689:     abcde
10690:  0: a
10691:  1: a
10692: 
10693: /(.(*ACCEPT))5/
10694:     abcde
10695:  0: a
10696:  1: a
10697: 
10698: /(.(*ACCEPT))*5/
10699:     abcde
10700:  0: a
10701:  1: a
10702: 
10703: /A\NB./BZ
10704: ------------------------------------------------------------------
10705:         Bra
10706:         A
10707:         Any
10708:         B
10709:         Any
10710:         Ket
10711:         End
10712: ------------------------------------------------------------------
10713:     ACBD
10714:  0: ACBD
10715:     *** Failers
10716: No match
10717:     A\nB
10718: No match
10719:     ACB\n   
10720: No match
10721: 
10722: /A\NB./sBZ
10723: ------------------------------------------------------------------
10724:         Bra
10725:         A
10726:         Any
10727:         B
10728:         AllAny
10729:         Ket
10730:         End
10731: ------------------------------------------------------------------
10732:     ACBD
10733:  0: ACBD
10734:     ACB\n 
10735:  0: ACB\x0a
10736:     *** Failers
10737: No match
10738:     A\nB  
10739: No match
10740:   
10741: /A\NB/<crlf>
10742:     A\nB
10743:  0: A\x0aB
10744:     A\rB
10745:  0: A\x0dB
10746:     ** Failers
10747: No match
10748:     A\r\nB    
10749: No match
10750: 
10751: /\R+b/BZ
10752: ------------------------------------------------------------------
10753:         Bra
10754:         \R++
10755:         b
10756:         Ket
10757:         End
10758: ------------------------------------------------------------------
10759: 
10760: /\R+\n/BZ
10761: ------------------------------------------------------------------
10762:         Bra
10763:         \R+
10764:         \x0a
10765:         Ket
10766:         End
10767: ------------------------------------------------------------------
10768: 
10769: /\R+\d/BZ
10770: ------------------------------------------------------------------
10771:         Bra
10772:         \R++
10773:         \d
10774:         Ket
10775:         End
10776: ------------------------------------------------------------------
10777: 
10778: /\d*\R/BZ
10779: ------------------------------------------------------------------
10780:         Bra
10781:         \d*+
10782:         \R
10783:         Ket
10784:         End
10785: ------------------------------------------------------------------
10786: 
10787: /\s*\R/BZ
10788: ------------------------------------------------------------------
10789:         Bra
10790:         \s*
10791:         \R
10792:         Ket
10793:         End
10794: ------------------------------------------------------------------
10795:     \x20\x0a
10796:  0:  \x0a
10797:     \x20\x0d
10798:  0:  \x0d
10799:     \x20\x0d\x0a
10800:  0:  \x0d\x0a
10801: 
10802: /\S*\R/BZ
10803: ------------------------------------------------------------------
10804:         Bra
10805:         \S*+
10806:         \R
10807:         Ket
10808:         End
10809: ------------------------------------------------------------------
10810:     a\x0a
10811:  0: a\x0a
10812: 
10813: /X\h*\R/BZ
10814: ------------------------------------------------------------------
10815:         Bra
10816:         X
10817:         \h*+
10818:         \R
10819:         Ket
10820:         End
10821: ------------------------------------------------------------------
10822:     X\x20\x0a
10823:  0: X \x0a
10824: 
10825: /X\H*\R/BZ
10826: ------------------------------------------------------------------
10827:         Bra
10828:         X
10829:         \H*
10830:         \R
10831:         Ket
10832:         End
10833: ------------------------------------------------------------------
10834:     X\x0d\x0a
10835:  0: X\x0d\x0a
10836: 
10837: /X\H+\R/BZ
10838: ------------------------------------------------------------------
10839:         Bra
10840:         X
10841:         \H+
10842:         \R
10843:         Ket
10844:         End
10845: ------------------------------------------------------------------
10846:     X\x0d\x0a
10847:  0: X\x0d\x0a
10848: 
10849: /X\H++\R/BZ
10850: ------------------------------------------------------------------
10851:         Bra
10852:         X
10853:         \H++
10854:         \R
10855:         Ket
10856:         End
10857: ------------------------------------------------------------------
10858:     X\x0d\x0a
10859: No match
10860: 
10861: /(?<=abc)def/
10862:     abc\P\P
10863: Partial match at offset 3: abc
10864: 
10865: /abc$/
10866:     abc
10867:  0: abc
10868:     abc\P
10869:  0: abc
10870:     abc\P\P
10871: Partial match: abc
10872: 
10873: /abc$/m
10874:     abc
10875:  0: abc
10876:     abc\n
10877:  0: abc
10878:     abc\P\P
10879: Partial match: abc
10880:     abc\n\P\P 
10881:  0: abc
10882:     abc\P
10883:  0: abc
10884:     abc\n\P
10885:  0: abc
10886: 
10887: /abc\z/
10888:     abc
10889:  0: abc
10890:     abc\P
10891:  0: abc
10892:     abc\P\P
10893: Partial match: abc
10894: 
10895: /abc\Z/
10896:     abc
10897:  0: abc
10898:     abc\P
10899:  0: abc
10900:     abc\P\P
10901: Partial match: abc
10902: 
10903: /abc\b/
10904:     abc
10905:  0: abc
10906:     abc\P
10907:  0: abc
10908:     abc\P\P
10909: Partial match: abc
10910: 
10911: /abc\B/
10912:     abc
10913: No match
10914:     abc\P
10915: Partial match: abc
10916:     abc\P\P
10917: Partial match: abc
10918: 
10919: /.+/
10920:     abc\>0
10921:  0: abc
10922:     abc\>1
10923:  0: bc
10924:     abc\>2
10925:  0: c
10926:     abc\>3
10927: No match
10928:     abc\>4
10929: Error -24 (bad offset value)
10930:     abc\>-4 
10931: Error -24 (bad offset value)
10932: 
10933: /^\cģ/
10934: Failed: \c must be followed by an ASCII character at offset 3
10935: 
10936: /(?P<abn>(?P=abn)xxx)/BZ
10937: ------------------------------------------------------------------
10938:         Bra
10939:         Once
10940:         CBra 1
10941:         \1
10942:         xxx
10943:         Ket
10944:         Ket
10945:         Ket
10946:         End
10947: ------------------------------------------------------------------
10948: 
10949: /(a\1z)/BZ
10950: ------------------------------------------------------------------
10951:         Bra
10952:         Once
10953:         CBra 1
10954:         a
10955:         \1
10956:         z
10957:         Ket
10958:         Ket
10959:         Ket
10960:         End
10961: ------------------------------------------------------------------
10962: 
10963: /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10964: Failed: syntax error in subpattern name (missing terminator) at offset 29
10965: 
10966: /(?P<abn>(?P=axn)xxx)/BZ
10967: Failed: reference to non-existent subpattern at offset 15
10968: 
10969: /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10970: ------------------------------------------------------------------
10971:         Bra
10972:         CBra 1
10973:         \2
10974:         xxx
10975:         Ket
10976:         CBra 2
10977:         yy
10978:         Ket
10979:         Ket
10980:         End
10981: ------------------------------------------------------------------
10982: 
10983: /-- These tests are here because Perl gets the first one wrong. --/
10984: 
10985: /(\R*)(.)/s
10986:     \r\n
10987:  0: \x0d
10988:  1: 
10989:  2: \x0d
10990:     \r\r\n\n\r 
10991:  0: \x0d\x0d\x0a\x0a\x0d
10992:  1: \x0d\x0d\x0a\x0a
10993:  2: \x0d
10994:     \r\r\n\n\r\n 
10995:  0: \x0d\x0d\x0a\x0a\x0d
10996:  1: \x0d\x0d\x0a\x0a
10997:  2: \x0d
10998: 
10999: /(\R)*(.)/s
11000:     \r\n
11001:  0: \x0d
11002:  1: <unset>
11003:  2: \x0d
11004:     \r\r\n\n\r 
11005:  0: \x0d\x0d\x0a\x0a\x0d
11006:  1: \x0a
11007:  2: \x0d
11008:     \r\r\n\n\r\n 
11009:  0: \x0d\x0d\x0a\x0a\x0d
11010:  1: \x0a
11011:  2: \x0d
11012: 
11013: /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11014:     \r\n
11015:  0: \x0d
11016:  1: 
11017:  2: \x0d
11018:     \r\r\n\n\r 
11019:  0: \x0d\x0d\x0a\x0a\x0d
11020:  1: \x0d\x0d\x0a\x0a
11021:  2: \x0d
11022:     \r\r\n\n\r\n 
11023:  0: \x0d\x0d\x0a\x0a\x0d
11024:  1: \x0d\x0d\x0a\x0a
11025:  2: \x0d
11026: 
11027: /-- --/
11028: 
11029: /^abc$/BZ
11030: ------------------------------------------------------------------
11031:         Bra
11032:         ^
11033:         abc
11034:         $
11035:         Ket
11036:         End
11037: ------------------------------------------------------------------
11038: 
11039: /^abc$/BZm
11040: ------------------------------------------------------------------
11041:         Bra
11042:      /m ^
11043:         abc
11044:      /m $
11045:         Ket
11046:         End
11047: ------------------------------------------------------------------
11048: 
11049: /^(a)*+(\w)/S
11050:     aaaaX
11051:  0: aaaaX
11052:  1: a
11053:  2: X
11054:     ** Failers 
11055: No match
11056:     aaaa
11057: No match
11058: 
11059: /^(?:a)*+(\w)/S
11060:     aaaaX
11061:  0: aaaaX
11062:  1: X
11063:     ** Failers 
11064: No match
11065:     aaaa
11066: No match
11067: 
11068: /(a)++1234/SDZ
11069: ------------------------------------------------------------------
11070:         Bra
11071:         CBraPos 1
11072:         a
11073:         KetRpos
11074:         1234
11075:         Ket
11076:         End
11077: ------------------------------------------------------------------
11078: Capturing subpattern count = 1
11079: No options
11080: First char = 'a'
11081: Need char = '4'
11082: Subject length lower bound = 5
11083: No set of starting bytes
11084: 
11085: /([abc])++1234/SI
11086: Capturing subpattern count = 1
11087: No options
11088: No first char
11089: Need char = '4'
11090: Subject length lower bound = 5
11091: Starting byte set: a b c 
11092: 
11093: /(?<=(abc)+)X/
11094: Failed: lookbehind assertion is not fixed length at offset 10
11095: 
11096: /(^ab)/I
11097: Capturing subpattern count = 1
11098: Options: anchored
11099: No first char
11100: No need char
11101: 
11102: /(^ab)++/I
11103: Capturing subpattern count = 1
11104: Options: anchored
11105: No first char
11106: No need char
11107: 
11108: /(^ab|^)+/I
11109: Capturing subpattern count = 1
11110: May match empty string
11111: Options: anchored
11112: No first char
11113: No need char
11114: 
11115: /(^ab|^)++/I
11116: Capturing subpattern count = 1
11117: May match empty string
11118: Options: anchored
11119: No first char
11120: No need char
11121: 
11122: /(?:^ab)/I
11123: Capturing subpattern count = 0
11124: Options: anchored
11125: No first char
11126: No need char
11127: 
11128: /(?:^ab)++/I
11129: Capturing subpattern count = 0
11130: Options: anchored
11131: No first char
11132: No need char
11133: 
11134: /(?:^ab|^)+/I
11135: Capturing subpattern count = 0
11136: May match empty string
11137: Options: anchored
11138: No first char
11139: No need char
11140: 
11141: /(?:^ab|^)++/I
11142: Capturing subpattern count = 0
11143: May match empty string
11144: Options: anchored
11145: No first char
11146: No need char
11147: 
11148: /(.*ab)/I
11149: Capturing subpattern count = 1
11150: No options
11151: First char at start or follows newline
11152: Need char = 'b'
11153: 
11154: /(.*ab)++/I
11155: Capturing subpattern count = 1
11156: No options
11157: First char at start or follows newline
11158: Need char = 'b'
11159: 
11160: /(.*ab|.*)+/I
11161: Capturing subpattern count = 1
11162: May match empty string
11163: No options
11164: First char at start or follows newline
11165: No need char
11166: 
11167: /(.*ab|.*)++/I
11168: Capturing subpattern count = 1
11169: May match empty string
11170: No options
11171: First char at start or follows newline
11172: No need char
11173: 
11174: /(?:.*ab)/I
11175: Capturing subpattern count = 0
11176: No options
11177: First char at start or follows newline
11178: Need char = 'b'
11179: 
11180: /(?:.*ab)++/I
11181: Capturing subpattern count = 0
11182: No options
11183: First char at start or follows newline
11184: Need char = 'b'
11185: 
11186: /(?:.*ab|.*)+/I
11187: Capturing subpattern count = 0
11188: May match empty string
11189: No options
11190: First char at start or follows newline
11191: No need char
11192: 
11193: /(?:.*ab|.*)++/I
11194: Capturing subpattern count = 0
11195: May match empty string
11196: No options
11197: First char at start or follows newline
11198: No need char
11199: 
11200: /(?=a)[bcd]/I
11201: Capturing subpattern count = 0
11202: No options
11203: First char = 'a'
11204: No need char
11205: 
11206: /((?=a))[bcd]/I
11207: Capturing subpattern count = 1
11208: No options
11209: First char = 'a'
11210: No need char
11211: 
11212: /((?=a))+[bcd]/I
11213: Capturing subpattern count = 1
11214: No options
11215: First char = 'a'
11216: No need char
11217: 
11218: /((?=a))++[bcd]/I
11219: Capturing subpattern count = 1
11220: No options
11221: First char = 'a'
11222: No need char
11223: 
11224: /(?=a+)[bcd]/iI
11225: Capturing subpattern count = 0
11226: Options: caseless
11227: First char = 'a' (caseless)
11228: No need char
11229: 
11230: /(?=a+?)[bcd]/iI
11231: Capturing subpattern count = 0
11232: Options: caseless
11233: First char = 'a' (caseless)
11234: No need char
11235: 
11236: /(?=a++)[bcd]/iI
11237: Capturing subpattern count = 0
11238: Options: caseless
11239: First char = 'a' (caseless)
11240: No need char
11241: 
11242: /(?=a{3})[bcd]/iI
11243: Capturing subpattern count = 0
11244: Options: caseless
11245: First char = 'a' (caseless)
11246: Need char = 'a' (caseless)
11247: 
11248: /(abc)\1+/S
11249: 
11250: /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11251: 
11252: /(?1)(?:(b(*ACCEPT))){0}/
11253:     b
11254:  0: b
11255: 
11256: /(?1)(?:(b(*ACCEPT))){0}c/
11257:     bc
11258:  0: bc
11259:     ** Failers 
11260: No match
11261:     b 
11262: No match
11263: 
11264: /(?1)(?:((*ACCEPT))){0}c/
11265:     c
11266:  0: c
11267:     c\N 
11268:  0: c
11269: 
11270: /^.*?(?(?=a)a|b(*THEN)c)/
11271:     ba
11272: No match
11273: 
11274: /^.*?(?(?=a)a|bc)/
11275:     ba
11276:  0: ba
11277: 
11278: /^.*?(?(?=a)a(*THEN)b|c)/
11279:     ac
11280: No match
11281: 
11282: /^.*?(?(?=a)a(*THEN)b)c/
11283:     ac
11284: No match
11285: 
11286: /^.*?(a(*THEN)b)c/
11287:     aabc
11288: No match
11289:     
11290: /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11291:     aabc
11292:  0: aabc
11293: 
11294: /^.*?(a(*THEN)b|z)c/
11295:     aabc
11296:  0: aabc
11297:  1: ab
11298: 
11299: /^.*?(z|a(*THEN)b)c/
11300:     aabc
11301:  0: aabc
11302:  1: ab
11303: 
11304: /-- --/
11305: 
11306: /-- These studied versions are here because they are not Perl-compatible; the
11307:     studying means the mark is not seen. --/
11308: 
11309: /(*MARK:A)(*SKIP:B)(C|X)/KS
11310:     C
11311:  0: C
11312:  1: C
11313: MK: A
11314:     D
11315: No match, mark = A
11316:      
11317: /(*:A)A+(*SKIP:A)(B|Z)/KS
11318:     AAAC
11319: No match, mark = A
11320: 
11321: /-- --/
11322: 
11323: "(?=a*(*ACCEPT)b)c"
11324:     c
11325:  0: c
11326:     c\N 
11327:  0: c
11328:     
11329: /(?1)c(?(DEFINE)((*ACCEPT)b))/
11330:     c
11331:  0: c
11332:     c\N  
11333:  0: c
11334:     
11335: /(?>(*ACCEPT)b)c/
11336:     c
11337:  0: 
11338:     c\N  
11339: No match
11340: 
11341: /(?:(?>(a)))+a%/++
11342:     %aa%
11343:  0: aa%
11344:  0+ 
11345:  1: a
11346:  1+ a%
11347: 
11348: /(a)b|ac/++SS
11349:     ac\O3
11350:  0: ac
11351:  0+ 
11352:     
11353: /(a)(b)x|abc/++
11354:      abc\O6
11355:  0: abc
11356:  0+ 
11357: 
11358: /(a)bc|(a)(b)\2/
11359:     \O3abc
11360: Matched, but too many substrings
11361:  0: abc
11362:     \O4abc 
11363: Matched, but too many substrings
11364:  0: abc
11365: 
11366: /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11367: Capturing subpattern count = 2
11368: No options
11369: No first char
11370: No need char
11371: Subject length lower bound = 1
11372: No set of starting bytes
11373: 
11374: /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11375: Capturing subpattern count = 2
11376: No options
11377: No first char
11378: No need char
11379: Subject length lower bound = 3
11380: Starting byte set: a b 
11381: 
11382: /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11383: Capturing subpattern count = 2
11384: No options
11385: No first char
11386: No need char
11387: Subject length lower bound = 4
11388: Starting byte set: a b 
11389: 
11390: /(abc)(?1)/SI
11391: Capturing subpattern count = 1
11392: No options
11393: First char = 'a'
11394: Need char = 'c'
11395: Subject length lower bound = 6
11396: No set of starting bytes
11397: 
11398: /^(?>a)++/
11399:     aa\M
11400: Minimum match() limit = 5
11401: Minimum match() recursion limit = 2
11402:  0: aa
11403:     aaaaaaaaa\M 
11404: Minimum match() limit = 12
11405: Minimum match() recursion limit = 2
11406:  0: aaaaaaaaa
11407:     
11408: /(a)(?1)++/
11409:     aa\M
11410: Minimum match() limit = 7
11411: Minimum match() recursion limit = 4
11412:  0: aa
11413:  1: a
11414:     aaaaaaaaa\M  
11415: Minimum match() limit = 21
11416: Minimum match() recursion limit = 4
11417:  0: aaaaaaaaa
11418:  1: a
11419: 
11420: /(?:(foo)|(bar)|(baz))X/SS=
11421:     bazfooX
11422:  0: fooX
11423:  1: foo
11424:  2: <unset>
11425:  3: <unset>
11426:     foobazbarX
11427:  0: barX
11428:  1: <unset>
11429:  2: bar
11430:  3: <unset>
11431:     barfooX
11432:  0: fooX
11433:  1: foo
11434:  2: <unset>
11435:  3: <unset>
11436:     bazX
11437:  0: bazX
11438:  1: <unset>
11439:  2: <unset>
11440:  3: baz
11441:     foobarbazX    
11442:  0: bazX
11443:  1: <unset>
11444:  2: <unset>
11445:  3: baz
11446:     bazfooX\O0
11447: Matched, but too many substrings
11448:     bazfooX\O2
11449: Matched, but too many substrings
11450:  0: fooX
11451:     bazfooX\O4
11452: Matched, but too many substrings
11453:  0: fooX
11454:  1: <unset>
11455:     bazfooX\O6
11456: Matched, but too many substrings
11457:  0: fooX
11458:  1: foo
11459:  2: <unset>
11460:     bazfooX\O8
11461: Matched, but too many substrings
11462:  0: fooX
11463:  1: foo
11464:  2: <unset>
11465:  3: <unset>
11466:     bazfooX\O10
11467:  0: fooX
11468:  1: foo
11469:  2: <unset>
11470:  3: <unset>
11471: 
11472: /(?=abc){3}abc/BZ
11473: ------------------------------------------------------------------
11474:         Bra
11475:         Assert
11476:         abc
11477:         Ket
11478:         abc
11479:         Ket
11480:         End
11481: ------------------------------------------------------------------
11482: 
11483: /(?=abc)+abc/BZ
11484: ------------------------------------------------------------------
11485:         Bra
11486:         Assert
11487:         abc
11488:         Ket
11489:         abc
11490:         Ket
11491:         End
11492: ------------------------------------------------------------------
11493: 
11494: /(?=abc)++abc/BZ
11495: ------------------------------------------------------------------
11496:         Bra
11497:         Assert
11498:         abc
11499:         Ket
11500:         abc
11501:         Ket
11502:         End
11503: ------------------------------------------------------------------
11504: 
11505: /(?=abc){0}xyz/BZ
11506: ------------------------------------------------------------------
11507:         Bra
11508:         Skip zero
11509:         Assert
11510:         abc
11511:         Ket
11512:         xyz
11513:         Ket
11514:         End
11515: ------------------------------------------------------------------
11516: 
11517: /(?=(a))?./BZ
11518: ------------------------------------------------------------------
11519:         Bra
11520:         Brazero
11521:         Assert
11522:         CBra 1
11523:         a
11524:         Ket
11525:         Ket
11526:         Any
11527:         Ket
11528:         End
11529: ------------------------------------------------------------------
11530: 
11531: /(?=(a))??./BZ
11532: ------------------------------------------------------------------
11533:         Bra
11534:         Braminzero
11535:         Assert
11536:         CBra 1
11537:         a
11538:         Ket
11539:         Ket
11540:         Any
11541:         Ket
11542:         End
11543: ------------------------------------------------------------------
11544: 
11545: /^(?=(a)){0}b(?1)/BZ
11546: ------------------------------------------------------------------
11547:         Bra
11548:         ^
11549:         Skip zero
11550:         Assert
11551:         CBra 1
11552:         a
11553:         Ket
11554:         Ket
11555:         b
11556:         Recurse
11557:         Ket
11558:         End
11559: ------------------------------------------------------------------
11560: 
11561: /(?(DEFINE)(a))?b(?1)/BZ
11562: ------------------------------------------------------------------
11563:         Bra
11564:         Cond
11565:         Cond def
11566:         CBra 1
11567:         a
11568:         Ket
11569:         Ket
11570:         b
11571:         Recurse
11572:         Ket
11573:         End
11574: ------------------------------------------------------------------
11575: 
11576: /^(?=(?1))?[az]([abc])d/BZ
11577: ------------------------------------------------------------------
11578:         Bra
11579:         ^
11580:         Brazero
11581:         Assert
11582:         Recurse
11583:         Ket
11584:         [az]
11585:         CBra 1
11586:         [a-c]
11587:         Ket
11588:         d
11589:         Ket
11590:         End
11591: ------------------------------------------------------------------
11592: 
11593: /^(?!a){0}\w+/BZ
11594: ------------------------------------------------------------------
11595:         Bra
11596:         ^
11597:         Skip zero
11598:         Assert not
11599:         a
11600:         Ket
11601:         \w++
11602:         Ket
11603:         End
11604: ------------------------------------------------------------------
11605: 
11606: /(?<=(abc))?xyz/BZ
11607: ------------------------------------------------------------------
11608:         Bra
11609:         Brazero
11610:         AssertB
11611:         Reverse
11612:         CBra 1
11613:         abc
11614:         Ket
11615:         Ket
11616:         xyz
11617:         Ket
11618:         End
11619: ------------------------------------------------------------------
11620: 
11621: /[:a[:abc]b:]/BZ
11622: ------------------------------------------------------------------
11623:         Bra
11624:         [:[a-c]
11625:         b:]
11626:         Ket
11627:         End
11628: ------------------------------------------------------------------
11629: 
11630: /((?2))((?1))/SS
11631:     abc
11632: Error -26 (nested recursion at the same subject position)
11633: 
11634: /((?(R2)a+|(?1)b))/SS
11635:     aaaabcde
11636: Error -26 (nested recursion at the same subject position)
11637: 
11638: /(?(R)a*(?1)|((?R))b)/SS
11639:     aaaabcde
11640: Error -26 (nested recursion at the same subject position)
11641: 
11642: /(a+|(?R)b)/
11643: Failed: recursive call could loop indefinitely at offset 7
11644: 
11645: /^(a(*:A)(d|e(*:B))z|aeq)/C
11646:     adz
11647: --->adz
11648:  +0 ^       ^
11649:  +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11650:  +2 ^       a
11651:  +3 ^^      (*:A)
11652:  +8 ^^      (d|e(*:B))
11653: Latest Mark: A
11654:  +9 ^^      d
11655: +10 ^ ^     |
11656: +18 ^ ^     z
11657: +19 ^  ^    |
11658: +24 ^  ^    
11659:  0: adz
11660:  1: adz
11661:  2: d
11662:     aez
11663: --->aez
11664:  +0 ^       ^
11665:  +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11666:  +2 ^       a
11667:  +3 ^^      (*:A)
11668:  +8 ^^      (d|e(*:B))
11669: Latest Mark: A
11670:  +9 ^^      d
11671: +11 ^^      e
11672: +12 ^ ^     (*:B)
11673: +17 ^ ^     )
11674: Latest Mark: B
11675: +18 ^ ^     z
11676: +19 ^  ^    |
11677: +24 ^  ^    
11678:  0: aez
11679:  1: aez
11680:  2: e
11681:     aeqwerty
11682: --->aeqwerty
11683:  +0 ^            ^
11684:  +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11685:  +2 ^            a
11686:  +3 ^^           (*:A)
11687:  +8 ^^           (d|e(*:B))
11688: Latest Mark: A
11689:  +9 ^^           d
11690: +11 ^^           e
11691: +12 ^ ^          (*:B)
11692: +17 ^ ^          )
11693: Latest Mark: B
11694: +18 ^ ^          z
11695: +20 ^            a
11696: +21 ^^           e
11697: +22 ^ ^          q
11698: +23 ^  ^         )
11699: +24 ^  ^         
11700:  0: aeq
11701:  1: aeq
11702: 
11703: /.(*F)/
11704:     \P\Pabc
11705: No match
11706: 
11707: /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11708: Capturing subpattern count = 0
11709: Max lookbehind = 1
11710: No options
11711: First char = 't'
11712: Need char = 't'
11713: Subject length lower bound = 18
11714: No set of starting bytes
11715: 
11716: /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11717: Capturing subpattern count = 0
11718: Max lookbehind = 1
11719: No options
11720: No first char
11721: No need char
11722: Subject length lower bound = 8
11723: Starting byte set: < o t u 
11724: 
11725: /a(*SKIP)c|b(*ACCEPT)|/+S!I
11726: Capturing subpattern count = 0
11727: May match empty string
11728: No options
11729: No first char
11730: No need char
11731: Subject length lower bound = -1
11732: No set of starting bytes
11733:     a
11734:  0: 
11735:  0+ 
11736: 
11737: /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11738: Capturing subpattern count = 0
11739: No options
11740: No first char
11741: No need char
11742: Subject length lower bound = -1
11743: Starting byte set: a b x 
11744:     ax
11745:  0: x
11746: 
11747: 'a*(*ACCEPT)b'+
11748:     \N\N
11749: No match
11750:     abc\N\N
11751:  0: a
11752:  0+ bc
11753:     bbb\N\N 
11754:  0: 
11755:  0+ bb
11756: 
11757: /(*ACCEPT)a/+I
11758: Capturing subpattern count = 0
11759: No options
11760: No first char
11761: No need char
11762:     bax
11763:  0: 
11764:  0+ bax
11765: 
11766: /z(*ACCEPT)a/+I
11767: Capturing subpattern count = 0
11768: No options
11769: First char = 'z'
11770: No need char
11771:     baxzbx
11772:  0: z
11773:  0+ bx
11774: 
11775: /a(?:.)*?a/ims                                                                  
11776:     \Mabbbbbbbbbbbbbbbbbbbbba
11777: Minimum match() limit = 65
11778: Minimum match() recursion limit = 2
11779:  0: abbbbbbbbbbbbbbbbbbbbba
11780:     
11781: /a(?:.(*THEN))*?a/ims
11782:     \Mabbbbbbbbbbbbbbbbbbbbba
11783: Minimum match() limit = 86
11784: Minimum match() recursion limit = 45
11785:  0: abbbbbbbbbbbbbbbbbbbbba
11786: 
11787: /a(?:.(*THEN:ABC))*?a/ims
11788:     \Mabbbbbbbbbbbbbbbbbbbbba
11789: Minimum match() limit = 86
11790: Minimum match() recursion limit = 45
11791:  0: abbbbbbbbbbbbbbbbbbbbba
11792: 
11793: /^(?>a+)(?>(z+))\w/BZ
11794: ------------------------------------------------------------------
11795:         Bra
11796:         ^
11797:         Once_NC
11798:         a++
11799:         Ket
11800:         Once
11801:         CBra 1
11802:         z++
11803:         Ket
11804:         Ket
11805:         \w
11806:         Ket
11807:         End
11808: ------------------------------------------------------------------
11809:     aaaazzzzb
11810:  0: aaaazzzzb
11811:  1: zzzz
11812:     ** Failers
11813: No match
11814:     aazz  
11815: No match
11816: 
11817: /(.)(\1|a(?2))/
11818:     bab
11819:  0: bab
11820:  1: b
11821:  2: ab
11822:     
11823: /\1|(.)(?R)\1/
11824:     cbbbc
11825:  0: cbbbc
11826:  1: c
11827:     
11828: /(.)((?(1)c|a)|a(?2))/
11829:     baa  
11830: No match
11831: 
11832: /(?P<abn>(?P=abn)xxx)/BZ
11833: ------------------------------------------------------------------
11834:         Bra
11835:         Once
11836:         CBra 1
11837:         \1
11838:         xxx
11839:         Ket
11840:         Ket
11841:         Ket
11842:         End
11843: ------------------------------------------------------------------
11844: 
11845: /(a\1z)/BZ
11846: ------------------------------------------------------------------
11847:         Bra
11848:         Once
11849:         CBra 1
11850:         a
11851:         \1
11852:         z
11853:         Ket
11854:         Ket
11855:         Ket
11856:         End
11857: ------------------------------------------------------------------
11858: 
11859: /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11860:      \Maabbccddee
11861: Minimum match() limit = 7
11862: Minimum match() recursion limit = 2
11863:  0: aabbccddee
11864: 
11865: /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11866:      \Maabbccddee
11867: Minimum match() limit = 17
11868: Minimum match() recursion limit = 16
11869:  0: aabbccddee
11870:  1: aa
11871:  2: bb
11872:  3: cc
11873:  4: dd
11874:  5: ee
11875: 
11876: /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11877:      \Maabbccddee
11878: Minimum match() limit = 13
11879: Minimum match() recursion limit = 10
11880:  0: aabbccddee
11881:  1: aa
11882:  2: cc
11883:  3: ee
11884: 
11885: /^a\x41z/<JS>
11886:     aAz
11887:  0: aAz
11888:     *** Failers
11889: No match
11890:     ax41z
11891: No match
11892: 
11893: /^a[m\x41]z/<JS>
11894:     aAz
11895:  0: aAz
11896: 
11897: /^a\x1z/<JS>
11898:     ax1z
11899:  0: ax1z
11900: 
11901: /^a\u0041z/<JS>
11902:     aAz
11903:  0: aAz
11904:     *** Failers
11905: No match
11906:     au0041z
11907: No match
11908: 
11909: /^a[m\u0041]z/<JS>
11910:     aAz
11911:  0: aAz
11912: 
11913: /^a\u041z/<JS>
11914:     au041z
11915:  0: au041z
11916:     *** Failers
11917: No match
11918:     aAz
11919: No match
11920: 
11921: /^a\U0041z/<JS>
11922:     aU0041z
11923:  0: aU0041z
11924:     *** Failers
11925: No match
11926:     aAz
11927: No match
11928: 
11929: /(?(?=c)c|d)++Y/BZ
11930: ------------------------------------------------------------------
11931:         Bra
11932:         BraPos
11933:         Cond
11934:         Assert
11935:         c
11936:         Ket
11937:         c
11938:         Alt
11939:         d
11940:         Ket
11941:         KetRpos
11942:         Y
11943:         Ket
11944:         End
11945: ------------------------------------------------------------------
11946: 
11947: /(?(?=c)c|d)*+Y/BZ
11948: ------------------------------------------------------------------
11949:         Bra
11950:         Braposzero
11951:         BraPos
11952:         Cond
11953:         Assert
11954:         c
11955:         Ket
11956:         c
11957:         Alt
11958:         d
11959:         Ket
11960:         KetRpos
11961:         Y
11962:         Ket
11963:         End
11964: ------------------------------------------------------------------
11965: 
11966: /a[\NB]c/
11967: Failed: \N is not supported in a class at offset 3
11968: 
11969: /a[B-\Nc]/ 
11970: Failed: invalid range in character class at offset 5
11971: 
11972: /a[B\Nc]/ 
11973: Failed: \N is not supported in a class at offset 4
11974: 
11975: /(a)(?2){0,1999}?(b)/
11976: 
11977: /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11978: 
11979: /--- This test, with something more complicated than individual letters, causes
11980: different behaviour in Perl. Perhaps it disables some optimization; no tag is
11981: passed back for the failures, whereas in PCRE there is a tag. ---/
11982:     
11983: /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11984:     AABC
11985:  0: AB
11986:  1: A
11987:  2: B
11988: MK: A
11989:     XXYZ 
11990:  0: XXY
11991:  1: <unset>
11992:  2: <unset>
11993:  3: X
11994:  4: X
11995:  5: Y
11996: MK: B
11997:     ** Failers
11998: No match
11999:     XAQQ  
12000: No match, mark = A
12001:     XAQQXZZ  
12002: No match, mark = A
12003:     AXQQQ 
12004: No match, mark = A
12005:     AXXQQQ 
12006: No match, mark = B
12007: 
12008: /-- Perl doesn't give marks for these, though it does if the alternatives are
12009: replaced by single letters. --/
12010:     
12011: /(b|q)(*:m)f|a(*:n)w/K
12012:     aw 
12013:  0: aw
12014: MK: n
12015:     ** Failers 
12016: No match, mark = n
12017:     abc
12018: No match, mark = m
12019: 
12020: /(q|b)(*:m)f|a(*:n)w/K
12021:     aw 
12022:  0: aw
12023: MK: n
12024:     ** Failers 
12025: No match, mark = n
12026:     abc
12027: No match, mark = m
12028: 
12029: /-- After a partial match, the behaviour is as for a failure. --/
12030: 
12031: /^a(*:X)bcde/K
12032:    abc\P
12033: Partial match, mark=X: abc
12034:    
12035: /-- These are here because Perl doesn't return a mark, except for the first --/
12036: 
12037: /(?=(*:x))(q|)/K+
12038:     abc
12039:  0: 
12040:  0+ abc
12041:  1: 
12042: MK: x
12043: 
12044: /(?=(*:x))((*:y)q|)/K+
12045:     abc
12046:  0: 
12047:  0+ abc
12048:  1: 
12049: MK: x
12050: 
12051: /(?=(*:x))(?:(*:y)q|)/K+
12052:     abc
12053:  0: 
12054:  0+ abc
12055: MK: x
12056: 
12057: /(?=(*:x))(?>(*:y)q|)/K+
12058:     abc
12059:  0: 
12060:  0+ abc
12061: MK: x
12062: 
12063: /(?=a(*:x))(?!a(*:y)c)/K+
12064:     ab
12065:  0: 
12066:  0+ ab
12067: MK: x
12068: 
12069: /(?=a(*:x))(?=a(*:y)c|)/K+
12070:     ab
12071:  0: 
12072:  0+ ab
12073: MK: x
12074: 
12075: /(..)\1/
12076:     ab\P
12077: Partial match: ab
12078:     aba\P
12079: Partial match: aba
12080:     abab\P
12081:  0: abab
12082:  1: ab
12083: 
12084: /(..)\1/i
12085:     ab\P
12086: Partial match: ab
12087:     abA\P
12088: Partial match: abA
12089:     aBAb\P
12090:  0: aBAb
12091:  1: aB
12092: 
12093: /(..)\1{2,}/
12094:     ab\P
12095: Partial match: ab
12096:     aba\P
12097: Partial match: aba
12098:     abab\P
12099: Partial match: abab
12100:     ababa\P
12101: Partial match: ababa
12102:     ababab\P
12103:  0: ababab
12104:  1: ab
12105:     ababab\P\P
12106: Partial match: ababab
12107:     abababa\P
12108:  0: ababab
12109:  1: ab
12110:     abababa\P\P
12111: Partial match: abababa
12112: 
12113: /(..)\1{2,}/i
12114:     ab\P
12115: Partial match: ab
12116:     aBa\P
12117: Partial match: aBa
12118:     aBAb\P
12119: Partial match: aBAb
12120:     AbaBA\P
12121: Partial match: AbaBA
12122:     abABAb\P
12123:  0: abABAb
12124:  1: ab
12125:     aBAbaB\P\P
12126: Partial match: aBAbaB
12127:     abABabA\P
12128:  0: abABab
12129:  1: ab
12130:     abaBABa\P\P
12131: Partial match: abaBABa
12132: 
12133: /(..)\1{2,}?x/i
12134:     ab\P
12135: Partial match: ab
12136:     abA\P
12137: Partial match: abA
12138:     aBAb\P
12139: Partial match: aBAb
12140:     abaBA\P
12141: Partial match: abaBA
12142:     abAbaB\P
12143: Partial match: abAbaB
12144:     abaBabA\P
12145: Partial match: abaBabA
12146:     abAbABaBx\P
12147:  0: abAbABaBx
12148:  1: ab
12149: 
12150: /^(..)\1/
12151:     aba\P
12152: Partial match: aba
12153: 
12154: /^(..)\1{2,3}x/
12155:     aba\P
12156: Partial match: aba
12157:     ababa\P
12158: Partial match: ababa
12159:     ababa\P\P
12160: Partial match: ababa
12161:     abababx
12162:  0: abababx
12163:  1: ab
12164:     ababababx  
12165:  0: ababababx
12166:  1: ab
12167: 
12168: /^(..)\1{2,3}?x/
12169:     aba\P
12170: Partial match: aba
12171:     ababa\P
12172: Partial match: ababa
12173:     ababa\P\P
12174: Partial match: ababa
12175:     abababx
12176:  0: abababx
12177:  1: ab
12178:     ababababx  
12179:  0: ababababx
12180:  1: ab
12181:     
12182: /^(..)(\1{2,3})ab/
12183:     abababab
12184:  0: abababab
12185:  1: ab
12186:  2: abab
12187: 
12188: /^\R/
12189:     \r\P
12190:  0: \x0d
12191:     \r\P\P
12192: Partial match: \x0d
12193:     
12194: /^\R{2,3}x/
12195:     \r\P
12196: Partial match: \x0d
12197:     \r\P\P
12198: Partial match: \x0d
12199:     \r\r\P 
12200: Partial match: \x0d\x0d
12201:     \r\r\P\P
12202: Partial match: \x0d\x0d
12203:     \r\r\r\P  
12204: Partial match: \x0d\x0d\x0d
12205:     \r\r\r\P\P
12206: Partial match: \x0d\x0d\x0d
12207:     \r\rx
12208:  0: \x0d\x0dx
12209:     \r\r\rx    
12210:  0: \x0d\x0d\x0dx
12211: 
12212: /^\R{2,3}?x/
12213:     \r\P
12214: Partial match: \x0d
12215:     \r\P\P
12216: Partial match: \x0d
12217:     \r\r\P 
12218: Partial match: \x0d\x0d
12219:     \r\r\P\P
12220: Partial match: \x0d\x0d
12221:     \r\r\r\P  
12222: Partial match: \x0d\x0d\x0d
12223:     \r\r\r\P\P
12224: Partial match: \x0d\x0d\x0d
12225:     \r\rx
12226:  0: \x0d\x0dx
12227:     \r\r\rx    
12228:  0: \x0d\x0d\x0dx
12229:     
12230: /^\R?x/
12231:     \r\P
12232: Partial match: \x0d
12233:     \r\P\P 
12234: Partial match: \x0d
12235:     x
12236:  0: x
12237:     \rx  
12238:  0: \x0dx
12239: 
12240: /^\R+x/
12241:     \r\P
12242: Partial match: \x0d
12243:     \r\P\P 
12244: Partial match: \x0d
12245:     \r\n\P
12246: Partial match: \x0d\x0a
12247:     \r\n\P\P  
12248: Partial match: \x0d\x0a
12249:     \rx  
12250:  0: \x0dx
12251: 
12252: /^a$/<CRLF>
12253:     a\r\P
12254: Partial match: a\x0d
12255:     a\r\P\P 
12256: Partial match: a\x0d
12257: 
12258: /^a$/m<CRLF>
12259:     a\r\P
12260: Partial match: a\x0d
12261:     a\r\P\P 
12262: Partial match: a\x0d
12263: 
12264: /^(a$|a\r)/<CRLF>
12265:     a\r\P
12266:  0: a\x0d
12267:  1: a\x0d
12268:     a\r\P\P 
12269: Partial match: a\x0d
12270: 
12271: /^(a$|a\r)/m<CRLF>
12272:     a\r\P
12273:  0: a\x0d
12274:  1: a\x0d
12275:     a\r\P\P 
12276: Partial match: a\x0d
12277: 
12278: /./<CRLF>
12279:     \r\P
12280:  0: \x0d
12281:     \r\P\P 
12282: Partial match: \x0d
12283:   
12284: /.{2,3}/<CRLF>
12285:     \r\P 
12286: Partial match: \x0d
12287:     \r\P\P
12288: Partial match: \x0d
12289:     \r\r\P
12290:  0: \x0d\x0d
12291:     \r\r\P\P
12292: Partial match: \x0d\x0d
12293:     \r\r\r\P
12294:  0: \x0d\x0d\x0d
12295:     \r\r\r\P\P     
12296: Partial match: \x0d\x0d\x0d
12297: 
12298: /.{2,3}?/<CRLF>
12299:     \r\P 
12300: Partial match: \x0d
12301:     \r\P\P
12302: Partial match: \x0d
12303:     \r\r\P
12304:  0: \x0d\x0d
12305:     \r\r\P\P
12306: Partial match: \x0d\x0d
12307:     \r\r\r\P
12308:  0: \x0d\x0d
12309:     \r\r\r\P\P     
12310:  0: \x0d\x0d
12311: 
12312: "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12313:     ABCDGHI\O03
12314: Matched, but too many substrings
12315:  0: ABCD
12316:     
12317: /-- These are all run as real matches in test 1; here we are just checking the
12318: settings of the anchored and startline bits. --/ 
12319: 
12320: /(?>.*?a)(?<=ba)/I
12321: Capturing subpattern count = 0
12322: Max lookbehind = 2
12323: No options
12324: No first char
12325: Need char = 'a'
12326: 
12327: /(?:.*?a)(?<=ba)/I
12328: Capturing subpattern count = 0
12329: Max lookbehind = 2
12330: No options
12331: First char at start or follows newline
12332: Need char = 'a'
12333: 
12334: /.*?a(*PRUNE)b/I
12335: Capturing subpattern count = 0
12336: No options
12337: No first char
12338: Need char = 'b'
12339: 
12340: /.*?a(*PRUNE)b/sI
12341: Capturing subpattern count = 0
12342: Options: dotall
12343: No first char
12344: Need char = 'b'
12345: 
12346: /^a(*PRUNE)b/sI
12347: Capturing subpattern count = 0
12348: Options: anchored dotall
12349: No first char
12350: No need char
12351: 
12352: /.*?a(*SKIP)b/I
12353: Capturing subpattern count = 0
12354: No options
12355: No first char
12356: Need char = 'b'
12357: 
12358: /(?>.*?a)b/sI
12359: Capturing subpattern count = 0
12360: Options: dotall
12361: No first char
12362: Need char = 'b'
12363: 
12364: /(?>.*?a)b/I
12365: Capturing subpattern count = 0
12366: No options
12367: No first char
12368: Need char = 'b'
12369: 
12370: /(?>^a)b/sI
12371: Capturing subpattern count = 0
12372: Options: anchored dotall
12373: No first char
12374: No need char
12375: 
12376: /(?>.*?)(?<=(abcd)|(wxyz))/I
12377: Capturing subpattern count = 2
12378: Max lookbehind = 4
12379: May match empty string
12380: No options
12381: No first char
12382: No need char
12383: 
12384: /(?>.*)(?<=(abcd)|(wxyz))/I
12385: Capturing subpattern count = 2
12386: Max lookbehind = 4
12387: May match empty string
12388: No options
12389: No first char
12390: No need char
12391: 
12392: "(?>.*)foo"I
12393: Capturing subpattern count = 0
12394: No options
12395: No first char
12396: Need char = 'o'
12397: 
12398: "(?>.*?)foo"I
12399: Capturing subpattern count = 0
12400: No options
12401: No first char
12402: Need char = 'o'
12403: 
12404: /(?>^abc)/mI
12405: Capturing subpattern count = 0
12406: Options: multiline
12407: First char at start or follows newline
12408: Need char = 'c'
12409: 
12410: /(?>.*abc)/mI
12411: Capturing subpattern count = 0
12412: Options: multiline
12413: No first char
12414: Need char = 'c'
12415: 
12416: /(?:.*abc)/mI
12417: Capturing subpattern count = 0
12418: Options: multiline
12419: First char at start or follows newline
12420: Need char = 'c'
12421: 
12422: /-- Check PCRE_STUDY_EXTRA_NEEDED --/
12423: 
12424: /.?/S-I
12425: Capturing subpattern count = 0
12426: May match empty string
12427: No options
12428: No first char
12429: No need char
12430: Study returned NULL
12431: 
12432: /.?/S!I
12433: Capturing subpattern count = 0
12434: May match empty string
12435: No options
12436: No first char
12437: No need char
12438: Subject length lower bound = -1
12439: No set of starting bytes
12440: 
12441: /(?:(a)+(?C1)bb|aa(?C2)b)/
12442:     aab\C+
12443: Callout 1: last capture = 1
12444:  0: <unset>
12445:  1: a
12446: --->aab
12447:     ^ ^     b
12448: Callout 1: last capture = 1
12449:  0: <unset>
12450:  1: a
12451: --->aab
12452:     ^^      b
12453: Callout 2: last capture = -1
12454:  0: <unset>
12455: --->aab
12456:     ^ ^     b
12457:  0: aab
12458:    
12459: /(?:(a)++(?C1)bb|aa(?C2)b)/
12460:     aab\C+ 
12461: Callout 1: last capture = 1
12462:  0: <unset>
12463:  1: a
12464: --->aab
12465:     ^ ^     b
12466: Callout 2: last capture = -1
12467:  0: <unset>
12468: --->aab
12469:     ^ ^     b
12470:  0: aab
12471:     
12472: /(?:(?>(a))(?C1)bb|aa(?C2)b)/
12473:     aab\C+ 
12474: Callout 1: last capture = 1
12475:  0: <unset>
12476:  1: a
12477: --->aab
12478:     ^^      b
12479: Callout 2: last capture = -1
12480:  0: <unset>
12481: --->aab
12482:     ^ ^     b
12483:  0: aab
12484: 
12485: /(?:(?1)(?C1)x|ab(?C2))((a)){0}/                                                
12486:     aab\C+ 
12487: Callout 1: last capture = -1
12488:  0: <unset>
12489: --->aab
12490:     ^^      x
12491: Callout 1: last capture = -1
12492:  0: <unset>
12493: --->aab
12494:      ^^     x
12495: Callout 2: last capture = -1
12496:  0: <unset>
12497: --->aab
12498:      ^ ^    )
12499:  0: ab
12500: 
12501: /(?1)(?C1)((a)(?C2)){0}/   
12502:     aab\C+ 
12503: Callout 2: last capture = 2
12504:  0: <unset>
12505:  1: <unset>
12506:  2: a
12507: --->aab
12508:     ^^      )
12509: Callout 1: last capture = -1
12510:  0: <unset>
12511: --->aab
12512:     ^^      ((a)(?C2)){0}
12513:  0: a
12514: 
12515: /(?:(a)+(?C1)bb|aa(?C2)b)++/
12516:     aab\C+
12517: Callout 1: last capture = 1
12518:  0: <unset>
12519:  1: a
12520: --->aab
12521:     ^ ^     b
12522: Callout 1: last capture = 1
12523:  0: <unset>
12524:  1: a
12525: --->aab
12526:     ^^      b
12527: Callout 2: last capture = -1
12528:  0: <unset>
12529: --->aab
12530:     ^ ^     b
12531:  0: aab
12532:     aab\C+\O2
12533: Callout 1: last capture = 1
12534:  0: <unset>
12535: --->aab
12536:     ^ ^     b
12537: Callout 1: last capture = 1
12538:  0: <unset>
12539: --->aab
12540:     ^^      b
12541: Callout 2: last capture = -1
12542:  0: <unset>
12543: --->aab
12544:     ^ ^     b
12545:  0: aab
12546: 
12547: /(ab)x|ab/
12548:     ab\O3
12549:  0: ab
12550:     ab\O2 
12551:  0: ab
12552:   
12553: /(ab)/
12554:     ab\O3
12555: Matched, but too many substrings
12556:  0: ab
12557:     ab\O2 
12558: Matched, but too many substrings
12559:  0: ab
12560:     
12561: /(?<=123)(*MARK:xx)abc/K
12562:     xxxx123a\P\P
12563: Partial match at offset 7, mark=xx: 123a
12564:     xxxx123a\P
12565: Partial match at offset 7, mark=xx: 123a
12566:     
12567: /123\Kabc/
12568:     xxxx123a\P\P
12569: Partial match: 123a
12570:     xxxx123a\P
12571: Partial match: 123a
12572: 
12573: /^(?(?=a)aa|bb)/C
12574:     bb
12575: --->bb
12576:  +0 ^      ^
12577:  +1 ^      (?(?=a)aa|bb)
12578:  +3 ^      (?=a)
12579:  +6 ^      a
12580: +11 ^      b
12581: +12 ^^     b
12582: +13 ^ ^    )
12583: +14 ^ ^    
12584:  0: bb
12585: 
12586: /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
12587:     bb
12588: --->bb
12589:   1 ^      ^
12590:   2 ^      (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))
12591:  99 ^      (?=(?C3)a(?C4))
12592:   3 ^      a
12593:   8 ^      b
12594:   9 ^^     b
12595:  10 ^ ^    )
12596:  11 ^ ^    
12597:  0: bb
12598: 
12599: /-- Perl seems to have a bug with this one --/
12600: 
12601: /aaaaa(*COMMIT)(*PRUNE)b|a+c/
12602:     aaaaaac
12603:  0: aaaac
12604:     
12605: /-- Here are some that Perl treats differently because of the way it handles
12606: backtracking verbs. --/
12607: 
12608:  /(?!a(*COMMIT)b)ac|ad/
12609:      ac
12610:  0: ac
12611:      ad 
12612:  0: ad
12613: 
12614: /^(?!a(*THEN)b|ac)../
12615:      ac
12616: No match
12617:      ad 
12618:  0: ad
12619: 
12620: /^(?=a(*THEN)b|ac)/
12621:     ac
12622:  0: 
12623:     
12624: /\A.*?(?:a|b(*THEN)c)/
12625:     ba
12626:  0: ba
12627: 
12628: /\A.*?(?:a|b(*THEN)c)++/
12629:     ba
12630:  0: ba
12631: 
12632: /\A.*?(?:a|b(*THEN)c|d)/
12633:     ba
12634:  0: ba
12635: 
12636: /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
12637:     aac 
12638:  0: aac
12639: 
12640: /\A.*?(a|b(*THEN)c)/
12641:     ba
12642:  0: ba
12643:  1: a
12644: 
12645: /^(A(*THEN)B|A(*THEN)D)/
12646:     AD           
12647:  0: AD
12648:  1: AD
12649:     
12650: /(?!b(*THEN)a)bn|bnn/
12651:     bnn
12652:  0: bn
12653: 
12654: /(?(?=b(*SKIP)a)bn|bnn)/
12655:     bnn
12656: No match
12657: 
12658: /(?=b(*THEN)a|)bn|bnn/
12659:     bnn
12660:  0: bn
12661: 
12662: /-------------------------/ 
12663: 
12664: /(*LIMIT_MATCH=12bc)abc/
12665: Failed: (*VERB) not recognized or malformed at offset 7
12666: 
12667: /(*LIMIT_MATCH=4294967290)abc/
12668: Failed: (*VERB) not recognized or malformed at offset 7
12669: 
12670: /(*LIMIT_RECURSION=4294967280)abc/I
12671: Capturing subpattern count = 0
12672: Recursion limit = 4294967280
12673: No options
12674: First char = 'a'
12675: Need char = 'c'
12676: 
12677: /(a+)*zz/
12678:     aaaaaaaaaaaaaz
12679: No match
12680:     aaaaaaaaaaaaaz\q3000
12681: Error -8 (match limit exceeded)
12682: 
12683: /(a+)*zz/S-
12684:     aaaaaaaaaaaaaz\Q10 
12685: Error -21 (recursion limit exceeded)
12686: 
12687: /(*LIMIT_MATCH=3000)(a+)*zz/I
12688: Capturing subpattern count = 1
12689: Match limit = 3000
12690: No options
12691: No first char
12692: Need char = 'z'
12693:     aaaaaaaaaaaaaz
12694: Error -8 (match limit exceeded)
12695:     aaaaaaaaaaaaaz\q60000
12696: Error -8 (match limit exceeded)
12697: 
12698: /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
12699: Capturing subpattern count = 1
12700: Match limit = 3000
12701: No options
12702: No first char
12703: Need char = 'z'
12704:     aaaaaaaaaaaaaz
12705: Error -8 (match limit exceeded)
12706: 
12707: /(*LIMIT_MATCH=60000)(a+)*zz/I
12708: Capturing subpattern count = 1
12709: Match limit = 60000
12710: No options
12711: No first char
12712: Need char = 'z'
12713:     aaaaaaaaaaaaaz
12714: No match
12715:     aaaaaaaaaaaaaz\q3000
12716: Error -8 (match limit exceeded)
12717: 
12718: /(*LIMIT_RECURSION=10)(a+)*zz/IS-
12719: Capturing subpattern count = 1
12720: Recursion limit = 10
12721: No options
12722: No first char
12723: Need char = 'z'
12724: Subject length lower bound = 2
12725: Starting byte set: a z 
12726:     aaaaaaaaaaaaaz
12727: Error -21 (recursion limit exceeded)
12728:     aaaaaaaaaaaaaz\Q1000
12729: Error -21 (recursion limit exceeded)
12730: 
12731: /(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12732: Capturing subpattern count = 1
12733: Recursion limit = 10
12734: No options
12735: No first char
12736: Need char = 'z'
12737: Subject length lower bound = 2
12738: Starting byte set: a z 
12739:     aaaaaaaaaaaaaz
12740: Error -21 (recursion limit exceeded)
12741: 
12742: /(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12743: Capturing subpattern count = 1
12744: Recursion limit = 1000
12745: No options
12746: No first char
12747: Need char = 'z'
12748: Subject length lower bound = 2
12749: Starting byte set: a z 
12750:     aaaaaaaaaaaaaz
12751: No match
12752:     aaaaaaaaaaaaaz\Q10
12753: Error -21 (recursion limit exceeded)
12754: 
12755: /-- This test causes a segfault with Perl 5.18.0 --/
12756: 
12757: /^(?=(a)){0}b(?1)/
12758:     backgammon
12759:  0: ba
12760: 
12761: /(?|(?<n>f)|(?<n>b))/JI
12762: Capturing subpattern count = 1
12763: Named capturing subpatterns:
12764:   n   1
12765: Options: dupnames
12766: No first char
12767: No need char
12768: 
12769: /(?<a>abc)(?<a>z)\k<a>()/JDZS
12770: ------------------------------------------------------------------
12771:         Bra
12772:         CBra 1
12773:         abc
12774:         Ket
12775:         CBra 2
12776:         z
12777:         Ket
12778:         \k<a>2
12779:         CBra 3
12780:         Ket
12781:         Ket
12782:         End
12783: ------------------------------------------------------------------
12784: Capturing subpattern count = 3
12785: Max back reference = 2
12786: Named capturing subpatterns:
12787:   a   1
12788:   a   2
12789: Options: dupnames
12790: First char = 'a'
12791: Need char = 'z'
12792: Subject length lower bound = 5
12793: No set of starting bytes
12794: 
12795: /a*[bcd]/BZ
12796: ------------------------------------------------------------------
12797:         Bra
12798:         a*+
12799:         [b-d]
12800:         Ket
12801:         End
12802: ------------------------------------------------------------------
12803: 
12804: /[bcd]*a/BZ
12805: ------------------------------------------------------------------
12806:         Bra
12807:         [b-d]*+
12808:         a
12809:         Ket
12810:         End
12811: ------------------------------------------------------------------
12812: 
12813: /-- A complete set of tests for auto-possessification of character types --/
12814: 
12815: /\D+\D \D+\d \D+\S \D+\s \D+\W \D+\w \D+. \D+\C \D+\R \D+\H \D+\h \D+\V \D+\v \D+\Z \D+\z \D+$/BZx
12816: ------------------------------------------------------------------
12817:         Bra
12818:         \D+
12819:         \D
12820:         \D++
12821:         \d
12822:         \D+
12823:         \S
12824:         \D+
12825:         \s
12826:         \D+
12827:         \W
12828:         \D+
12829:         \w
12830:         \D+
12831:         Any
12832:         \D+
12833:         AllAny
12834:         \D+
12835:         \R
12836:         \D+
12837:         \H
12838:         \D+
12839:         \h
12840:         \D+
12841:         \V
12842:         \D+
12843:         \v
12844:         \D+
12845:         \Z
12846:         \D++
12847:         \z
12848:         \D+
12849:         $
12850:         Ket
12851:         End
12852: ------------------------------------------------------------------
12853: 
12854: /\d+\D \d+\d \d+\S \d+\s \d+\W \d+\w \d+. \d+\C \d+\R \d+\H \d+\h \d+\V \d+\v \d+\Z \d+\z \d+$/BZx
12855: ------------------------------------------------------------------
12856:         Bra
12857:         \d++
12858:         \D
12859:         \d+
12860:         \d
12861:         \d+
12862:         \S
12863:         \d++
12864:         \s
12865:         \d++
12866:         \W
12867:         \d+
12868:         \w
12869:         \d+
12870:         Any
12871:         \d+
12872:         AllAny
12873:         \d++
12874:         \R
12875:         \d+
12876:         \H
12877:         \d++
12878:         \h
12879:         \d+
12880:         \V
12881:         \d++
12882:         \v
12883:         \d++
12884:         \Z
12885:         \d++
12886:         \z
12887:         \d++
12888:         $
12889:         Ket
12890:         End
12891: ------------------------------------------------------------------
12892: 
12893: /\S+\D \S+\d \S+\S \S+\s \S+\W \S+\w \S+. \S+\C \S+\R \S+\H \S+\h \S+\V \S+\v \S+\Z \S+\z \S+$/BZx
12894: ------------------------------------------------------------------
12895:         Bra
12896:         \S+
12897:         \D
12898:         \S+
12899:         \d
12900:         \S+
12901:         \S
12902:         \S++
12903:         \s
12904:         \S+
12905:         \W
12906:         \S+
12907:         \w
12908:         \S+
12909:         Any
12910:         \S+
12911:         AllAny
12912:         \S++
12913:         \R
12914:         \S+
12915:         \H
12916:         \S++
12917:         \h
12918:         \S+
12919:         \V
12920:         \S++
12921:         \v
12922:         \S++
12923:         \Z
12924:         \S++
12925:         \z
12926:         \S++
12927:         $
12928:         Ket
12929:         End
12930: ------------------------------------------------------------------
12931: 
12932: /\s+\D \s+\d \s+\S \s+\s \s+\W \s+\w \s+. \s+\C \s+\R \s+\H \s+\h \s+\V \s+\v \s+\Z \s+\z \s+$/BZx
12933: ------------------------------------------------------------------
12934:         Bra
12935:         \s+
12936:         \D
12937:         \s++
12938:         \d
12939:         \s++
12940:         \S
12941:         \s+
12942:         \s
12943:         \s+
12944:         \W
12945:         \s++
12946:         \w
12947:         \s+
12948:         Any
12949:         \s+
12950:         AllAny
12951:         \s+
12952:         \R
12953:         \s+
12954:         \H
12955:         \s+
12956:         \h
12957:         \s+
12958:         \V
12959:         \s+
12960:         \v
12961:         \s+
12962:         \Z
12963:         \s++
12964:         \z
12965:         \s+
12966:         $
12967:         Ket
12968:         End
12969: ------------------------------------------------------------------
12970: 
12971: /\W+\D \W+\d \W+\S \W+\s \W+\W \W+\w \W+. \W+\C \W+\R \W+\H \W+\h \W+\V \W+\v \W+\Z \W+\z \W+$/BZx
12972: ------------------------------------------------------------------
12973:         Bra
12974:         \W+
12975:         \D
12976:         \W++
12977:         \d
12978:         \W+
12979:         \S
12980:         \W+
12981:         \s
12982:         \W+
12983:         \W
12984:         \W++
12985:         \w
12986:         \W+
12987:         Any
12988:         \W+
12989:         AllAny
12990:         \W+
12991:         \R
12992:         \W+
12993:         \H
12994:         \W+
12995:         \h
12996:         \W+
12997:         \V
12998:         \W+
12999:         \v
13000:         \W+
13001:         \Z
13002:         \W++
13003:         \z
13004:         \W+
13005:         $
13006:         Ket
13007:         End
13008: ------------------------------------------------------------------
13009: 
13010: /\w+\D \w+\d \w+\S \w+\s \w+\W \w+\w \w+. \w+\C \w+\R \w+\H \w+\h \w+\V \w+\v \w+\Z \w+\z \w+$/BZx
13011: ------------------------------------------------------------------
13012:         Bra
13013:         \w+
13014:         \D
13015:         \w+
13016:         \d
13017:         \w+
13018:         \S
13019:         \w++
13020:         \s
13021:         \w++
13022:         \W
13023:         \w+
13024:         \w
13025:         \w+
13026:         Any
13027:         \w+
13028:         AllAny
13029:         \w++
13030:         \R
13031:         \w+
13032:         \H
13033:         \w++
13034:         \h
13035:         \w+
13036:         \V
13037:         \w++
13038:         \v
13039:         \w++
13040:         \Z
13041:         \w++
13042:         \z
13043:         \w++
13044:         $
13045:         Ket
13046:         End
13047: ------------------------------------------------------------------
13048: 
13049: /\C+\D \C+\d \C+\S \C+\s \C+\W \C+\w \C+. \C+\C \C+\R \C+\H \C+\h \C+\V \C+\v \C+\Z \C+\z \C+$/BZx
13050: ------------------------------------------------------------------
13051:         Bra
13052:         AllAny+
13053:         \D
13054:         AllAny+
13055:         \d
13056:         AllAny+
13057:         \S
13058:         AllAny+
13059:         \s
13060:         AllAny+
13061:         \W
13062:         AllAny+
13063:         \w
13064:         AllAny+
13065:         Any
13066:         AllAny+
13067:         AllAny
13068:         AllAny+
13069:         \R
13070:         AllAny+
13071:         \H
13072:         AllAny+
13073:         \h
13074:         AllAny+
13075:         \V
13076:         AllAny+
13077:         \v
13078:         AllAny+
13079:         \Z
13080:         AllAny++
13081:         \z
13082:         AllAny+
13083:         $
13084:         Ket
13085:         End
13086: ------------------------------------------------------------------
13087: 
13088: /\R+\D \R+\d \R+\S \R+\s \R+\W \R+\w \R+. \R+\C \R+\R \R+\H \R+\h \R+\V \R+\v \R+\Z \R+\z \R+$/BZx
13089: ------------------------------------------------------------------
13090:         Bra
13091:         \R+
13092:         \D
13093:         \R++
13094:         \d
13095:         \R+
13096:         \S
13097:         \R++
13098:         \s
13099:         \R+
13100:         \W
13101:         \R++
13102:         \w
13103:         \R++
13104:         Any
13105:         \R+
13106:         AllAny
13107:         \R+
13108:         \R
13109:         \R+
13110:         \H
13111:         \R++
13112:         \h
13113:         \R+
13114:         \V
13115:         \R+
13116:         \v
13117:         \R+
13118:         \Z
13119:         \R++
13120:         \z
13121:         \R+
13122:         $
13123:         Ket
13124:         End
13125: ------------------------------------------------------------------
13126: 
13127: /\H+\D \H+\d \H+\S \H+\s \H+\W \H+\w \H+. \H+\C \H+\R \H+\H \H+\h \H+\V \H+\v \H+\Z \H+\z \H+$/BZx
13128: ------------------------------------------------------------------
13129:         Bra
13130:         \H+
13131:         \D
13132:         \H+
13133:         \d
13134:         \H+
13135:         \S
13136:         \H+
13137:         \s
13138:         \H+
13139:         \W
13140:         \H+
13141:         \w
13142:         \H+
13143:         Any
13144:         \H+
13145:         AllAny
13146:         \H+
13147:         \R
13148:         \H+
13149:         \H
13150:         \H++
13151:         \h
13152:         \H+
13153:         \V
13154:         \H+
13155:         \v
13156:         \H+
13157:         \Z
13158:         \H++
13159:         \z
13160:         \H+
13161:         $
13162:         Ket
13163:         End
13164: ------------------------------------------------------------------
13165: 
13166: /\h+\D \h+\d \h+\S \h+\s \h+\W \h+\w \h+. \h+\C \h+\R \h+\H \h+\h \h+\V \h+\v \h+\Z \h+\z \h+$/BZx
13167: ------------------------------------------------------------------
13168:         Bra
13169:         \h+
13170:         \D
13171:         \h++
13172:         \d
13173:         \h++
13174:         \S
13175:         \h+
13176:         \s
13177:         \h+
13178:         \W
13179:         \h++
13180:         \w
13181:         \h+
13182:         Any
13183:         \h+
13184:         AllAny
13185:         \h++
13186:         \R
13187:         \h++
13188:         \H
13189:         \h+
13190:         \h
13191:         \h+
13192:         \V
13193:         \h++
13194:         \v
13195:         \h+
13196:         \Z
13197:         \h++
13198:         \z
13199:         \h+
13200:         $
13201:         Ket
13202:         End
13203: ------------------------------------------------------------------
13204: 
13205: /\V+\D \V+\d \V+\S \V+\s \V+\W \V+\w \V+. \V+\C \V+\R \V+\H \V+\h \V+\V \V+\v \V+\Z \V+\z \V+$/BZx
13206: ------------------------------------------------------------------
13207:         Bra
13208:         \V+
13209:         \D
13210:         \V+
13211:         \d
13212:         \V+
13213:         \S
13214:         \V+
13215:         \s
13216:         \V+
13217:         \W
13218:         \V+
13219:         \w
13220:         \V+
13221:         Any
13222:         \V+
13223:         AllAny
13224:         \V++
13225:         \R
13226:         \V+
13227:         \H
13228:         \V+
13229:         \h
13230:         \V+
13231:         \V
13232:         \V++
13233:         \v
13234:         \V+
13235:         \Z
13236:         \V++
13237:         \z
13238:         \V+
13239:         $
13240:         Ket
13241:         End
13242: ------------------------------------------------------------------
13243: 
13244: /\v+\D \v+\d \v+\S \v+\s \v+\W \v+\w \v+. \v+\C \v+\R \v+\H \v+\h \v+\V \v+\v \v+\Z \v+\z \v+$/BZx
13245: ------------------------------------------------------------------
13246:         Bra
13247:         \v+
13248:         \D
13249:         \v++
13250:         \d
13251:         \v++
13252:         \S
13253:         \v+
13254:         \s
13255:         \v+
13256:         \W
13257:         \v++
13258:         \w
13259:         \v+
13260:         Any
13261:         \v+
13262:         AllAny
13263:         \v+
13264:         \R
13265:         \v+
13266:         \H
13267:         \v++
13268:         \h
13269:         \v++
13270:         \V
13271:         \v+
13272:         \v
13273:         \v+
13274:         \Z
13275:         \v++
13276:         \z
13277:         \v+
13278:         $
13279:         Ket
13280:         End
13281: ------------------------------------------------------------------
13282: 
13283: / a+\D  a+\d  a+\S  a+\s  a+\W  a+\w  a+.  a+\C  a+\R  a+\H  a+\h  a+\V  a+\v  a+\Z  a+\z  a+$/BZx
13284: ------------------------------------------------------------------
13285:         Bra
13286:         a+
13287:         \D
13288:         a++
13289:         \d
13290:         a+
13291:         \S
13292:         a++
13293:         \s
13294:         a++
13295:         \W
13296:         a+
13297:         \w
13298:         a+
13299:         Any
13300:         a+
13301:         AllAny
13302:         a++
13303:         \R
13304:         a+
13305:         \H
13306:         a++
13307:         \h
13308:         a+
13309:         \V
13310:         a++
13311:         \v
13312:         a++
13313:         \Z
13314:         a++
13315:         \z
13316:         a++
13317:         $
13318:         Ket
13319:         End
13320: ------------------------------------------------------------------
13321: 
13322: /\n+\D \n+\d \n+\S \n+\s \n+\W \n+\w \n+. \n+\C \n+\R \n+\H \n+\h \n+\V \n+\v \n+\Z \n+\z \n+$/BZx
13323: ------------------------------------------------------------------
13324:         Bra
13325:         \x0a+
13326:         \D
13327:         \x0a++
13328:         \d
13329:         \x0a++
13330:         \S
13331:         \x0a+
13332:         \s
13333:         \x0a+
13334:         \W
13335:         \x0a++
13336:         \w
13337:         \x0a+
13338:         Any
13339:         \x0a+
13340:         AllAny
13341:         \x0a+
13342:         \R
13343:         \x0a+
13344:         \H
13345:         \x0a++
13346:         \h
13347:         \x0a++
13348:         \V
13349:         \x0a+
13350:         \v
13351:         \x0a+
13352:         \Z
13353:         \x0a++
13354:         \z
13355:         \x0a+
13356:         $
13357:         Ket
13358:         End
13359: ------------------------------------------------------------------
13360: 
13361: / .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\C  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/BZx
13362: ------------------------------------------------------------------
13363:         Bra
13364:         Any+
13365:         \D
13366:         Any+
13367:         \d
13368:         Any+
13369:         \S
13370:         Any+
13371:         \s
13372:         Any+
13373:         \W
13374:         Any+
13375:         \w
13376:         Any+
13377:         Any
13378:         Any+
13379:         AllAny
13380:         Any++
13381:         \R
13382:         Any+
13383:         \H
13384:         Any+
13385:         \h
13386:         Any+
13387:         \V
13388:         Any+
13389:         \v
13390:         Any+
13391:         \Z
13392:         Any++
13393:         \z
13394:         Any+
13395:         $
13396:         Ket
13397:         End
13398: ------------------------------------------------------------------
13399: 
13400: / .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\C  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/BZxs
13401: ------------------------------------------------------------------
13402:         Bra
13403:         AllAny+
13404:         \D
13405:         AllAny+
13406:         \d
13407:         AllAny+
13408:         \S
13409:         AllAny+
13410:         \s
13411:         AllAny+
13412:         \W
13413:         AllAny+
13414:         \w
13415:         AllAny+
13416:         AllAny
13417:         AllAny+
13418:         AllAny
13419:         AllAny+
13420:         \R
13421:         AllAny+
13422:         \H
13423:         AllAny+
13424:         \h
13425:         AllAny+
13426:         \V
13427:         AllAny+
13428:         \v
13429:         AllAny+
13430:         \Z
13431:         AllAny++
13432:         \z
13433:         AllAny+
13434:         $
13435:         Ket
13436:         End
13437: ------------------------------------------------------------------
13438: 
13439: /\D+$  \d+$  \S+$  \s+$  \W+$  \w+$  \C+$  \R+$  \H+$  \h+$  \V+$  \v+$   a+$  \n+$   .+$  .+$/BZxm
13440: ------------------------------------------------------------------
13441:         Bra
13442:         \D+
13443:      /m $
13444:         \d++
13445:      /m $
13446:         \S++
13447:      /m $
13448:         \s+
13449:      /m $
13450:         \W+
13451:      /m $
13452:         \w++
13453:      /m $
13454:         AllAny+
13455:      /m $
13456:         \R+
13457:      /m $
13458:         \H+
13459:      /m $
13460:         \h+
13461:      /m $
13462:         \V+
13463:      /m $
13464:         \v+
13465:      /m $
13466:         a+
13467:      /m $
13468:         \x0a+
13469:      /m $
13470:         Any+
13471:      /m $
13472:         Any+
13473:      /m $
13474:         Ket
13475:         End
13476: ------------------------------------------------------------------
13477: 
13478: /(?=a+)a(a+)++a/BZ
13479: ------------------------------------------------------------------
13480:         Bra
13481:         Assert
13482:         a++
13483:         Ket
13484:         a
13485:         CBraPos 1
13486:         a++
13487:         KetRpos
13488:         a
13489:         Ket
13490:         End
13491: ------------------------------------------------------------------
13492: 
13493: /a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/BZ
13494: ------------------------------------------------------------------
13495:         Bra
13496:         a++
13497:         CBra 1
13498:         bb
13499:         Alt
13500:         cc
13501:         Ket
13502:         a++
13503:         Bra
13504:         bb
13505:         Alt
13506:         cc
13507:         Ket
13508:         a++
13509:         Once_NC
13510:         bb
13511:         Alt
13512:         cc
13513:         Ket
13514:         a++
13515:         Bra
13516:         bb
13517:         Alt
13518:         cc
13519:         KetRmax
13520:         a+
13521:         CBra 2
13522:         aa
13523:         Ket
13524:         a+
13525:         Bra
13526:         bb
13527:         Alt
13528:         aa
13529:         Ket
13530:         Ket
13531:         End
13532: ------------------------------------------------------------------
13533: 
13534: /a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/BZ
13535: ------------------------------------------------------------------
13536:         Bra
13537:         a++
13538:         Brazero
13539:         CBra 1
13540:         bb
13541:         Alt
13542:         cc
13543:         Ket
13544:         #
13545:         a++
13546:         Braminzero
13547:         Bra
13548:         bb
13549:         Alt
13550:         cc
13551:         Ket
13552:         #
13553:         a++
13554:         Once
13555:         Brazero
13556:         Bra
13557:         bb
13558:         Alt
13559:         cc
13560:         Ket
13561:         Ket
13562:         #
13563:         a++
13564:         Brazero
13565:         Bra
13566:         bb
13567:         Alt
13568:         cc
13569:         KetRmax
13570:         #
13571:         a+
13572:         Brazero
13573:         CBra 2
13574:         bb
13575:         Alt
13576:         cc
13577:         Ket
13578:         a#
13579:         a+
13580:         Brazero
13581:         Bra
13582:         aa
13583:         Ket
13584:         Ket
13585:         End
13586: ------------------------------------------------------------------
13587: 
13588: /a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/BZ
13589: ------------------------------------------------------------------
13590:         Bra
13591:         a+
13592:         Brazero
13593:         Bra
13594:         bb
13595:         Ket
13596:         a#
13597:         a++
13598:         Bra
13599:         Alt
13600:         Alt
13601:         Alt
13602:         Ket
13603:         #
13604:         a+
13605:         Bra
13606:         Alt
13607:         b
13608:         Ket
13609:         a#
13610:         a+
13611:         Brazero
13612:         Bra
13613:         Alt
13614:         Alt
13615:         Alt
13616:         Ket
13617:         a
13618:         Ket
13619:         End
13620: ------------------------------------------------------------------
13621: 
13622: /[ab]*/BZ
13623: ------------------------------------------------------------------
13624:         Bra
13625:         [ab]*+
13626:         Ket
13627:         End
13628: ------------------------------------------------------------------
13629:     aaaa
13630:  0: aaaa
13631: 
13632: /[ab]*?/BZ
13633: ------------------------------------------------------------------
13634:         Bra
13635:         [ab]*?
13636:         Ket
13637:         End
13638: ------------------------------------------------------------------
13639:     aaaa
13640:  0: 
13641: 
13642: /[ab]?/BZ
13643: ------------------------------------------------------------------
13644:         Bra
13645:         [ab]?+
13646:         Ket
13647:         End
13648: ------------------------------------------------------------------
13649:     aaaa
13650:  0: a
13651: 
13652: /[ab]??/BZ
13653: ------------------------------------------------------------------
13654:         Bra
13655:         [ab]??
13656:         Ket
13657:         End
13658: ------------------------------------------------------------------
13659:     aaaa
13660:  0: 
13661: 
13662: /[ab]+/BZ
13663: ------------------------------------------------------------------
13664:         Bra
13665:         [ab]++
13666:         Ket
13667:         End
13668: ------------------------------------------------------------------
13669:     aaaa
13670:  0: aaaa
13671: 
13672: /[ab]+?/BZ
13673: ------------------------------------------------------------------
13674:         Bra
13675:         [ab]+?
13676:         Ket
13677:         End
13678: ------------------------------------------------------------------
13679:     aaaa
13680:  0: a
13681: 
13682: /[ab]{2,3}/BZ
13683: ------------------------------------------------------------------
13684:         Bra
13685:         [ab]{2,3}+
13686:         Ket
13687:         End
13688: ------------------------------------------------------------------
13689:     aaaa
13690:  0: aaa
13691: 
13692: /[ab]{2,3}?/BZ
13693: ------------------------------------------------------------------
13694:         Bra
13695:         [ab]{2,3}?
13696:         Ket
13697:         End
13698: ------------------------------------------------------------------
13699:     aaaa
13700:  0: aa
13701: 
13702: /[ab]{2,}/BZ
13703: ------------------------------------------------------------------
13704:         Bra
13705:         [ab]{2,}+
13706:         Ket
13707:         End
13708: ------------------------------------------------------------------
13709:     aaaa
13710:  0: aaaa
13711: 
13712: /[ab]{2,}?/BZ
13713: ------------------------------------------------------------------
13714:         Bra
13715:         [ab]{2,}?
13716:         Ket
13717:         End
13718: ------------------------------------------------------------------
13719:     aaaa
13720:  0: aa
13721: 
13722: /\d+\s{0,5}=\s*\S?=\w{0,4}\W*/BZ
13723: ------------------------------------------------------------------
13724:         Bra
13725:         \d++
13726:         \s{0,5}+
13727:         =
13728:         \s*+
13729:         \S?
13730:         =
13731:         \w{0,4}+
13732:         \W*+
13733:         Ket
13734:         End
13735: ------------------------------------------------------------------
13736: 
13737: /[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/BZ
13738: ------------------------------------------------------------------
13739:         Bra
13740:         [a-d]{5,12}+
13741:         [0-9e-z]*+
13742:         #
13743:         [\x00-`{-\xff] (neg)++
13744:         [b-y]*+
13745:         a
13746:         [2-7]?+
13747:         [\x00-/:-`{-\xff] (neg)++
13748:         Ket
13749:         End
13750: ------------------------------------------------------------------
13751: 
13752: /[a-z]*\s#[ \t]?\S#[a-c]*\S#[C-G]+?\d#[4-8]*\D#[4-9,]*\D#[!$]{0,5}\w#[M-Xf-l]+\W#[a-c,]?\W/BZ
13753: ------------------------------------------------------------------
13754:         Bra
13755:         [a-z]*+
13756:         \s
13757:         #
13758:         [\x09 ]?+
13759:         \S
13760:         #
13761:         [a-c]*
13762:         \S
13763:         #
13764:         [C-G]++
13765:         \d
13766:         #
13767:         [4-8]*+
13768:         \D
13769:         #
13770:         [,4-9]*
13771:         \D
13772:         #
13773:         [!$]{0,5}+
13774:         \w
13775:         #
13776:         [M-Xf-l]++
13777:         \W
13778:         #
13779:         [,a-c]?
13780:         \W
13781:         Ket
13782:         End
13783: ------------------------------------------------------------------
13784: 
13785: /a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/BZ
13786: ------------------------------------------------------------------
13787:         Bra
13788:         a+
13789:         Brazero
13790:         CBra 1
13791:         aa
13792:         Alt
13793:         bb
13794:         KetRmax
13795:         c#
13796:         a*
13797:         Brazero
13798:         CBra 2
13799:         bb
13800:         Alt
13801:         cc
13802:         KetRmax
13803:         a#
13804:         a?+
13805:         Brazero
13806:         CBra 3
13807:         bb
13808:         Alt
13809:         cc
13810:         KetRmax
13811:         d#
13812:         [a-f]*
13813:         Brazero
13814:         CBra 4
13815:         g
13816:         Alt
13817:         hh
13818:         KetRmax
13819:         f
13820:         Ket
13821:         End
13822: ------------------------------------------------------------------
13823: 
13824: /[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/BZ
13825: ------------------------------------------------------------------
13826:         Bra
13827:         [a-f]*+
13828:         Brazero
13829:         CBra 1
13830:         g
13831:         Alt
13832:         hh
13833:         Alt
13834:         i
13835:         KetRmax
13836:         i#
13837:         [a-x]{4,}
13838:         Brazero
13839:         SCBra 2
13840:         y{0,6}
13841:         KetRmax
13842:         y#
13843:         [a-k]++
13844:         CBra 3
13845:         ll
13846:         Alt
13847:         mm
13848:         KetRmax
13849:         n
13850:         Ket
13851:         End
13852: ------------------------------------------------------------------
13853: 
13854: /[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/BZ
13855: ------------------------------------------------------------------
13856:         Bra
13857:         [a-f]*+
13858:         Once_NC
13859:         gg
13860:         Alt
13861:         hh
13862:         KetRmax
13863:         #
13864:         [a-f]*+
13865:         Brazero
13866:         Once_NC
13867:         gg
13868:         Alt
13869:         hh
13870:         Ket
13871:         #
13872:         [a-f]*
13873:         Brazero
13874:         Once_NC
13875:         gg
13876:         Alt
13877:         hh
13878:         KetRmax
13879:         a#
13880:         [a-f]*+
13881:         Brazero
13882:         Once_NC
13883:         gg
13884:         Alt
13885:         hh
13886:         KetRmax
13887:         h
13888:         Ket
13889:         End
13890: ------------------------------------------------------------------
13891: 
13892: /[a-c]*d/DZS
13893: ------------------------------------------------------------------
13894:         Bra
13895:         [a-c]*+
13896:         d
13897:         Ket
13898:         End
13899: ------------------------------------------------------------------
13900: Capturing subpattern count = 0
13901: No options
13902: No first char
13903: Need char = 'd'
13904: Subject length lower bound = 1
13905: Starting byte set: a b c d 
13906: 
13907: /[a-c]+d/DZS
13908: ------------------------------------------------------------------
13909:         Bra
13910:         [a-c]++
13911:         d
13912:         Ket
13913:         End
13914: ------------------------------------------------------------------
13915: Capturing subpattern count = 0
13916: No options
13917: No first char
13918: Need char = 'd'
13919: Subject length lower bound = 2
13920: Starting byte set: a b c 
13921: 
13922: /[a-c]?d/DZS
13923: ------------------------------------------------------------------
13924:         Bra
13925:         [a-c]?+
13926:         d
13927:         Ket
13928:         End
13929: ------------------------------------------------------------------
13930: Capturing subpattern count = 0
13931: No options
13932: No first char
13933: Need char = 'd'
13934: Subject length lower bound = 1
13935: Starting byte set: a b c d 
13936: 
13937: /[a-c]{4,6}d/DZS
13938: ------------------------------------------------------------------
13939:         Bra
13940:         [a-c]{4,6}+
13941:         d
13942:         Ket
13943:         End
13944: ------------------------------------------------------------------
13945: Capturing subpattern count = 0
13946: No options
13947: No first char
13948: Need char = 'd'
13949: Subject length lower bound = 5
13950: Starting byte set: a b c 
13951: 
13952: /[a-c]{0,6}d/DZS
13953: ------------------------------------------------------------------
13954:         Bra
13955:         [a-c]{0,6}+
13956:         d
13957:         Ket
13958:         End
13959: ------------------------------------------------------------------
13960: Capturing subpattern count = 0
13961: No options
13962: No first char
13963: Need char = 'd'
13964: Subject length lower bound = 1
13965: Starting byte set: a b c d 
13966: 
13967: /-- End of special auto-possessive tests --/
13968: 
13969: /^A\o{1239}B/
13970: Failed: non-octal character in \o{} (closing brace missing?) at offset 8
13971: 
13972: /^A\oB/
13973: Failed: missing opening brace after \o at offset 3
13974: 
13975: /^A\x{zz}B/ 
13976: Failed: non-hex character in \x{} (closing brace missing?) at offset 5
13977: 
13978: /^A\x{12Z/
13979: Failed: non-hex character in \x{} (closing brace missing?) at offset 7
13980: 
13981: /^A\x{/
13982: Failed: non-hex character in \x{} (closing brace missing?) at offset 5
13983: 
13984: /[ab]++/BZO
13985: ------------------------------------------------------------------
13986:         Bra
13987:         [ab]++
13988:         Ket
13989:         End
13990: ------------------------------------------------------------------
13991: 
13992: /[^ab]*+/BZO
13993: ------------------------------------------------------------------
13994:         Bra
13995:         [\x00-`c-\xff] (neg)*+
13996:         Ket
13997:         End
13998: ------------------------------------------------------------------
13999: 
14000: /a{4}+/BZO
14001: ------------------------------------------------------------------
14002:         Bra
14003:         a{4}
14004:         Ket
14005:         End
14006: ------------------------------------------------------------------
14007: 
14008: /a{4}+/BZOi
14009: ------------------------------------------------------------------
14010:         Bra
14011:      /i a{4}
14012:         Ket
14013:         End
14014: ------------------------------------------------------------------
14015: 
14016: /[a-[:digit:]]+/
14017: Failed: invalid range in character class at offset 3
14018: 
14019: /[A-[:digit:]]+/
14020: Failed: invalid range in character class at offset 3
14021: 
14022: /[a-[.xxx.]]+/
14023: Failed: invalid range in character class at offset 3
14024: 
14025: /[a-[=xxx=]]+/
14026: Failed: invalid range in character class at offset 3
14027: 
14028: /[a-[!xxx!]]+/
14029: Failed: range out of order in character class at offset 3
14030: 
14031: /[A-[!xxx!]]+/
14032:     A]]]
14033:  0: A]]]
14034: 
14035: /[a-\d]+/
14036: Failed: invalid range in character class at offset 4
14037: 
14038: /(?<0abc>xx)/
14039: Failed: group name must start with a non-digit at offset 3
14040: 
14041: /(?&1abc)xx(?<1abc>y)/
14042: Failed: group name must start with a non-digit at offset 3
14043: 
14044: /(?<ab-cd>xx)/
14045: Failed: syntax error in subpattern name (missing terminator) at offset 5
14046: 
14047: /(?'0abc'xx)/
14048: Failed: group name must start with a non-digit at offset 3
14049: 
14050: /(?P<0abc>xx)/
14051: Failed: group name must start with a non-digit at offset 4
14052: 
14053: /\k<5ghj>/
14054: Failed: group name must start with a non-digit at offset 3
14055: 
14056: /\k'5ghj'/
14057: Failed: group name must start with a non-digit at offset 3
14058: 
14059: /\k{2fgh}/
14060: Failed: group name must start with a non-digit at offset 3
14061: 
14062: /(?P=8yuki)/
14063: Failed: group name must start with a non-digit at offset 4
14064: 
14065: /\g{4df}/
14066: Failed: group name must start with a non-digit at offset 3
14067: 
14068: /(?&1abc)xx(?<1abc>y)/
14069: Failed: group name must start with a non-digit at offset 3
14070: 
14071: /(?P>1abc)xx(?<1abc>y)/
14072: Failed: group name must start with a non-digit at offset 4
14073: 
14074: /\g'3gh'/
14075: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 7
14076: 
14077: /\g<5fg>/
14078: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 7
14079: 
14080: /(?(<4gh>)abc)/
14081: Failed: group name must start with a non-digit at offset 4
14082: 
14083: /(?('4gh')abc)/
14084: Failed: group name must start with a non-digit at offset 4
14085: 
14086: /(?(4gh)abc)/
14087: Failed: malformed number or name after (?( at offset 4
14088: 
14089: /(?(R&6yh)abc)/
14090: Failed: group name must start with a non-digit at offset 5
14091: 
14092: /-- Test the ugly "start or end of word" compatibility syntax --/
14093: 
14094: /[[:<:]]red[[:>:]]/BZ
14095: ------------------------------------------------------------------
14096:         Bra
14097:         \b
14098:         Assert
14099:         \w
14100:         Ket
14101:         red
14102:         \b
14103:         AssertB
14104:         Reverse
14105:         \w
14106:         Ket
14107:         Ket
14108:         End
14109: ------------------------------------------------------------------
14110:     little red riding hood
14111:  0: red
14112:     a /red/ thing 
14113:  0: red
14114:     red is a colour
14115:  0: red
14116:     put it all on red  
14117:  0: red
14118:     ** Failers
14119: No match
14120:     no reduction
14121: No match
14122:     Alfred Winifred
14123: No match
14124:     
14125: /[a[:<:]] should give error/ 
14126: Failed: unknown POSIX class name at offset 4
14127: 
14128: /-- End of testinput2 --/

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