File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / pcre / testdata / testoutput2
Revision 1.1.1.4 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Mon Jul 22 08:25:57 2013 UTC (11 years ago) by misho
Branches: pcre, MAIN
CVS tags: v8_33, HEAD
8.33

    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: /(a)b|/I
   12: Capturing subpattern count = 1
   13: No options
   14: No first char
   15: No need char
   16: 
   17: /abc/I
   18: Capturing subpattern count = 0
   19: No options
   20: First char = 'a'
   21: Need char = 'c'
   22:     abc
   23:  0: abc
   24:     defabc
   25:  0: abc
   26:     \Aabc
   27:  0: abc
   28:     *** Failers
   29: No match
   30:     \Adefabc
   31: No match
   32:     ABC
   33: No match
   34: 
   35: /^abc/I
   36: Capturing subpattern count = 0
   37: Options: anchored
   38: No first char
   39: No need char
   40:     abc
   41:  0: abc
   42:     \Aabc
   43:  0: abc
   44:     *** Failers
   45: No match
   46:     defabc
   47: No match
   48:     \Adefabc
   49: No match
   50: 
   51: /a+bc/I
   52: Capturing subpattern count = 0
   53: No options
   54: First char = 'a'
   55: Need char = 'c'
   56: 
   57: /a*bc/I
   58: Capturing subpattern count = 0
   59: No options
   60: No first char
   61: Need char = 'c'
   62: 
   63: /a{3}bc/I
   64: Capturing subpattern count = 0
   65: No options
   66: First char = 'a'
   67: Need char = 'c'
   68: 
   69: /(abc|a+z)/I
   70: Capturing subpattern count = 1
   71: No options
   72: First char = 'a'
   73: No need char
   74: 
   75: /^abc$/I
   76: Capturing subpattern count = 0
   77: Options: anchored
   78: No first char
   79: No need char
   80:     abc
   81:  0: abc
   82:     *** Failers
   83: No match
   84:     def\nabc
   85: No match
   86: 
   87: /ab\idef/X
   88: Failed: unrecognized character follows \ at offset 3
   89: 
   90: /(?X)ab\idef/X
   91: Failed: unrecognized character follows \ at offset 7
   92: 
   93: /x{5,4}/
   94: Failed: numbers out of order in {} quantifier at offset 5
   95: 
   96: /z{65536}/
   97: Failed: number too big in {} quantifier at offset 7
   98: 
   99: /[abcd/
  100: Failed: missing terminating ] for character class at offset 5
  101: 
  102: /(?X)[\B]/
  103: Failed: invalid escape sequence in character class at offset 6
  104: 
  105: /(?X)[\R]/
  106: Failed: invalid escape sequence in character class at offset 6
  107: 
  108: /(?X)[\X]/
  109: Failed: invalid escape sequence in character class at offset 6
  110: 
  111: /[\B]/BZ
  112: ------------------------------------------------------------------
  113:         Bra
  114:         B
  115:         Ket
  116:         End
  117: ------------------------------------------------------------------
  118: 
  119: /[\R]/BZ
  120: ------------------------------------------------------------------
  121:         Bra
  122:         R
  123:         Ket
  124:         End
  125: ------------------------------------------------------------------
  126: 
  127: /[\X]/BZ
  128: ------------------------------------------------------------------
  129:         Bra
  130:         X
  131:         Ket
  132:         End
  133: ------------------------------------------------------------------
  134: 
  135: /[z-a]/
  136: Failed: range out of order in character class at offset 3
  137: 
  138: /^*/
  139: Failed: nothing to repeat at offset 1
  140: 
  141: /(abc/
  142: Failed: missing ) at offset 4
  143: 
  144: /(?# abc/
  145: Failed: missing ) after comment at offset 7
  146: 
  147: /(?z)abc/
  148: Failed: unrecognized character after (? or (?- at offset 2
  149: 
  150: /.*b/I
  151: Capturing subpattern count = 0
  152: No options
  153: First char at start or follows newline
  154: Need char = 'b'
  155: 
  156: /.*?b/I
  157: Capturing subpattern count = 0
  158: No options
  159: First char at start or follows newline
  160: Need char = 'b'
  161: 
  162: /cat|dog|elephant/I
  163: Capturing subpattern count = 0
  164: No options
  165: No first char
  166: No need char
  167:     this sentence eventually mentions a cat
  168:  0: cat
  169:     this sentences rambles on and on for a while and then reaches elephant
  170:  0: elephant
  171: 
  172: /cat|dog|elephant/IS
  173: Capturing subpattern count = 0
  174: No options
  175: No first char
  176: No need char
  177: Subject length lower bound = 3
  178: Starting byte set: c d e 
  179:     this sentence eventually mentions a cat
  180:  0: cat
  181:     this sentences rambles on and on for a while and then reaches elephant
  182:  0: elephant
  183: 
  184: /cat|dog|elephant/IiS
  185: Capturing subpattern count = 0
  186: Options: caseless
  187: No first char
  188: No need char
  189: Subject length lower bound = 3
  190: Starting byte set: C D E c d e 
  191:     this sentence eventually mentions a CAT cat
  192:  0: CAT
  193:     this sentences rambles on and on for a while to elephant ElePhant
  194:  0: elephant
  195: 
  196: /a|[bcd]/IS
  197: Capturing subpattern count = 0
  198: No options
  199: No first char
  200: No need char
  201: Subject length lower bound = 1
  202: Starting byte set: a b c d 
  203: 
  204: /(a|[^\dZ])/IS
  205: Capturing subpattern count = 1
  206: No options
  207: No first char
  208: No need char
  209: Subject length lower bound = 1
  210: Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 
  211:   \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 
  212:   \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = > 
  213:   ? @ 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 
  214:   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 
  215:   \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 
  216:   \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 
  217:   \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 
  218:   \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf 
  219:   \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce 
  220:   \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd 
  221:   \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec 
  222:   \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb 
  223:   \xfc \xfd \xfe \xff 
  224: 
  225: /(a|b)*[\s]/IS
  226: Capturing subpattern count = 1
  227: No options
  228: No first char
  229: No need char
  230: Subject length lower bound = 1
  231: Starting byte set: \x09 \x0a \x0c \x0d \x20 a b 
  232: 
  233: /(ab\2)/
  234: Failed: reference to non-existent subpattern at offset 6
  235: 
  236: /{4,5}abc/
  237: Failed: nothing to repeat at offset 4
  238: 
  239: /(a)(b)(c)\2/I
  240: Capturing subpattern count = 3
  241: Max back reference = 2
  242: No options
  243: First char = 'a'
  244: Need char = 'c'
  245:     abcb
  246:  0: abcb
  247:  1: a
  248:  2: b
  249:  3: c
  250:     \O0abcb
  251: Matched, but too many substrings
  252:     \O3abcb
  253: Matched, but too many substrings
  254:  0: abcb
  255:     \O6abcb
  256: Matched, but too many substrings
  257:  0: abcb
  258:  1: a
  259:     \O9abcb
  260: Matched, but too many substrings
  261:  0: abcb
  262:  1: a
  263:  2: b
  264:     \O12abcb
  265:  0: abcb
  266:  1: a
  267:  2: b
  268:  3: c
  269: 
  270: /(a)bc|(a)(b)\2/I
  271: Capturing subpattern count = 3
  272: Max back reference = 2
  273: No options
  274: First char = 'a'
  275: No need char
  276:     abc
  277:  0: abc
  278:  1: a
  279:     \O0abc
  280: Matched, but too many substrings
  281:     \O3abc
  282: Matched, but too many substrings
  283:  0: abc
  284:     \O6abc
  285:  0: abc
  286:  1: a
  287:     aba
  288:  0: aba
  289:  1: <unset>
  290:  2: a
  291:  3: b
  292:     \O0aba
  293: Matched, but too many substrings
  294:     \O3aba
  295: Matched, but too many substrings
  296:  0: aba
  297:     \O6aba
  298: Matched, but too many substrings
  299:  0: aba
  300:  1: <unset>
  301:     \O9aba
  302: Matched, but too many substrings
  303:  0: aba
  304:  1: <unset>
  305:  2: a
  306:     \O12aba
  307:  0: aba
  308:  1: <unset>
  309:  2: a
  310:  3: b
  311: 
  312: /abc$/IE
  313: Capturing subpattern count = 0
  314: Options: dollar_endonly
  315: First char = 'a'
  316: Need char = 'c'
  317:     abc
  318:  0: abc
  319:     *** Failers
  320: No match
  321:     abc\n
  322: No match
  323:     abc\ndef
  324: No match
  325: 
  326: /(a)(b)(c)(d)(e)\6/
  327: Failed: reference to non-existent subpattern at offset 17
  328: 
  329: /the quick brown fox/I
  330: Capturing subpattern count = 0
  331: No options
  332: First char = 't'
  333: Need char = 'x'
  334:     the quick brown fox
  335:  0: the quick brown fox
  336:     this is a line with the quick brown fox
  337:  0: the quick brown fox
  338: 
  339: /the quick brown fox/IA
  340: Capturing subpattern count = 0
  341: Options: anchored
  342: No first char
  343: No need char
  344:     the quick brown fox
  345:  0: the quick brown fox
  346:     *** Failers
  347: No match
  348:     this is a line with the quick brown fox
  349: No match
  350: 
  351: /ab(?z)cd/
  352: Failed: unrecognized character after (? or (?- at offset 4
  353: 
  354: /^abc|def/I
  355: Capturing subpattern count = 0
  356: No options
  357: No first char
  358: No need char
  359:     abcdef
  360:  0: abc
  361:     abcdef\B
  362:  0: def
  363: 
  364: /.*((abc)$|(def))/I
  365: Capturing subpattern count = 3
  366: No options
  367: First char at start or follows newline
  368: No need char
  369:     defabc
  370:  0: defabc
  371:  1: abc
  372:  2: abc
  373:     \Zdefabc
  374:  0: def
  375:  1: def
  376:  2: <unset>
  377:  3: def
  378: 
  379: /)/
  380: Failed: unmatched parentheses at offset 0
  381: 
  382: /a[]b/
  383: Failed: missing terminating ] for character class at offset 4
  384: 
  385: /[^aeiou ]{3,}/I
  386: Capturing subpattern count = 0
  387: No options
  388: No first char
  389: No need char
  390:     co-processors, and for
  391:  0: -pr
  392: 
  393: /<.*>/I
  394: Capturing subpattern count = 0
  395: No options
  396: First char = '<'
  397: Need char = '>'
  398:     abc<def>ghi<klm>nop
  399:  0: <def>ghi<klm>
  400: 
  401: /<.*?>/I
  402: Capturing subpattern count = 0
  403: No options
  404: First char = '<'
  405: Need char = '>'
  406:     abc<def>ghi<klm>nop
  407:  0: <def>
  408: 
  409: /<.*>/IU
  410: Capturing subpattern count = 0
  411: Options: ungreedy
  412: First char = '<'
  413: Need char = '>'
  414:     abc<def>ghi<klm>nop
  415:  0: <def>
  416: 
  417: /(?U)<.*>/I
  418: Capturing subpattern count = 0
  419: Options: ungreedy
  420: First char = '<'
  421: Need char = '>'
  422:     abc<def>ghi<klm>nop
  423:  0: <def>
  424: 
  425: /<.*?>/IU
  426: Capturing subpattern count = 0
  427: Options: ungreedy
  428: First char = '<'
  429: Need char = '>'
  430:     abc<def>ghi<klm>nop
  431:  0: <def>ghi<klm>
  432: 
  433: /={3,}/IU
  434: Capturing subpattern count = 0
  435: Options: ungreedy
  436: First char = '='
  437: Need char = '='
  438:     abc========def
  439:  0: ===
  440: 
  441: /(?U)={3,}?/I
  442: Capturing subpattern count = 0
  443: Options: ungreedy
  444: First char = '='
  445: Need char = '='
  446:     abc========def
  447:  0: ========
  448: 
  449: /(?<!bar|cattle)foo/I
  450: Capturing subpattern count = 0
  451: Max lookbehind = 6
  452: No options
  453: First char = 'f'
  454: Need char = 'o'
  455:     foo
  456:  0: foo
  457:     catfoo
  458:  0: foo
  459:     *** Failers
  460: No match
  461:     the barfoo
  462: No match
  463:     and cattlefoo
  464: No match
  465: 
  466: /(?<=a+)b/
  467: Failed: lookbehind assertion is not fixed length at offset 6
  468: 
  469: /(?<=aaa|b{0,3})b/
  470: Failed: lookbehind assertion is not fixed length at offset 14
  471: 
  472: /(?<!(foo)a\1)bar/
  473: Failed: lookbehind assertion is not fixed length at offset 12
  474: 
  475: /(?i)abc/I
  476: Capturing subpattern count = 0
  477: Options: caseless
  478: First char = 'a' (caseless)
  479: Need char = 'c' (caseless)
  480: 
  481: /(a|(?m)a)/I
  482: Capturing subpattern count = 1
  483: No options
  484: First char = 'a'
  485: No need char
  486: 
  487: /(?i)^1234/I
  488: Capturing subpattern count = 0
  489: Options: anchored caseless
  490: No first char
  491: No need char
  492: 
  493: /(^b|(?i)^d)/I
  494: Capturing subpattern count = 1
  495: Options: anchored
  496: No first char
  497: No need char
  498: 
  499: /(?s).*/I
  500: Capturing subpattern count = 0
  501: Options: anchored dotall
  502: No first char
  503: No need char
  504: 
  505: /[abcd]/IS
  506: Capturing subpattern count = 0
  507: No options
  508: No first char
  509: No need char
  510: Subject length lower bound = 1
  511: Starting byte set: a b c d 
  512: 
  513: /(?i)[abcd]/IS
  514: Capturing subpattern count = 0
  515: Options: caseless
  516: No first char
  517: No need char
  518: Subject length lower bound = 1
  519: Starting byte set: A B C D a b c d 
  520: 
  521: /(?m)[xy]|(b|c)/IS
  522: Capturing subpattern count = 1
  523: Options: multiline
  524: No first char
  525: No need char
  526: Subject length lower bound = 1
  527: Starting byte set: b c x y 
  528: 
  529: /(^a|^b)/Im
  530: Capturing subpattern count = 1
  531: Options: multiline
  532: First char at start or follows newline
  533: No need char
  534: 
  535: /(?i)(^a|^b)/Im
  536: Capturing subpattern count = 1
  537: Options: caseless multiline
  538: First char at start or follows newline
  539: No need char
  540: 
  541: /(a)(?(1)a|b|c)/
  542: Failed: conditional group contains more than two branches at offset 13
  543: 
  544: /(?(?=a)a|b|c)/
  545: Failed: conditional group contains more than two branches at offset 12
  546: 
  547: /(?(1a)/
  548: Failed: missing ) at offset 6
  549: 
  550: /(?(1a))/
  551: Failed: reference to non-existent subpattern at offset 6
  552: 
  553: /(?(?i))/
  554: Failed: assertion expected after (?( at offset 3
  555: 
  556: /(?(abc))/
  557: Failed: reference to non-existent subpattern at offset 7
  558: 
  559: /(?(?<ab))/
  560: Failed: syntax error in subpattern name (missing terminator) at offset 7
  561: 
  562: /((?s)blah)\s+\1/I
  563: Capturing subpattern count = 1
  564: Max back reference = 1
  565: No options
  566: First char = 'b'
  567: Need char = 'h'
  568: 
  569: /((?i)blah)\s+\1/I
  570: Capturing subpattern count = 1
  571: Max back reference = 1
  572: No options
  573: First char = 'b' (caseless)
  574: Need char = 'h' (caseless)
  575: 
  576: /((?i)b)/IDZS
  577: ------------------------------------------------------------------
  578:         Bra
  579:         CBra 1
  580:      /i b
  581:         Ket
  582:         Ket
  583:         End
  584: ------------------------------------------------------------------
  585: Capturing subpattern count = 1
  586: No options
  587: First char = 'b' (caseless)
  588: No need char
  589: Subject length lower bound = 1
  590: No set of starting bytes
  591: 
  592: /(a*b|(?i:c*(?-i)d))/IS
  593: Capturing subpattern count = 1
  594: No options
  595: No first char
  596: No need char
  597: Subject length lower bound = 1
  598: Starting byte set: C a b c d 
  599: 
  600: /a$/I
  601: Capturing subpattern count = 0
  602: No options
  603: First char = 'a'
  604: No need char
  605:     a
  606:  0: a
  607:     a\n
  608:  0: a
  609:     *** Failers
  610: No match
  611:     \Za
  612: No match
  613:     \Za\n
  614: No match
  615: 
  616: /a$/Im
  617: Capturing subpattern count = 0
  618: Options: multiline
  619: First char = 'a'
  620: No need char
  621:     a
  622:  0: a
  623:     a\n
  624:  0: a
  625:     \Za\n
  626:  0: a
  627:     *** Failers
  628: No match
  629:     \Za
  630: No match
  631: 
  632: /\Aabc/Im
  633: Capturing subpattern count = 0
  634: Max lookbehind = 1
  635: Options: anchored multiline
  636: No first char
  637: No need char
  638: 
  639: /^abc/Im
  640: Capturing subpattern count = 0
  641: Options: multiline
  642: First char at start or follows newline
  643: Need char = 'c'
  644: 
  645: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
  646: Capturing subpattern count = 5
  647: Options: anchored
  648: No first char
  649: No need char
  650:   aaaaabbbbbcccccdef
  651:  0: aaaaabbbbbcccccdef
  652:  1: aaaaabbbbbcccccdef
  653:  2: aaaaa
  654:  3: b
  655:  4: bbbbccccc
  656:  5: def
  657: 
  658: /(?<=foo)[ab]/IS
  659: Capturing subpattern count = 0
  660: Max lookbehind = 3
  661: No options
  662: No first char
  663: No need char
  664: Subject length lower bound = 1
  665: Starting byte set: a b 
  666: 
  667: /(?<!foo)(alpha|omega)/IS
  668: Capturing subpattern count = 1
  669: Max lookbehind = 3
  670: No options
  671: No first char
  672: Need char = 'a'
  673: Subject length lower bound = 5
  674: Starting byte set: a o 
  675: 
  676: /(?!alphabet)[ab]/IS
  677: Capturing subpattern count = 0
  678: No options
  679: No first char
  680: No need char
  681: Subject length lower bound = 1
  682: Starting byte set: a b 
  683: 
  684: /(?<=foo\n)^bar/Im
  685: Capturing subpattern count = 0
  686: Max lookbehind = 4
  687: Contains explicit CR or LF match
  688: Options: multiline
  689: No first char
  690: Need char = 'r'
  691:     foo\nbarbar
  692:  0: bar
  693:     ***Failers
  694: No match
  695:     rhubarb
  696: No match
  697:     barbell
  698: No match
  699:     abc\nbarton
  700: No match
  701: 
  702: /^(?<=foo\n)bar/Im
  703: Capturing subpattern count = 0
  704: Max lookbehind = 4
  705: Contains explicit CR or LF match
  706: Options: multiline
  707: First char at start or follows newline
  708: Need char = 'r'
  709:     foo\nbarbar
  710:  0: bar
  711:     ***Failers
  712: No match
  713:     rhubarb
  714: No match
  715:     barbell
  716: No match
  717:     abc\nbarton
  718: No match
  719: 
  720: /(?>^abc)/Im
  721: Capturing subpattern count = 0
  722: Options: multiline
  723: First char at start or follows newline
  724: Need char = 'c'
  725:     abc
  726:  0: abc
  727:     def\nabc
  728:  0: abc
  729:     *** Failers
  730: No match
  731:     defabc
  732: No match
  733: 
  734: /(?<=ab(c+)d)ef/
  735: Failed: lookbehind assertion is not fixed length at offset 11
  736: 
  737: /(?<=ab(?<=c+)d)ef/
  738: Failed: lookbehind assertion is not fixed length at offset 12
  739: 
  740: /(?<=ab(c|de)f)g/
  741: Failed: lookbehind assertion is not fixed length at offset 13
  742: 
  743: /The next three are in testinput2 because they have variable length branches/
  744: 
  745: /(?<=bullock|donkey)-cart/I
  746: Capturing subpattern count = 0
  747: Max lookbehind = 7
  748: No options
  749: First char = '-'
  750: Need char = 't'
  751:     the bullock-cart
  752:  0: -cart
  753:     a donkey-cart race
  754:  0: -cart
  755:     *** Failers
  756: No match
  757:     cart
  758: No match
  759:     horse-and-cart
  760: No match
  761: 
  762: /(?<=ab(?i)x|y|z)/I
  763: Capturing subpattern count = 0
  764: Max lookbehind = 3
  765: No options
  766: No first char
  767: No need char
  768: 
  769: /(?>.*)(?<=(abcd)|(xyz))/I
  770: Capturing subpattern count = 2
  771: Max lookbehind = 4
  772: No options
  773: No first char
  774: No need char
  775:     alphabetabcd
  776:  0: alphabetabcd
  777:  1: abcd
  778:     endingxyz
  779:  0: endingxyz
  780:  1: <unset>
  781:  2: xyz
  782: 
  783: /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
  784: Capturing subpattern count = 0
  785: Max lookbehind = 4
  786: No options
  787: First char = 'Z'
  788: Need char = 'Z'
  789:     abxyZZ
  790:  0: ZZ
  791:     abXyZZ
  792:  0: ZZ
  793:     ZZZ
  794:  0: ZZ
  795:     zZZ
  796:  0: ZZ
  797:     bZZ
  798:  0: ZZ
  799:     BZZ
  800:  0: ZZ
  801:     *** Failers
  802: No match
  803:     ZZ
  804: No match
  805:     abXYZZ
  806: No match
  807:     zzz
  808: No match
  809:     bzz
  810: No match
  811: 
  812: /(?<!(foo)a)bar/I
  813: Capturing subpattern count = 1
  814: Max lookbehind = 4
  815: No options
  816: First char = 'b'
  817: Need char = 'r'
  818:     bar
  819:  0: bar
  820:     foobbar
  821:  0: bar
  822:     *** Failers
  823: No match
  824:     fooabar
  825: No match
  826: 
  827: /This one is here because Perl behaves differently; see also the following/I
  828: Capturing subpattern count = 0
  829: No options
  830: First char = 'T'
  831: Need char = 'g'
  832: 
  833: /^(a\1?){4}$/I
  834: Capturing subpattern count = 1
  835: Max back reference = 1
  836: Options: anchored
  837: No first char
  838: No need char
  839:     aaaa
  840: No match
  841:     aaaaaa
  842: No match
  843:     
  844: /Perl does not fail these two for the final subjects. Neither did PCRE until/
  845: /release 8.01. The problem is in backtracking into a subpattern that contains/
  846: No match
  847: /a recursive reference to itself. PCRE has now made these into atomic patterns./
  848: No match
  849: 
  850: /^(xa|=?\1a){2}$/
  851:     xa=xaa
  852:  0: xa=xaa
  853:  1: =xaa
  854:     ** Failers
  855: No match
  856:     xa=xaaa
  857: No match
  858: 
  859: /^(xa|=?\1a)+$/
  860:     xa=xaa
  861:  0: xa=xaa
  862:  1: =xaa
  863:     ** Failers
  864: No match
  865:     xa=xaaa
  866: No match
  867: 
  868: /These are syntax tests from Perl 5.005/I
  869: Capturing subpattern count = 0
  870: No options
  871: First char = 'T'
  872: Need char = '5'
  873: 
  874: /a[b-a]/
  875: Failed: range out of order in character class at offset 4
  876: 
  877: /a[]b/
  878: Failed: missing terminating ] for character class at offset 4
  879: 
  880: /a[/
  881: Failed: missing terminating ] for character class at offset 2
  882: 
  883: /*a/
  884: Failed: nothing to repeat at offset 0
  885: 
  886: /(*)b/
  887: Failed: nothing to repeat at offset 1
  888: 
  889: /abc)/
  890: Failed: unmatched parentheses at offset 3
  891: 
  892: /(abc/
  893: Failed: missing ) at offset 4
  894: 
  895: /a**/
  896: Failed: nothing to repeat at offset 2
  897: 
  898: /)(/
  899: Failed: unmatched parentheses at offset 0
  900: 
  901: /\1/
  902: Failed: reference to non-existent subpattern at offset 2
  903: 
  904: /\2/
  905: Failed: reference to non-existent subpattern at offset 2
  906: 
  907: /(a)|\2/
  908: Failed: reference to non-existent subpattern at offset 6
  909: 
  910: /a[b-a]/Ii
  911: Failed: range out of order in character class at offset 4
  912: 
  913: /a[]b/Ii
  914: Failed: missing terminating ] for character class at offset 4
  915: 
  916: /a[/Ii
  917: Failed: missing terminating ] for character class at offset 2
  918: 
  919: /*a/Ii
  920: Failed: nothing to repeat at offset 0
  921: 
  922: /(*)b/Ii
  923: Failed: nothing to repeat at offset 1
  924: 
  925: /abc)/Ii
  926: Failed: unmatched parentheses at offset 3
  927: 
  928: /(abc/Ii
  929: Failed: missing ) at offset 4
  930: 
  931: /a**/Ii
  932: Failed: nothing to repeat at offset 2
  933: 
  934: /)(/Ii
  935: Failed: unmatched parentheses at offset 0
  936: 
  937: /:(?:/
  938: Failed: missing ) at offset 4
  939: 
  940: /(?<%)b/
  941: Failed: unrecognized character after (?< at offset 3
  942: 
  943: /a(?{)b/
  944: Failed: unrecognized character after (? or (?- at offset 3
  945: 
  946: /a(?{{})b/
  947: Failed: unrecognized character after (? or (?- 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: /(?(1?)a|b)/
  959: Failed: malformed number or name after (?( at offset 4
  960: 
  961: /[a[:xyz:/
  962: Failed: missing terminating ] for character class at offset 8
  963: 
  964: /(?<=x+)y/
  965: Failed: lookbehind assertion is not fixed length at offset 6
  966: 
  967: /a{37,17}/
  968: Failed: numbers out of order in {} quantifier at offset 7
  969: 
  970: /abc/\
  971: Failed: \ at end of pattern at offset 4
  972: 
  973: /abc/\i
  974: Failed: \ at end of pattern at offset 4
  975: 
  976: /(a)bc(d)/I
  977: Capturing subpattern count = 2
  978: No options
  979: First char = 'a'
  980: Need char = 'd'
  981:     abcd
  982:  0: abcd
  983:  1: a
  984:  2: d
  985:     abcd\C2
  986:  0: abcd
  987:  1: a
  988:  2: d
  989:  2C d (1)
  990:     abcd\C5
  991:  0: abcd
  992:  1: a
  993:  2: d
  994: copy substring 5 failed -7
  995: 
  996: /(.{20})/I
  997: Capturing subpattern count = 1
  998: No options
  999: No first char
 1000: No need char
 1001:     abcdefghijklmnopqrstuvwxyz
 1002:  0: abcdefghijklmnopqrst
 1003:  1: abcdefghijklmnopqrst
 1004:     abcdefghijklmnopqrstuvwxyz\C1
 1005:  0: abcdefghijklmnopqrst
 1006:  1: abcdefghijklmnopqrst
 1007:  1C abcdefghijklmnopqrst (20)
 1008:     abcdefghijklmnopqrstuvwxyz\G1
 1009:  0: abcdefghijklmnopqrst
 1010:  1: abcdefghijklmnopqrst
 1011:  1G abcdefghijklmnopqrst (20)
 1012: 
 1013: /(.{15})/I
 1014: Capturing subpattern count = 1
 1015: No options
 1016: No first char
 1017: No need char
 1018:     abcdefghijklmnopqrstuvwxyz
 1019:  0: abcdefghijklmno
 1020:  1: abcdefghijklmno
 1021:     abcdefghijklmnopqrstuvwxyz\C1\G1
 1022:  0: abcdefghijklmno
 1023:  1: abcdefghijklmno
 1024:  1C abcdefghijklmno (15)
 1025:  1G abcdefghijklmno (15)
 1026: 
 1027: /(.{16})/I
 1028: Capturing subpattern count = 1
 1029: No options
 1030: No first char
 1031: No need char
 1032:     abcdefghijklmnopqrstuvwxyz
 1033:  0: abcdefghijklmnop
 1034:  1: abcdefghijklmnop
 1035:     abcdefghijklmnopqrstuvwxyz\C1\G1\L
 1036:  0: abcdefghijklmnop
 1037:  1: abcdefghijklmnop
 1038:  1C abcdefghijklmnop (16)
 1039:  1G abcdefghijklmnop (16)
 1040:  0L abcdefghijklmnop
 1041:  1L abcdefghijklmnop
 1042: 
 1043: /^(a|(bc))de(f)/I
 1044: Capturing subpattern count = 3
 1045: Options: anchored
 1046: No first char
 1047: No need char
 1048:     adef\G1\G2\G3\G4\L
 1049:  0: adef
 1050:  1: a
 1051:  2: <unset>
 1052:  3: f
 1053:  1G a (1)
 1054:  2G  (0)
 1055:  3G f (1)
 1056: get substring 4 failed -7
 1057:  0L adef
 1058:  1L a
 1059:  2L 
 1060:  3L f
 1061:     bcdef\G1\G2\G3\G4\L
 1062:  0: bcdef
 1063:  1: bc
 1064:  2: bc
 1065:  3: f
 1066:  1G bc (2)
 1067:  2G bc (2)
 1068:  3G f (1)
 1069: get substring 4 failed -7
 1070:  0L bcdef
 1071:  1L bc
 1072:  2L bc
 1073:  3L f
 1074:     adefghijk\C0
 1075:  0: adef
 1076:  1: a
 1077:  2: <unset>
 1078:  3: f
 1079:  0C adef (4)
 1080: 
 1081: /^abc\00def/I
 1082: Capturing subpattern count = 0
 1083: Options: anchored
 1084: No first char
 1085: No need char
 1086:     abc\00def\L\C0
 1087:  0: abc\x00def
 1088:  0C abc\x00def (7)
 1089:  0L abc
 1090: 
 1091: /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
 1092: )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
 1093: )?)?)?)?)?)?)?)?)?otherword/I
 1094: Capturing subpattern count = 8
 1095: Contains explicit CR or LF match
 1096: No options
 1097: First char = 'w'
 1098: Need char = 'd'
 1099: 
 1100: /.*X/IDZ
 1101: ------------------------------------------------------------------
 1102:         Bra
 1103:         Any*
 1104:         X
 1105:         Ket
 1106:         End
 1107: ------------------------------------------------------------------
 1108: Capturing subpattern count = 0
 1109: No options
 1110: First char at start or follows newline
 1111: Need char = 'X'
 1112: 
 1113: /.*X/IDZs
 1114: ------------------------------------------------------------------
 1115:         Bra
 1116:         AllAny*
 1117:         X
 1118:         Ket
 1119:         End
 1120: ------------------------------------------------------------------
 1121: Capturing subpattern count = 0
 1122: Options: anchored dotall
 1123: No first char
 1124: Need char = 'X'
 1125: 
 1126: /(.*X|^B)/IDZ
 1127: ------------------------------------------------------------------
 1128:         Bra
 1129:         CBra 1
 1130:         Any*
 1131:         X
 1132:         Alt
 1133:         ^
 1134:         B
 1135:         Ket
 1136:         Ket
 1137:         End
 1138: ------------------------------------------------------------------
 1139: Capturing subpattern count = 1
 1140: No options
 1141: First char at start or follows newline
 1142: No need char
 1143: 
 1144: /(.*X|^B)/IDZs
 1145: ------------------------------------------------------------------
 1146:         Bra
 1147:         CBra 1
 1148:         AllAny*
 1149:         X
 1150:         Alt
 1151:         ^
 1152:         B
 1153:         Ket
 1154:         Ket
 1155:         End
 1156: ------------------------------------------------------------------
 1157: Capturing subpattern count = 1
 1158: Options: anchored dotall
 1159: No first char
 1160: No need char
 1161: 
 1162: /(?s)(.*X|^B)/IDZ
 1163: ------------------------------------------------------------------
 1164:         Bra
 1165:         CBra 1
 1166:         AllAny*
 1167:         X
 1168:         Alt
 1169:         ^
 1170:         B
 1171:         Ket
 1172:         Ket
 1173:         End
 1174: ------------------------------------------------------------------
 1175: Capturing subpattern count = 1
 1176: Options: anchored dotall
 1177: No first char
 1178: No need char
 1179: 
 1180: /(?s:.*X|^B)/IDZ
 1181: ------------------------------------------------------------------
 1182:         Bra
 1183:         Bra
 1184:         AllAny*
 1185:         X
 1186:         Alt
 1187:         ^
 1188:         B
 1189:         Ket
 1190:         Ket
 1191:         End
 1192: ------------------------------------------------------------------
 1193: Capturing subpattern count = 0
 1194: Options: anchored
 1195: No first char
 1196: No need char
 1197: 
 1198: /\Biss\B/I+
 1199: Capturing subpattern count = 0
 1200: Max lookbehind = 1
 1201: No options
 1202: First char = 'i'
 1203: Need char = 's'
 1204:     Mississippi
 1205:  0: iss
 1206:  0+ issippi
 1207: 
 1208: /iss/IG+
 1209: Capturing subpattern count = 0
 1210: No options
 1211: First char = 'i'
 1212: Need char = 's'
 1213:     Mississippi
 1214:  0: iss
 1215:  0+ issippi
 1216:  0: iss
 1217:  0+ ippi
 1218: 
 1219: /\Biss\B/IG+
 1220: Capturing subpattern count = 0
 1221: Max lookbehind = 1
 1222: No options
 1223: First char = 'i'
 1224: Need char = 's'
 1225:     Mississippi
 1226:  0: iss
 1227:  0+ issippi
 1228: 
 1229: /\Biss\B/Ig+
 1230: Capturing subpattern count = 0
 1231: Max lookbehind = 1
 1232: No options
 1233: First char = 'i'
 1234: Need char = 's'
 1235:     Mississippi
 1236:  0: iss
 1237:  0+ issippi
 1238:  0: iss
 1239:  0+ ippi
 1240:     *** Failers
 1241: No match
 1242:     Mississippi\A
 1243: No match
 1244: 
 1245: /(?<=[Ms])iss/Ig+
 1246: Capturing subpattern count = 0
 1247: Max lookbehind = 1
 1248: No options
 1249: First char = 'i'
 1250: Need char = 's'
 1251:     Mississippi
 1252:  0: iss
 1253:  0+ issippi
 1254:  0: iss
 1255:  0+ ippi
 1256: 
 1257: /(?<=[Ms])iss/IG+
 1258: Capturing subpattern count = 0
 1259: Max lookbehind = 1
 1260: No options
 1261: First char = 'i'
 1262: Need char = 's'
 1263:     Mississippi
 1264:  0: iss
 1265:  0+ issippi
 1266: 
 1267: /^iss/Ig+
 1268: Capturing subpattern count = 0
 1269: Options: anchored
 1270: No first char
 1271: No need char
 1272:     ississippi
 1273:  0: iss
 1274:  0+ issippi
 1275: 
 1276: /.*iss/Ig+
 1277: Capturing subpattern count = 0
 1278: No options
 1279: First char at start or follows newline
 1280: Need char = 's'
 1281:     abciss\nxyzisspqr
 1282:  0: abciss
 1283:  0+ \x0axyzisspqr
 1284:  0: xyziss
 1285:  0+ pqr
 1286: 
 1287: /.i./I+g
 1288: Capturing subpattern count = 0
 1289: No options
 1290: No first char
 1291: Need char = 'i'
 1292:     Mississippi
 1293:  0: Mis
 1294:  0+ sissippi
 1295:  0: sis
 1296:  0+ sippi
 1297:  0: sip
 1298:  0+ pi
 1299:     Mississippi\A
 1300:  0: Mis
 1301:  0+ sissippi
 1302:  0: sis
 1303:  0+ sippi
 1304:  0: sip
 1305:  0+ pi
 1306:     Missouri river
 1307:  0: Mis
 1308:  0+ souri river
 1309:  0: ri 
 1310:  0+ river
 1311:  0: riv
 1312:  0+ er
 1313:     Missouri river\A
 1314:  0: Mis
 1315:  0+ souri river
 1316: 
 1317: /^.is/I+g
 1318: Capturing subpattern count = 0
 1319: Options: anchored
 1320: No first char
 1321: No need char
 1322:     Mississippi
 1323:  0: Mis
 1324:  0+ sissippi
 1325: 
 1326: /^ab\n/Ig+
 1327: Capturing subpattern count = 0
 1328: Contains explicit CR or LF match
 1329: Options: anchored
 1330: No first char
 1331: No need char
 1332:     ab\nab\ncd
 1333:  0: ab\x0a
 1334:  0+ ab\x0acd
 1335: 
 1336: /^ab\n/Img+
 1337: Capturing subpattern count = 0
 1338: Contains explicit CR or LF match
 1339: Options: multiline
 1340: First char at start or follows newline
 1341: Need char = \x0a
 1342:     ab\nab\ncd
 1343:  0: ab\x0a
 1344:  0+ ab\x0acd
 1345:  0: ab\x0a
 1346:  0+ cd
 1347: 
 1348: /abc/I
 1349: Capturing subpattern count = 0
 1350: No options
 1351: First char = 'a'
 1352: Need char = 'c'
 1353: 
 1354: /abc|bac/I
 1355: Capturing subpattern count = 0
 1356: No options
 1357: No first char
 1358: Need char = 'c'
 1359: 
 1360: /(abc|bac)/I
 1361: Capturing subpattern count = 1
 1362: No options
 1363: No first char
 1364: Need char = 'c'
 1365: 
 1366: /(abc|(c|dc))/I
 1367: Capturing subpattern count = 2
 1368: No options
 1369: No first char
 1370: Need char = 'c'
 1371: 
 1372: /(abc|(d|de)c)/I
 1373: Capturing subpattern count = 2
 1374: No options
 1375: No first char
 1376: Need char = 'c'
 1377: 
 1378: /a*/I
 1379: Capturing subpattern count = 0
 1380: No options
 1381: No first char
 1382: No need char
 1383: 
 1384: /a+/I
 1385: Capturing subpattern count = 0
 1386: No options
 1387: First char = 'a'
 1388: No need char
 1389: 
 1390: /(baa|a+)/I
 1391: Capturing subpattern count = 1
 1392: No options
 1393: No first char
 1394: Need char = 'a'
 1395: 
 1396: /a{0,3}/I
 1397: Capturing subpattern count = 0
 1398: No options
 1399: No first char
 1400: No need char
 1401: 
 1402: /baa{3,}/I
 1403: Capturing subpattern count = 0
 1404: No options
 1405: First char = 'b'
 1406: Need char = 'a'
 1407: 
 1408: /"([^\\"]+|\\.)*"/I
 1409: Capturing subpattern count = 1
 1410: No options
 1411: First char = '"'
 1412: Need char = '"'
 1413: 
 1414: /(abc|ab[cd])/I
 1415: Capturing subpattern count = 1
 1416: No options
 1417: First char = 'a'
 1418: No need char
 1419: 
 1420: /(a|.)/I
 1421: Capturing subpattern count = 1
 1422: No options
 1423: No first char
 1424: No need char
 1425: 
 1426: /a|ba|\w/I
 1427: Capturing subpattern count = 0
 1428: No options
 1429: No first char
 1430: No need char
 1431: 
 1432: /abc(?=pqr)/I
 1433: Capturing subpattern count = 0
 1434: No options
 1435: First char = 'a'
 1436: Need char = 'r'
 1437: 
 1438: /...(?<=abc)/I
 1439: Capturing subpattern count = 0
 1440: Max lookbehind = 3
 1441: No options
 1442: No first char
 1443: No need char
 1444: 
 1445: /abc(?!pqr)/I
 1446: Capturing subpattern count = 0
 1447: No options
 1448: First char = 'a'
 1449: Need char = 'c'
 1450: 
 1451: /ab./I
 1452: Capturing subpattern count = 0
 1453: No options
 1454: First char = 'a'
 1455: Need char = 'b'
 1456: 
 1457: /ab[xyz]/I
 1458: Capturing subpattern count = 0
 1459: No options
 1460: First char = 'a'
 1461: Need char = 'b'
 1462: 
 1463: /abc*/I
 1464: Capturing subpattern count = 0
 1465: No options
 1466: First char = 'a'
 1467: Need char = 'b'
 1468: 
 1469: /ab.c*/I
 1470: Capturing subpattern count = 0
 1471: No options
 1472: First char = 'a'
 1473: Need char = 'b'
 1474: 
 1475: /a.c*/I
 1476: Capturing subpattern count = 0
 1477: No options
 1478: First char = 'a'
 1479: No need char
 1480: 
 1481: /.c*/I
 1482: Capturing subpattern count = 0
 1483: No options
 1484: No first char
 1485: No need char
 1486: 
 1487: /ac*/I
 1488: Capturing subpattern count = 0
 1489: No options
 1490: First char = 'a'
 1491: No need char
 1492: 
 1493: /(a.c*|b.c*)/I
 1494: Capturing subpattern count = 1
 1495: No options
 1496: No first char
 1497: No need char
 1498: 
 1499: /a.c*|aba/I
 1500: Capturing subpattern count = 0
 1501: No options
 1502: First char = 'a'
 1503: No need char
 1504: 
 1505: /.+a/I
 1506: Capturing subpattern count = 0
 1507: No options
 1508: No first char
 1509: Need char = 'a'
 1510: 
 1511: /(?=abcda)a.*/I
 1512: Capturing subpattern count = 0
 1513: No options
 1514: First char = 'a'
 1515: Need char = 'a'
 1516: 
 1517: /(?=a)a.*/I
 1518: Capturing subpattern count = 0
 1519: No options
 1520: First char = 'a'
 1521: No need char
 1522: 
 1523: /a(b)*/I
 1524: Capturing subpattern count = 1
 1525: No options
 1526: First char = 'a'
 1527: No need char
 1528: 
 1529: /a\d*/I
 1530: Capturing subpattern count = 0
 1531: No options
 1532: First char = 'a'
 1533: No need char
 1534: 
 1535: /ab\d*/I
 1536: Capturing subpattern count = 0
 1537: No options
 1538: First char = 'a'
 1539: Need char = 'b'
 1540: 
 1541: /a(\d)*/I
 1542: Capturing subpattern count = 1
 1543: No options
 1544: First char = 'a'
 1545: No need char
 1546: 
 1547: /abcde{0,0}/I
 1548: Capturing subpattern count = 0
 1549: No options
 1550: First char = 'a'
 1551: Need char = 'd'
 1552: 
 1553: /ab\d+/I
 1554: Capturing subpattern count = 0
 1555: No options
 1556: First char = 'a'
 1557: Need char = 'b'
 1558: 
 1559: /a(?(1)b)(.)/I
 1560: Capturing subpattern count = 1
 1561: No options
 1562: First char = 'a'
 1563: No need char
 1564: 
 1565: /a(?(1)bag|big)(.)/I
 1566: Capturing subpattern count = 1
 1567: No options
 1568: First char = 'a'
 1569: Need char = 'g'
 1570: 
 1571: /a(?(1)bag|big)*(.)/I
 1572: Capturing subpattern count = 1
 1573: No options
 1574: First char = 'a'
 1575: No need char
 1576: 
 1577: /a(?(1)bag|big)+(.)/I
 1578: Capturing subpattern count = 1
 1579: No options
 1580: First char = 'a'
 1581: Need char = 'g'
 1582: 
 1583: /a(?(1)b..|b..)(.)/I
 1584: Capturing subpattern count = 1
 1585: No options
 1586: First char = 'a'
 1587: Need char = 'b'
 1588: 
 1589: /ab\d{0}e/I
 1590: Capturing subpattern count = 0
 1591: No options
 1592: First char = 'a'
 1593: Need char = 'e'
 1594: 
 1595: /a?b?/I
 1596: Capturing subpattern count = 0
 1597: No options
 1598: No first char
 1599: No need char
 1600:     a
 1601:  0: a
 1602:     b
 1603:  0: b
 1604:     ab
 1605:  0: ab
 1606:     \
 1607:  0: 
 1608:     *** Failers
 1609:  0: 
 1610:     \N
 1611: No match
 1612: 
 1613: /|-/I
 1614: Capturing subpattern count = 0
 1615: No options
 1616: No first char
 1617: No need char
 1618:     abcd
 1619:  0: 
 1620:     -abc
 1621:  0: 
 1622:     \Nab-c
 1623:  0: -
 1624:     *** Failers
 1625:  0: 
 1626:     \Nabc
 1627: No match
 1628: 
 1629: /^.?abcd/IS
 1630: Capturing subpattern count = 0
 1631: Options: anchored
 1632: No first char
 1633: Need char = 'd'
 1634: Subject length lower bound = 4
 1635: No set of starting bytes
 1636: 
 1637: /\(             # ( at start
 1638:   (?:           # Non-capturing bracket
 1639:   (?>[^()]+)    # Either a sequence of non-brackets (no backtracking)
 1640:   |             # Or
 1641:   (?R)          # Recurse - i.e. nested bracketed string
 1642:   )*            # Zero or more contents
 1643:   \)            # Closing )
 1644:   /Ix
 1645: Capturing subpattern count = 0
 1646: Options: extended
 1647: First char = '('
 1648: Need char = ')'
 1649:     (abcd)
 1650:  0: (abcd)
 1651:     (abcd)xyz
 1652:  0: (abcd)
 1653:     xyz(abcd)
 1654:  0: (abcd)
 1655:     (ab(xy)cd)pqr
 1656:  0: (ab(xy)cd)
 1657:     (ab(xycd)pqr
 1658:  0: (xycd)
 1659:     () abc ()
 1660:  0: ()
 1661:     12(abcde(fsh)xyz(foo(bar))lmno)89
 1662:  0: (abcde(fsh)xyz(foo(bar))lmno)
 1663:     *** Failers
 1664: No match
 1665:     abcd
 1666: No match
 1667:     abcd)
 1668: No match
 1669:     (abcd
 1670: No match
 1671: 
 1672: /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
 1673: Capturing subpattern count = 1
 1674: Options: extended
 1675: First char = '('
 1676: Need char = ')'
 1677:     (ab(xy)cd)pqr
 1678:  0: (ab(xy)cd)
 1679:  1: cd
 1680:     1(abcd)(x(y)z)pqr
 1681:  0: (abcd)
 1682:  1: abcd
 1683:  0: (x(y)z)
 1684:  1: z
 1685: 
 1686: /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
 1687: Capturing subpattern count = 0
 1688: Options: extended
 1689: First char = '('
 1690: Need char = ')'
 1691:     (abcd)
 1692:  0: (abcd)
 1693:     (ab(xy)cd)
 1694:  0: (xy)
 1695:     (a(b(c)d)e)
 1696:  0: (c)
 1697:     ((ab))
 1698:  0: ((ab))
 1699:     *** Failers
 1700: No match
 1701:     ()
 1702: No match
 1703: 
 1704: /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
 1705: Capturing subpattern count = 0
 1706: Options: extended
 1707: First char = '('
 1708: Need char = ')'
 1709:     ()
 1710:  0: ()
 1711:     12(abcde(fsh)xyz(foo(bar))lmno)89
 1712:  0: (fsh)
 1713: 
 1714: /\(  ( (?>[^()]+) | (?R) )* \) /Ix
 1715: Capturing subpattern count = 1
 1716: Options: extended
 1717: First char = '('
 1718: Need char = ')'
 1719:     (ab(xy)cd)
 1720:  0: (ab(xy)cd)
 1721:  1: cd
 1722: 
 1723: /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
 1724: Capturing subpattern count = 2
 1725: Options: extended
 1726: First char = '('
 1727: Need char = ')'
 1728:     (ab(xy)cd)
 1729:  0: (ab(xy)cd)
 1730:  1: ab(xy)cd
 1731:  2: cd
 1732: 
 1733: /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
 1734: Capturing subpattern count = 3
 1735: Options: extended
 1736: First char = '('
 1737: Need char = ')'
 1738:     (ab(xy)cd)
 1739:  0: (ab(xy)cd)
 1740:  1: <unset>
 1741:  2: ab(xy)cd
 1742:  3: cd
 1743:     (123ab(xy)cd)
 1744:  0: (123ab(xy)cd)
 1745:  1: 123
 1746:  2: ab(xy)cd
 1747:  3: cd
 1748: 
 1749: /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
 1750: Capturing subpattern count = 3
 1751: Options: extended
 1752: First char = '('
 1753: Need char = ')'
 1754:     (ab(xy)cd)
 1755:  0: (ab(xy)cd)
 1756:  1: ab(xy)cd
 1757:  2: <unset>
 1758:  3: cd
 1759:     (123ab(xy)cd)
 1760:  0: (123ab(xy)cd)
 1761:  1: 123ab(xy)cd
 1762:  2: 123
 1763:  3: cd
 1764: 
 1765: /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
 1766: Capturing subpattern count = 11
 1767: Options: extended
 1768: First char = '('
 1769: Need char = ')'
 1770:     (ab(xy)cd)
 1771:  0: (ab(xy)cd)
 1772:  1: ab(xy)cd
 1773:  2: ab(xy)cd
 1774:  3: ab(xy)cd
 1775:  4: ab(xy)cd
 1776:  5: ab(xy)cd
 1777:  6: ab(xy)cd
 1778:  7: ab(xy)cd
 1779:  8: ab(xy)cd
 1780:  9: ab(xy)cd
 1781: 10: ab(xy)cd
 1782: 11: cd
 1783: 
 1784: /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
 1785: Capturing subpattern count = 3
 1786: Options: extended
 1787: First char = '('
 1788: Need char = ')'
 1789:     (abcd(xyz<p>qrs)123)
 1790:  0: (abcd(xyz<p>qrs)123)
 1791:  1: abcd(xyz<p>qrs)123
 1792:  2: 123
 1793: 
 1794: /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
 1795: Capturing subpattern count = 3
 1796: Options: extended
 1797: First char = '('
 1798: Need char = ')'
 1799:     (ab(cd)ef)
 1800:  0: (ab(cd)ef)
 1801:  1: ab(cd)ef
 1802:  2: ef
 1803:  3: (cd)
 1804:     (ab(cd(ef)gh)ij)
 1805:  0: (ab(cd(ef)gh)ij)
 1806:  1: ab(cd(ef)gh)ij
 1807:  2: ij
 1808:  3: (cd(ef)gh)
 1809: 
 1810: /^[[:alnum:]]/DZ
 1811: ------------------------------------------------------------------
 1812:         Bra
 1813:         ^
 1814:         [0-9A-Za-z]
 1815:         Ket
 1816:         End
 1817: ------------------------------------------------------------------
 1818: Capturing subpattern count = 0
 1819: Options: anchored
 1820: No first char
 1821: No need char
 1822: 
 1823: /^[[:^alnum:]]/DZ
 1824: ------------------------------------------------------------------
 1825:         Bra
 1826:         ^
 1827:         [\x00-/:-@[-`{-\xff] (neg)
 1828:         Ket
 1829:         End
 1830: ------------------------------------------------------------------
 1831: Capturing subpattern count = 0
 1832: Options: anchored
 1833: No first char
 1834: No need char
 1835: 
 1836: /^[[:alpha:]]/DZ
 1837: ------------------------------------------------------------------
 1838:         Bra
 1839:         ^
 1840:         [A-Za-z]
 1841:         Ket
 1842:         End
 1843: ------------------------------------------------------------------
 1844: Capturing subpattern count = 0
 1845: Options: anchored
 1846: No first char
 1847: No need char
 1848: 
 1849: /^[[:^alpha:]]/DZ
 1850: ------------------------------------------------------------------
 1851:         Bra
 1852:         ^
 1853:         [\x00-@[-`{-\xff] (neg)
 1854:         Ket
 1855:         End
 1856: ------------------------------------------------------------------
 1857: Capturing subpattern count = 0
 1858: Options: anchored
 1859: No first char
 1860: No need char
 1861: 
 1862: /[_[:alpha:]]/IS
 1863: Capturing subpattern count = 0
 1864: No options
 1865: No first char
 1866: No need char
 1867: Subject length lower bound = 1
 1868: 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 
 1869:   _ 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 
 1870: 
 1871: /^[[:ascii:]]/DZ
 1872: ------------------------------------------------------------------
 1873:         Bra
 1874:         ^
 1875:         [\x00-\x7f]
 1876:         Ket
 1877:         End
 1878: ------------------------------------------------------------------
 1879: Capturing subpattern count = 0
 1880: Options: anchored
 1881: No first char
 1882: No need char
 1883: 
 1884: /^[[:^ascii:]]/DZ
 1885: ------------------------------------------------------------------
 1886:         Bra
 1887:         ^
 1888:         [\x80-\xff] (neg)
 1889:         Ket
 1890:         End
 1891: ------------------------------------------------------------------
 1892: Capturing subpattern count = 0
 1893: Options: anchored
 1894: No first char
 1895: No need char
 1896: 
 1897: /^[[:blank:]]/DZ
 1898: ------------------------------------------------------------------
 1899:         Bra
 1900:         ^
 1901:         [\x09 ]
 1902:         Ket
 1903:         End
 1904: ------------------------------------------------------------------
 1905: Capturing subpattern count = 0
 1906: Options: anchored
 1907: No first char
 1908: No need char
 1909: 
 1910: /^[[:^blank:]]/DZ
 1911: ------------------------------------------------------------------
 1912:         Bra
 1913:         ^
 1914:         [\x00-\x08\x0a-\x1f!-\xff] (neg)
 1915:         Ket
 1916:         End
 1917: ------------------------------------------------------------------
 1918: Capturing subpattern count = 0
 1919: Options: anchored
 1920: No first char
 1921: No need char
 1922: 
 1923: /[\n\x0b\x0c\x0d[:blank:]]/IS
 1924: Capturing subpattern count = 0
 1925: Contains explicit CR or LF match
 1926: No options
 1927: No first char
 1928: No need char
 1929: Subject length lower bound = 1
 1930: Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 
 1931: 
 1932: /^[[:cntrl:]]/DZ
 1933: ------------------------------------------------------------------
 1934:         Bra
 1935:         ^
 1936:         [\x00-\x1f\x7f]
 1937:         Ket
 1938:         End
 1939: ------------------------------------------------------------------
 1940: Capturing subpattern count = 0
 1941: Options: anchored
 1942: No first char
 1943: No need char
 1944: 
 1945: /^[[:digit:]]/DZ
 1946: ------------------------------------------------------------------
 1947:         Bra
 1948:         ^
 1949:         [0-9]
 1950:         Ket
 1951:         End
 1952: ------------------------------------------------------------------
 1953: Capturing subpattern count = 0
 1954: Options: anchored
 1955: No first char
 1956: No need char
 1957: 
 1958: /^[[:graph:]]/DZ
 1959: ------------------------------------------------------------------
 1960:         Bra
 1961:         ^
 1962:         [!-~]
 1963:         Ket
 1964:         End
 1965: ------------------------------------------------------------------
 1966: Capturing subpattern count = 0
 1967: Options: anchored
 1968: No first char
 1969: No need char
 1970: 
 1971: /^[[:lower:]]/DZ
 1972: ------------------------------------------------------------------
 1973:         Bra
 1974:         ^
 1975:         [a-z]
 1976:         Ket
 1977:         End
 1978: ------------------------------------------------------------------
 1979: Capturing subpattern count = 0
 1980: Options: anchored
 1981: No first char
 1982: No need char
 1983: 
 1984: /^[[:print:]]/DZ
 1985: ------------------------------------------------------------------
 1986:         Bra
 1987:         ^
 1988:         [ -~]
 1989:         Ket
 1990:         End
 1991: ------------------------------------------------------------------
 1992: Capturing subpattern count = 0
 1993: Options: anchored
 1994: No first char
 1995: No need char
 1996: 
 1997: /^[[:punct:]]/DZ
 1998: ------------------------------------------------------------------
 1999:         Bra
 2000:         ^
 2001:         [!-/:-@[-`{-~]
 2002:         Ket
 2003:         End
 2004: ------------------------------------------------------------------
 2005: Capturing subpattern count = 0
 2006: Options: anchored
 2007: No first char
 2008: No need char
 2009: 
 2010: /^[[:space:]]/DZ
 2011: ------------------------------------------------------------------
 2012:         Bra
 2013:         ^
 2014:         [\x09-\x0d ]
 2015:         Ket
 2016:         End
 2017: ------------------------------------------------------------------
 2018: Capturing subpattern count = 0
 2019: Options: anchored
 2020: No first char
 2021: No need char
 2022: 
 2023: /^[[:upper:]]/DZ
 2024: ------------------------------------------------------------------
 2025:         Bra
 2026:         ^
 2027:         [A-Z]
 2028:         Ket
 2029:         End
 2030: ------------------------------------------------------------------
 2031: Capturing subpattern count = 0
 2032: Options: anchored
 2033: No first char
 2034: No need char
 2035: 
 2036: /^[[:xdigit:]]/DZ
 2037: ------------------------------------------------------------------
 2038:         Bra
 2039:         ^
 2040:         [0-9A-Fa-f]
 2041:         Ket
 2042:         End
 2043: ------------------------------------------------------------------
 2044: Capturing subpattern count = 0
 2045: Options: anchored
 2046: No first char
 2047: No need char
 2048: 
 2049: /^[[:word:]]/DZ
 2050: ------------------------------------------------------------------
 2051:         Bra
 2052:         ^
 2053:         [0-9A-Z_a-z]
 2054:         Ket
 2055:         End
 2056: ------------------------------------------------------------------
 2057: Capturing subpattern count = 0
 2058: Options: anchored
 2059: No first char
 2060: No need char
 2061: 
 2062: /^[[:^cntrl:]]/DZ
 2063: ------------------------------------------------------------------
 2064:         Bra
 2065:         ^
 2066:         [ -~\x80-\xff] (neg)
 2067:         Ket
 2068:         End
 2069: ------------------------------------------------------------------
 2070: Capturing subpattern count = 0
 2071: Options: anchored
 2072: No first char
 2073: No need char
 2074: 
 2075: /^[12[:^digit:]]/DZ
 2076: ------------------------------------------------------------------
 2077:         Bra
 2078:         ^
 2079:         [\x00-/12:-\xff] (neg)
 2080:         Ket
 2081:         End
 2082: ------------------------------------------------------------------
 2083: Capturing subpattern count = 0
 2084: Options: anchored
 2085: No first char
 2086: No need char
 2087: 
 2088: /^[[:^blank:]]/DZ
 2089: ------------------------------------------------------------------
 2090:         Bra
 2091:         ^
 2092:         [\x00-\x08\x0a-\x1f!-\xff] (neg)
 2093:         Ket
 2094:         End
 2095: ------------------------------------------------------------------
 2096: Capturing subpattern count = 0
 2097: Options: anchored
 2098: No first char
 2099: No need char
 2100: 
 2101: /[01[:alpha:]%]/DZ
 2102: ------------------------------------------------------------------
 2103:         Bra
 2104:         [%01A-Za-z]
 2105:         Ket
 2106:         End
 2107: ------------------------------------------------------------------
 2108: Capturing subpattern count = 0
 2109: No options
 2110: No first char
 2111: No need char
 2112: 
 2113: /[[.ch.]]/I
 2114: Failed: POSIX collating elements are not supported at offset 1
 2115: 
 2116: /[[=ch=]]/I
 2117: Failed: POSIX collating elements are not supported at offset 1
 2118: 
 2119: /[[:rhubarb:]]/I
 2120: Failed: unknown POSIX class name at offset 3
 2121: 
 2122: /[[:upper:]]/Ii
 2123: Capturing subpattern count = 0
 2124: Options: caseless
 2125: No first char
 2126: No need char
 2127:     A
 2128:  0: A
 2129:     a
 2130:  0: a
 2131: 
 2132: /[[:lower:]]/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: /((?-i)[[:lower:]])[[:lower:]]/Ii
 2143: Capturing subpattern count = 1
 2144: Options: caseless
 2145: No first char
 2146: No need char
 2147:     ab
 2148:  0: ab
 2149:  1: a
 2150:     aB
 2151:  0: aB
 2152:  1: a
 2153:     *** Failers
 2154:  0: ai
 2155:  1: a
 2156:     Ab
 2157: No match
 2158:     AB
 2159: No match
 2160: 
 2161: /[\200-\110]/I
 2162: Failed: range out of order in character class at offset 9
 2163: 
 2164: /^(?(0)f|b)oo/I
 2165: Failed: invalid condition (?(0) at offset 6
 2166: 
 2167: /This one's here because of the large output vector needed/I
 2168: Capturing subpattern count = 0
 2169: No options
 2170: First char = 'T'
 2171: Need char = 'd'
 2172: 
 2173: /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
 2174: Capturing subpattern count = 271
 2175: Max back reference = 270
 2176: No options
 2177: No first char
 2178: No need char
 2179:     \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
 2180:  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
 2181:  1: 1 
 2182:  2: 2 
 2183:  3: 3 
 2184:  4: 4 
 2185:  5: 5 
 2186:  6: 6 
 2187:  7: 7 
 2188:  8: 8 
 2189:  9: 9 
 2190: 10: 10 
 2191: 11: 11 
 2192: 12: 12 
 2193: 13: 13 
 2194: 14: 14 
 2195: 15: 15 
 2196: 16: 16 
 2197: 17: 17 
 2198: 18: 18 
 2199: 19: 19 
 2200: 20: 20 
 2201: 21: 21 
 2202: 22: 22 
 2203: 23: 23 
 2204: 24: 24 
 2205: 25: 25 
 2206: 26: 26 
 2207: 27: 27 
 2208: 28: 28 
 2209: 29: 29 
 2210: 30: 30 
 2211: 31: 31 
 2212: 32: 32 
 2213: 33: 33 
 2214: 34: 34 
 2215: 35: 35 
 2216: 36: 36 
 2217: 37: 37 
 2218: 38: 38 
 2219: 39: 39 
 2220: 40: 40 
 2221: 41: 41 
 2222: 42: 42 
 2223: 43: 43 
 2224: 44: 44 
 2225: 45: 45 
 2226: 46: 46 
 2227: 47: 47 
 2228: 48: 48 
 2229: 49: 49 
 2230: 50: 50 
 2231: 51: 51 
 2232: 52: 52 
 2233: 53: 53 
 2234: 54: 54 
 2235: 55: 55 
 2236: 56: 56 
 2237: 57: 57 
 2238: 58: 58 
 2239: 59: 59 
 2240: 60: 60 
 2241: 61: 61 
 2242: 62: 62 
 2243: 63: 63 
 2244: 64: 64 
 2245: 65: 65 
 2246: 66: 66 
 2247: 67: 67 
 2248: 68: 68 
 2249: 69: 69 
 2250: 70: 70 
 2251: 71: 71 
 2252: 72: 72 
 2253: 73: 73 
 2254: 74: 74 
 2255: 75: 75 
 2256: 76: 76 
 2257: 77: 77 
 2258: 78: 78 
 2259: 79: 79 
 2260: 80: 80 
 2261: 81: 81 
 2262: 82: 82 
 2263: 83: 83 
 2264: 84: 84 
 2265: 85: 85 
 2266: 86: 86 
 2267: 87: 87 
 2268: 88: 88 
 2269: 89: 89 
 2270: 90: 90 
 2271: 91: 91 
 2272: 92: 92 
 2273: 93: 93 
 2274: 94: 94 
 2275: 95: 95 
 2276: 96: 96 
 2277: 97: 97 
 2278: 98: 98 
 2279: 99: 99 
 2280: 100: 100 
 2281: 101: 101 
 2282: 102: 102 
 2283: 103: 103 
 2284: 104: 104 
 2285: 105: 105 
 2286: 106: 106 
 2287: 107: 107 
 2288: 108: 108 
 2289: 109: 109 
 2290: 110: 110 
 2291: 111: 111 
 2292: 112: 112 
 2293: 113: 113 
 2294: 114: 114 
 2295: 115: 115 
 2296: 116: 116 
 2297: 117: 117 
 2298: 118: 118 
 2299: 119: 119 
 2300: 120: 120 
 2301: 121: 121 
 2302: 122: 122 
 2303: 123: 123 
 2304: 124: 124 
 2305: 125: 125 
 2306: 126: 126 
 2307: 127: 127 
 2308: 128: 128 
 2309: 129: 129 
 2310: 130: 130 
 2311: 131: 131 
 2312: 132: 132 
 2313: 133: 133 
 2314: 134: 134 
 2315: 135: 135 
 2316: 136: 136 
 2317: 137: 137 
 2318: 138: 138 
 2319: 139: 139 
 2320: 140: 140 
 2321: 141: 141 
 2322: 142: 142 
 2323: 143: 143 
 2324: 144: 144 
 2325: 145: 145 
 2326: 146: 146 
 2327: 147: 147 
 2328: 148: 148 
 2329: 149: 149 
 2330: 150: 150 
 2331: 151: 151 
 2332: 152: 152 
 2333: 153: 153 
 2334: 154: 154 
 2335: 155: 155 
 2336: 156: 156 
 2337: 157: 157 
 2338: 158: 158 
 2339: 159: 159 
 2340: 160: 160 
 2341: 161: 161 
 2342: 162: 162 
 2343: 163: 163 
 2344: 164: 164 
 2345: 165: 165 
 2346: 166: 166 
 2347: 167: 167 
 2348: 168: 168 
 2349: 169: 169 
 2350: 170: 170 
 2351: 171: 171 
 2352: 172: 172 
 2353: 173: 173 
 2354: 174: 174 
 2355: 175: 175 
 2356: 176: 176 
 2357: 177: 177 
 2358: 178: 178 
 2359: 179: 179 
 2360: 180: 180 
 2361: 181: 181 
 2362: 182: 182 
 2363: 183: 183 
 2364: 184: 184 
 2365: 185: 185 
 2366: 186: 186 
 2367: 187: 187 
 2368: 188: 188 
 2369: 189: 189 
 2370: 190: 190 
 2371: 191: 191 
 2372: 192: 192 
 2373: 193: 193 
 2374: 194: 194 
 2375: 195: 195 
 2376: 196: 196 
 2377: 197: 197 
 2378: 198: 198 
 2379: 199: 199 
 2380: 200: 200 
 2381: 201: 201 
 2382: 202: 202 
 2383: 203: 203 
 2384: 204: 204 
 2385: 205: 205 
 2386: 206: 206 
 2387: 207: 207 
 2388: 208: 208 
 2389: 209: 209 
 2390: 210: 210 
 2391: 211: 211 
 2392: 212: 212 
 2393: 213: 213 
 2394: 214: 214 
 2395: 215: 215 
 2396: 216: 216 
 2397: 217: 217 
 2398: 218: 218 
 2399: 219: 219 
 2400: 220: 220 
 2401: 221: 221 
 2402: 222: 222 
 2403: 223: 223 
 2404: 224: 224 
 2405: 225: 225 
 2406: 226: 226 
 2407: 227: 227 
 2408: 228: 228 
 2409: 229: 229 
 2410: 230: 230 
 2411: 231: 231 
 2412: 232: 232 
 2413: 233: 233 
 2414: 234: 234 
 2415: 235: 235 
 2416: 236: 236 
 2417: 237: 237 
 2418: 238: 238 
 2419: 239: 239 
 2420: 240: 240 
 2421: 241: 241 
 2422: 242: 242 
 2423: 243: 243 
 2424: 244: 244 
 2425: 245: 245 
 2426: 246: 246 
 2427: 247: 247 
 2428: 248: 248 
 2429: 249: 249 
 2430: 250: 250 
 2431: 251: 251 
 2432: 252: 252 
 2433: 253: 253 
 2434: 254: 254 
 2435: 255: 255 
 2436: 256: 256 
 2437: 257: 257 
 2438: 258: 258 
 2439: 259: 259 
 2440: 260: 260 
 2441: 261: 261 
 2442: 262: 262 
 2443: 263: 263 
 2444: 264: 264 
 2445: 265: 265 
 2446: 266: 266 
 2447: 267: 267 
 2448: 268: 268 
 2449: 269: 269 
 2450: 270: ABC
 2451: 271: ABC
 2452: 
 2453: /This one's here because Perl does this differently and PCRE can't at present/I
 2454: Capturing subpattern count = 0
 2455: No options
 2456: First char = 'T'
 2457: Need char = 't'
 2458: 
 2459: /(main(O)?)+/I
 2460: Capturing subpattern count = 2
 2461: No options
 2462: First char = 'm'
 2463: Need char = 'n'
 2464:     mainmain
 2465:  0: mainmain
 2466:  1: main
 2467:     mainOmain
 2468:  0: mainOmain
 2469:  1: main
 2470:  2: O
 2471: 
 2472: /These are all cases where Perl does it differently (nested captures)/I
 2473: Capturing subpattern count = 1
 2474: No options
 2475: First char = 'T'
 2476: Need char = 's'
 2477: 
 2478: /^(a(b)?)+$/I
 2479: Capturing subpattern count = 2
 2480: Options: anchored
 2481: No first char
 2482: No need char
 2483:     aba
 2484:  0: aba
 2485:  1: a
 2486:  2: b
 2487: 
 2488: /^(aa(bb)?)+$/I
 2489: Capturing subpattern count = 2
 2490: Options: anchored
 2491: No first char
 2492: No need char
 2493:     aabbaa
 2494:  0: aabbaa
 2495:  1: aa
 2496:  2: bb
 2497: 
 2498: /^(aa|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(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 = 1
 2520: Options: anchored
 2521: No first char
 2522: No need char
 2523:     aabbaa
 2524:  0: aabbaa
 2525:  1: bb
 2526: 
 2527: /^(aa(b(b))?)+$/I
 2528: Capturing subpattern count = 3
 2529: Options: anchored
 2530: No first char
 2531: No need char
 2532:     aabbaa
 2533:  0: aabbaa
 2534:  1: aa
 2535:  2: bb
 2536:  3: b
 2537: 
 2538: /^(?:aa(b(b))?)+$/I
 2539: Capturing subpattern count = 2
 2540: Options: anchored
 2541: No first char
 2542: No need char
 2543:     aabbaa
 2544:  0: aabbaa
 2545:  1: bb
 2546:  2: b
 2547: 
 2548: /^(?:aa(b(?:b))?)+$/I
 2549: Capturing subpattern count = 1
 2550: Options: anchored
 2551: No first char
 2552: No need char
 2553:     aabbaa
 2554:  0: aabbaa
 2555:  1: bb
 2556: 
 2557: /^(?:aa(bb(?:b))?)+$/I
 2558: Capturing subpattern count = 1
 2559: Options: anchored
 2560: No first char
 2561: No need char
 2562:     aabbbaa
 2563:  0: aabbbaa
 2564:  1: bbb
 2565: 
 2566: /^(?:aa(b(?:bb))?)+$/I
 2567: Capturing subpattern count = 1
 2568: Options: anchored
 2569: No first char
 2570: No need char
 2571:     aabbbaa
 2572:  0: aabbbaa
 2573:  1: bbb
 2574: 
 2575: /^(?:aa(?:b(b))?)+$/I
 2576: Capturing subpattern count = 1
 2577: Options: anchored
 2578: No first char
 2579: No need char
 2580:     aabbaa
 2581:  0: aabbaa
 2582:  1: b
 2583: 
 2584: /^(?:aa(?:b(bb))?)+$/I
 2585: Capturing subpattern count = 1
 2586: Options: anchored
 2587: No first char
 2588: No need char
 2589:     aabbbaa
 2590:  0: aabbbaa
 2591:  1: bb
 2592: 
 2593: /^(aa(b(bb))?)+$/I
 2594: Capturing subpattern count = 3
 2595: Options: anchored
 2596: No first char
 2597: No need char
 2598:     aabbbaa
 2599:  0: aabbbaa
 2600:  1: aa
 2601:  2: bbb
 2602:  3: bb
 2603: 
 2604: /^(aa(bb(bb))?)+$/I
 2605: Capturing subpattern count = 3
 2606: Options: anchored
 2607: No first char
 2608: No need char
 2609:     aabbbbaa
 2610:  0: aabbbbaa
 2611:  1: aa
 2612:  2: bbbb
 2613:  3: bb
 2614: 
 2615: /--------------------------------------------------------------------/I
 2616: Capturing subpattern count = 0
 2617: No options
 2618: First char = '-'
 2619: Need char = '-'
 2620: 
 2621: /#/IxDZ
 2622: ------------------------------------------------------------------
 2623:         Bra
 2624:         Ket
 2625:         End
 2626: ------------------------------------------------------------------
 2627: Capturing subpattern count = 0
 2628: Options: extended
 2629: No first char
 2630: No need char
 2631: 
 2632: /a#/IxDZ
 2633: ------------------------------------------------------------------
 2634:         Bra
 2635:         a
 2636:         Ket
 2637:         End
 2638: ------------------------------------------------------------------
 2639: Capturing subpattern count = 0
 2640: Options: extended
 2641: First char = 'a'
 2642: No need char
 2643: 
 2644: /[\s]/DZ
 2645: ------------------------------------------------------------------
 2646:         Bra
 2647:         [\x09\x0a\x0c\x0d ]
 2648:         Ket
 2649:         End
 2650: ------------------------------------------------------------------
 2651: Capturing subpattern count = 0
 2652: No options
 2653: No first char
 2654: No need char
 2655: 
 2656: /[\S]/DZ
 2657: ------------------------------------------------------------------
 2658:         Bra
 2659:         [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
 2660:         Ket
 2661:         End
 2662: ------------------------------------------------------------------
 2663: Capturing subpattern count = 0
 2664: No options
 2665: No first char
 2666: No need char
 2667: 
 2668: /a(?i)b/DZ
 2669: ------------------------------------------------------------------
 2670:         Bra
 2671:         a
 2672:      /i b
 2673:         Ket
 2674:         End
 2675: ------------------------------------------------------------------
 2676: Capturing subpattern count = 0
 2677: No options
 2678: First char = 'a'
 2679: Need char = 'b' (caseless)
 2680:     ab
 2681:  0: ab
 2682:     aB
 2683:  0: aB
 2684:     *** Failers
 2685: No match
 2686:     AB
 2687: No match
 2688: 
 2689: /(a(?i)b)/DZ
 2690: ------------------------------------------------------------------
 2691:         Bra
 2692:         CBra 1
 2693:         a
 2694:      /i b
 2695:         Ket
 2696:         Ket
 2697:         End
 2698: ------------------------------------------------------------------
 2699: Capturing subpattern count = 1
 2700: No options
 2701: First char = 'a'
 2702: Need char = 'b' (caseless)
 2703:     ab
 2704:  0: ab
 2705:  1: ab
 2706:     aB
 2707:  0: aB
 2708:  1: aB
 2709:     *** Failers
 2710: No match
 2711:     AB
 2712: No match
 2713: 
 2714: /   (?i)abc/IxDZ
 2715: ------------------------------------------------------------------
 2716:         Bra
 2717:      /i abc
 2718:         Ket
 2719:         End
 2720: ------------------------------------------------------------------
 2721: Capturing subpattern count = 0
 2722: Options: caseless extended
 2723: First char = 'a' (caseless)
 2724: Need char = 'c' (caseless)
 2725: 
 2726: /#this is a comment
 2727:   (?i)abc/IxDZ
 2728: ------------------------------------------------------------------
 2729:         Bra
 2730:      /i abc
 2731:         Ket
 2732:         End
 2733: ------------------------------------------------------------------
 2734: Capturing subpattern count = 0
 2735: Options: caseless extended
 2736: First char = 'a' (caseless)
 2737: Need char = 'c' (caseless)
 2738: 
 2739: /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
 2740: ------------------------------------------------------------------
 2741:         Bra
 2742:         123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
 2743:         Ket
 2744:         End
 2745: ------------------------------------------------------------------
 2746: Capturing subpattern count = 0
 2747: No options
 2748: First char = '1'
 2749: Need char = '0'
 2750: 
 2751: /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
 2752: ------------------------------------------------------------------
 2753:         Bra
 2754:         123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
 2755:         Ket
 2756:         End
 2757: ------------------------------------------------------------------
 2758: Capturing subpattern count = 0
 2759: No options
 2760: First char = '1'
 2761: Need char = '0'
 2762: 
 2763: /\Q\E/DZ
 2764: ------------------------------------------------------------------
 2765:         Bra
 2766:         Ket
 2767:         End
 2768: ------------------------------------------------------------------
 2769: Capturing subpattern count = 0
 2770: No options
 2771: No first char
 2772: No need char
 2773:     \
 2774:  0: 
 2775: 
 2776: /\Q\Ex/DZ
 2777: ------------------------------------------------------------------
 2778:         Bra
 2779:         x
 2780:         Ket
 2781:         End
 2782: ------------------------------------------------------------------
 2783: Capturing subpattern count = 0
 2784: No options
 2785: First char = 'x'
 2786: No need char
 2787: 
 2788: / \Q\E/DZ
 2789: ------------------------------------------------------------------
 2790:         Bra
 2791:          
 2792:         Ket
 2793:         End
 2794: ------------------------------------------------------------------
 2795: Capturing subpattern count = 0
 2796: No options
 2797: First char = ' '
 2798: No need char
 2799: 
 2800: /a\Q\E/DZ
 2801: ------------------------------------------------------------------
 2802:         Bra
 2803:         a
 2804:         Ket
 2805:         End
 2806: ------------------------------------------------------------------
 2807: Capturing subpattern count = 0
 2808: No options
 2809: First char = 'a'
 2810: No need char
 2811:   abc
 2812:  0: a
 2813:   bca
 2814:  0: a
 2815:   bac
 2816:  0: a
 2817: 
 2818: /a\Q\Eb/DZ
 2819: ------------------------------------------------------------------
 2820:         Bra
 2821:         ab
 2822:         Ket
 2823:         End
 2824: ------------------------------------------------------------------
 2825: Capturing subpattern count = 0
 2826: No options
 2827: First char = 'a'
 2828: Need char = 'b'
 2829:   abc
 2830:  0: ab
 2831: 
 2832: /\Q\Eabc/DZ
 2833: ------------------------------------------------------------------
 2834:         Bra
 2835:         abc
 2836:         Ket
 2837:         End
 2838: ------------------------------------------------------------------
 2839: Capturing subpattern count = 0
 2840: No options
 2841: First char = 'a'
 2842: Need char = 'c'
 2843: 
 2844: /x*+\w/DZ
 2845: ------------------------------------------------------------------
 2846:         Bra
 2847:         x*+
 2848:         \w
 2849:         Ket
 2850:         End
 2851: ------------------------------------------------------------------
 2852: Capturing subpattern count = 0
 2853: No options
 2854: No first char
 2855: No need char
 2856:     *** Failers
 2857:  0: F
 2858:     xxxxx
 2859: No match
 2860: 
 2861: /x?+/DZ
 2862: ------------------------------------------------------------------
 2863:         Bra
 2864:         x?+
 2865:         Ket
 2866:         End
 2867: ------------------------------------------------------------------
 2868: Capturing subpattern count = 0
 2869: No options
 2870: No first char
 2871: No need char
 2872: 
 2873: /x++/DZ
 2874: ------------------------------------------------------------------
 2875:         Bra
 2876:         x++
 2877:         Ket
 2878:         End
 2879: ------------------------------------------------------------------
 2880: Capturing subpattern count = 0
 2881: No options
 2882: First char = 'x'
 2883: No need char
 2884: 
 2885: /x{1,3}+/DZ
 2886: ------------------------------------------------------------------
 2887:         Bra
 2888:         Once
 2889:         x
 2890:         x{0,2}
 2891:         Ket
 2892:         Ket
 2893:         End
 2894: ------------------------------------------------------------------
 2895: Capturing subpattern count = 0
 2896: No options
 2897: First char = 'x'
 2898: No need char
 2899: 
 2900: /(x)*+/DZ
 2901: ------------------------------------------------------------------
 2902:         Bra
 2903:         Braposzero
 2904:         CBraPos 1
 2905:         x
 2906:         KetRpos
 2907:         Ket
 2908:         End
 2909: ------------------------------------------------------------------
 2910: Capturing subpattern count = 1
 2911: No options
 2912: No first char
 2913: No need char
 2914: 
 2915: /^(\w++|\s++)*$/I
 2916: Capturing subpattern count = 1
 2917: Options: anchored
 2918: No first char
 2919: No need char
 2920:     now is the time for all good men to come to the aid of the party
 2921:  0: now is the time for all good men to come to the aid of the party
 2922:  1: party
 2923:     *** Failers
 2924: No match
 2925:     this is not a line with only words and spaces!
 2926: No match
 2927: 
 2928: /(\d++)(\w)/I
 2929: Capturing subpattern count = 2
 2930: No options
 2931: No first char
 2932: No need char
 2933:     12345a
 2934:  0: 12345a
 2935:  1: 12345
 2936:  2: a
 2937:     *** Failers
 2938: No match
 2939:     12345+
 2940: No match
 2941: 
 2942: /a++b/I
 2943: Capturing subpattern count = 0
 2944: No options
 2945: First char = 'a'
 2946: Need char = 'b'
 2947:     aaab
 2948:  0: aaab
 2949: 
 2950: /(a++b)/I
 2951: Capturing subpattern count = 1
 2952: No options
 2953: First char = 'a'
 2954: Need char = 'b'
 2955:     aaab
 2956:  0: aaab
 2957:  1: aaab
 2958: 
 2959: /(a++)b/I
 2960: Capturing subpattern count = 1
 2961: No options
 2962: First char = 'a'
 2963: Need char = 'b'
 2964:     aaab
 2965:  0: aaab
 2966:  1: aaa
 2967: 
 2968: /([^()]++|\([^()]*\))+/I
 2969: Capturing subpattern count = 1
 2970: No options
 2971: No first char
 2972: No need char
 2973:     ((abc(ade)ufh()()x
 2974:  0: abc(ade)ufh()()x
 2975:  1: x
 2976: 
 2977: /\(([^()]++|\([^()]+\))+\)/I
 2978: Capturing subpattern count = 1
 2979: No options
 2980: First char = '('
 2981: Need char = ')'
 2982:     (abc)
 2983:  0: (abc)
 2984:  1: abc
 2985:     (abc(def)xyz)
 2986:  0: (abc(def)xyz)
 2987:  1: xyz
 2988:     *** Failers
 2989: No match
 2990:     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 2991: No match
 2992: 
 2993: /(abc){1,3}+/DZ
 2994: ------------------------------------------------------------------
 2995:         Bra
 2996:         Once
 2997:         CBra 1
 2998:         abc
 2999:         Ket
 3000:         Brazero
 3001:         Bra
 3002:         CBra 1
 3003:         abc
 3004:         Ket
 3005:         Brazero
 3006:         CBra 1
 3007:         abc
 3008:         Ket
 3009:         Ket
 3010:         Ket
 3011:         Ket
 3012:         End
 3013: ------------------------------------------------------------------
 3014: Capturing subpattern count = 1
 3015: No options
 3016: First char = 'a'
 3017: Need char = 'c'
 3018: 
 3019: /a+?+/I
 3020: Failed: nothing to repeat at offset 3
 3021: 
 3022: /a{2,3}?+b/I
 3023: Failed: nothing to repeat at offset 7
 3024: 
 3025: /(?U)a+?+/I
 3026: Failed: nothing to repeat at offset 7
 3027: 
 3028: /a{2,3}?+b/IU
 3029: Failed: nothing to repeat at offset 7
 3030: 
 3031: /x(?U)a++b/DZ
 3032: ------------------------------------------------------------------
 3033:         Bra
 3034:         x
 3035:         a++
 3036:         b
 3037:         Ket
 3038:         End
 3039: ------------------------------------------------------------------
 3040: Capturing subpattern count = 0
 3041: No options
 3042: First char = 'x'
 3043: Need char = 'b'
 3044:     xaaaab
 3045:  0: xaaaab
 3046: 
 3047: /(?U)xa++b/DZ
 3048: ------------------------------------------------------------------
 3049:         Bra
 3050:         x
 3051:         a++
 3052:         b
 3053:         Ket
 3054:         End
 3055: ------------------------------------------------------------------
 3056: Capturing subpattern count = 0
 3057: Options: ungreedy
 3058: First char = 'x'
 3059: Need char = 'b'
 3060:     xaaaab
 3061:  0: xaaaab
 3062: 
 3063: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
 3064: ------------------------------------------------------------------
 3065:         Bra
 3066:         ^
 3067:         CBra 1
 3068:         CBra 2
 3069:         a+
 3070:         Ket
 3071:         CBra 3
 3072:         [ab]+?
 3073:         Ket
 3074:         CBra 4
 3075:         [bc]+
 3076:         Ket
 3077:         CBra 5
 3078:         \w*
 3079:         Ket
 3080:         Ket
 3081:         Ket
 3082:         End
 3083: ------------------------------------------------------------------
 3084: Capturing subpattern count = 5
 3085: Options: anchored
 3086: No first char
 3087: No need char
 3088: 
 3089: /^x(?U)a+b/DZ
 3090: ------------------------------------------------------------------
 3091:         Bra
 3092:         ^
 3093:         x
 3094:         a++
 3095:         b
 3096:         Ket
 3097:         End
 3098: ------------------------------------------------------------------
 3099: Capturing subpattern count = 0
 3100: Options: anchored
 3101: No first char
 3102: Need char = 'b'
 3103: 
 3104: /^x(?U)(a+)b/DZ
 3105: ------------------------------------------------------------------
 3106:         Bra
 3107:         ^
 3108:         x
 3109:         CBra 1
 3110:         a+?
 3111:         Ket
 3112:         b
 3113:         Ket
 3114:         End
 3115: ------------------------------------------------------------------
 3116: Capturing subpattern count = 1
 3117: Options: anchored
 3118: No first char
 3119: Need char = 'b'
 3120: 
 3121: /[.x.]/I
 3122: Failed: POSIX collating elements are not supported at offset 0
 3123: 
 3124: /[=x=]/I
 3125: Failed: POSIX collating elements are not supported at offset 0
 3126: 
 3127: /[:x:]/I
 3128: Failed: POSIX named classes are supported only within a class at offset 0
 3129: 
 3130: /\l/I
 3131: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3132: 
 3133: /\L/I
 3134: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3135: 
 3136: /\N{name}/I
 3137: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3138: 
 3139: /\u/I
 3140: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3141: 
 3142: /\U/I
 3143: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3144: 
 3145: /[/I
 3146: Failed: missing terminating ] for character class at offset 1
 3147: 
 3148: /[a-/I
 3149: Failed: missing terminating ] for character class at offset 3
 3150: 
 3151: /[[:space:]/I
 3152: Failed: missing terminating ] for character class at offset 10
 3153: 
 3154: /[\s]/IDZ
 3155: ------------------------------------------------------------------
 3156:         Bra
 3157:         [\x09\x0a\x0c\x0d ]
 3158:         Ket
 3159:         End
 3160: ------------------------------------------------------------------
 3161: Capturing subpattern count = 0
 3162: No options
 3163: No first char
 3164: No need char
 3165: 
 3166: /[[:space:]]/IDZ
 3167: ------------------------------------------------------------------
 3168:         Bra
 3169:         [\x09-\x0d ]
 3170:         Ket
 3171:         End
 3172: ------------------------------------------------------------------
 3173: Capturing subpattern count = 0
 3174: No options
 3175: No first char
 3176: No need char
 3177: 
 3178: /[[:space:]abcde]/IDZ
 3179: ------------------------------------------------------------------
 3180:         Bra
 3181:         [\x09-\x0d a-e]
 3182:         Ket
 3183:         End
 3184: ------------------------------------------------------------------
 3185: Capturing subpattern count = 0
 3186: No options
 3187: No first char
 3188: No need char
 3189: 
 3190: /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
 3191: Capturing subpattern count = 0
 3192: Options: extended
 3193: First char = '<'
 3194: Need char = '>'
 3195:     <>
 3196:  0: <>
 3197:     <abcd>
 3198:  0: <abcd>
 3199:     <abc <123> hij>
 3200:  0: <abc <123> hij>
 3201:     <abc <def> hij>
 3202:  0: <def>
 3203:     <abc<>def>
 3204:  0: <abc<>def>
 3205:     <abc<>
 3206:  0: <>
 3207:     *** Failers
 3208: No match
 3209:     <abc
 3210: No match
 3211: 
 3212: |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
 3213: ------------------------------------------------------------------
 3214:         Bra
 3215:         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
 3216:         \b
 3217:         Ket
 3218:         End
 3219: ------------------------------------------------------------------
 3220: Capturing subpattern count = 0
 3221: Max lookbehind = 1
 3222: No options
 3223: First char = '8'
 3224: Need char = 'X'
 3225: 
 3226: |\$\<\.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
 3227: ------------------------------------------------------------------
 3228:         Bra
 3229:         $<.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
 3230:         \b
 3231:         Ket
 3232:         End
 3233: ------------------------------------------------------------------
 3234: Capturing subpattern count = 0
 3235: Max lookbehind = 1
 3236: No options
 3237: First char = '$'
 3238: Need char = 'X'
 3239: 
 3240: /(.*)\d+\1/I
 3241: Capturing subpattern count = 1
 3242: Max back reference = 1
 3243: No options
 3244: No first char
 3245: No need char
 3246: 
 3247: /(.*)\d+/I
 3248: Capturing subpattern count = 1
 3249: No options
 3250: First char at start or follows newline
 3251: No need char
 3252: 
 3253: /(.*)\d+\1/Is
 3254: Capturing subpattern count = 1
 3255: Max back reference = 1
 3256: Options: dotall
 3257: No first char
 3258: No need char
 3259: 
 3260: /(.*)\d+/Is
 3261: Capturing subpattern count = 1
 3262: Options: anchored dotall
 3263: No first char
 3264: No need char
 3265: 
 3266: /(.*(xyz))\d+\2/I
 3267: Capturing subpattern count = 2
 3268: Max back reference = 2
 3269: No options
 3270: First char at start or follows newline
 3271: Need char = 'z'
 3272: 
 3273: /((.*))\d+\1/I
 3274: Capturing subpattern count = 2
 3275: Max back reference = 1
 3276: No options
 3277: No first char
 3278: No need char
 3279:     abc123bc
 3280:  0: bc123bc
 3281:  1: bc
 3282:  2: bc
 3283: 
 3284: /a[b]/I
 3285: Capturing subpattern count = 0
 3286: No options
 3287: First char = 'a'
 3288: Need char = 'b'
 3289: 
 3290: /(?=a).*/I
 3291: Capturing subpattern count = 0
 3292: No options
 3293: First char = 'a'
 3294: No need char
 3295: 
 3296: /(?=abc).xyz/IiI
 3297: Capturing subpattern count = 0
 3298: Options: caseless
 3299: First char = 'a' (caseless)
 3300: Need char = 'z' (caseless)
 3301: 
 3302: /(?=abc)(?i).xyz/I
 3303: Capturing subpattern count = 0
 3304: No options
 3305: First char = 'a'
 3306: Need char = 'z' (caseless)
 3307: 
 3308: /(?=a)(?=b)/I
 3309: Capturing subpattern count = 0
 3310: No options
 3311: First char = 'a'
 3312: No need char
 3313: 
 3314: /(?=.)a/I
 3315: Capturing subpattern count = 0
 3316: No options
 3317: First char = 'a'
 3318: No need char
 3319: 
 3320: /((?=abcda)a)/I
 3321: Capturing subpattern count = 1
 3322: No options
 3323: First char = 'a'
 3324: Need char = 'a'
 3325: 
 3326: /((?=abcda)ab)/I
 3327: Capturing subpattern count = 1
 3328: No options
 3329: First char = 'a'
 3330: Need char = 'b'
 3331: 
 3332: /()a/I
 3333: Capturing subpattern count = 1
 3334: No options
 3335: No first char
 3336: Need char = 'a'
 3337: 
 3338: /(?(1)ab|ac)(.)/I
 3339: Capturing subpattern count = 1
 3340: No options
 3341: First char = 'a'
 3342: No need char
 3343: 
 3344: /(?(1)abz|acz)(.)/I
 3345: Capturing subpattern count = 1
 3346: No options
 3347: First char = 'a'
 3348: Need char = 'z'
 3349: 
 3350: /(?(1)abz)(.)/I
 3351: Capturing subpattern count = 1
 3352: No options
 3353: No first char
 3354: No need char
 3355: 
 3356: /(?(1)abz)(1)23/I
 3357: Capturing subpattern count = 1
 3358: No options
 3359: No first char
 3360: Need char = '3'
 3361: 
 3362: /(a)+/I
 3363: Capturing subpattern count = 1
 3364: No options
 3365: First char = 'a'
 3366: No need char
 3367: 
 3368: /(a){2,3}/I
 3369: Capturing subpattern count = 1
 3370: No options
 3371: First char = 'a'
 3372: Need char = 'a'
 3373: 
 3374: /(a)*/I
 3375: Capturing subpattern count = 1
 3376: No options
 3377: No first char
 3378: No need char
 3379: 
 3380: /[a]/I
 3381: Capturing subpattern count = 0
 3382: No options
 3383: First char = 'a'
 3384: No need char
 3385: 
 3386: /[ab]/I
 3387: Capturing subpattern count = 0
 3388: No options
 3389: No first char
 3390: No need char
 3391: 
 3392: /[ab]/IS
 3393: Capturing subpattern count = 0
 3394: No options
 3395: No first char
 3396: No need char
 3397: Subject length lower bound = 1
 3398: Starting byte set: a b 
 3399: 
 3400: /[^a]/I
 3401: Capturing subpattern count = 0
 3402: No options
 3403: No first char
 3404: No need char
 3405: 
 3406: /\d456/I
 3407: Capturing subpattern count = 0
 3408: No options
 3409: No first char
 3410: Need char = '6'
 3411: 
 3412: /\d456/IS
 3413: Capturing subpattern count = 0
 3414: No options
 3415: No first char
 3416: Need char = '6'
 3417: Subject length lower bound = 4
 3418: Starting byte set: 0 1 2 3 4 5 6 7 8 9 
 3419: 
 3420: /a^b/I
 3421: Capturing subpattern count = 0
 3422: No options
 3423: First char = 'a'
 3424: Need char = 'b'
 3425: 
 3426: /^a/Im
 3427: Capturing subpattern count = 0
 3428: Options: multiline
 3429: First char at start or follows newline
 3430: Need char = 'a'
 3431:   abcde
 3432:  0: a
 3433:   xy\nabc
 3434:  0: a
 3435:   *** Failers
 3436: No match
 3437:   xyabc
 3438: No match
 3439: 
 3440: /c|abc/I
 3441: Capturing subpattern count = 0
 3442: No options
 3443: No first char
 3444: Need char = 'c'
 3445: 
 3446: /(?i)[ab]/IS
 3447: Capturing subpattern count = 0
 3448: Options: caseless
 3449: No first char
 3450: No need char
 3451: Subject length lower bound = 1
 3452: Starting byte set: A B a b 
 3453: 
 3454: /[ab](?i)cd/IS
 3455: Capturing subpattern count = 0
 3456: No options
 3457: No first char
 3458: Need char = 'd' (caseless)
 3459: Subject length lower bound = 3
 3460: Starting byte set: a b 
 3461: 
 3462: /abc(?C)def/I
 3463: Capturing subpattern count = 0
 3464: No options
 3465: First char = 'a'
 3466: Need char = 'f'
 3467:     abcdef
 3468: --->abcdef
 3469:   0 ^  ^       d
 3470:  0: abcdef
 3471:     1234abcdef
 3472: --->1234abcdef
 3473:   0     ^  ^       d
 3474:  0: abcdef
 3475:     *** Failers
 3476: No match
 3477:     abcxyz
 3478: No match
 3479:     abcxyzf
 3480: --->abcxyzf
 3481:   0 ^  ^        d
 3482: No match
 3483: 
 3484: /abc(?C)de(?C1)f/I
 3485: Capturing subpattern count = 0
 3486: No options
 3487: First char = 'a'
 3488: Need char = 'f'
 3489:     123abcdef
 3490: --->123abcdef
 3491:   0    ^  ^       d
 3492:   1    ^    ^     f
 3493:  0: abcdef
 3494: 
 3495: /(?C1)\dabc(?C2)def/IS
 3496: Capturing subpattern count = 0
 3497: No options
 3498: No first char
 3499: Need char = 'f'
 3500: Subject length lower bound = 7
 3501: Starting byte set: 0 1 2 3 4 5 6 7 8 9 
 3502:     1234abcdef
 3503: --->1234abcdef
 3504:   1 ^              \d
 3505:   1  ^             \d
 3506:   1   ^            \d
 3507:   1    ^           \d
 3508:   2    ^   ^       d
 3509:  0: 4abcdef
 3510:     *** Failers
 3511: No match
 3512:     abcdef
 3513: No match
 3514: 
 3515: /(?C1)\dabc(?C2)def/ISS
 3516: Capturing subpattern count = 0
 3517: No options
 3518: No first char
 3519: Need char = 'f'
 3520:     1234abcdef
 3521: --->1234abcdef
 3522:   1 ^              \d
 3523:   1  ^             \d
 3524:   1   ^            \d
 3525:   1    ^           \d
 3526:   2    ^   ^       d
 3527:  0: 4abcdef
 3528:     *** Failers
 3529: No match
 3530:     abcdef
 3531: --->abcdef
 3532:   1 ^          \d
 3533:   1  ^         \d
 3534:   1   ^        \d
 3535:   1    ^       \d
 3536:   1     ^      \d
 3537:   1      ^     \d
 3538: No match
 3539: 
 3540: /(?C255)ab/I
 3541: Capturing subpattern count = 0
 3542: No options
 3543: First char = 'a'
 3544: Need char = 'b'
 3545: 
 3546: /(?C256)ab/I
 3547: Failed: number after (?C is > 255 at offset 6
 3548: 
 3549: /(?Cab)xx/I
 3550: Failed: closing ) for (?C expected at offset 3
 3551: 
 3552: /(?C12vr)x/I
 3553: Failed: closing ) for (?C expected at offset 5
 3554: 
 3555: /abc(?C)def/I
 3556: Capturing subpattern count = 0
 3557: No options
 3558: First char = 'a'
 3559: Need char = 'f'
 3560:     *** Failers
 3561: No match
 3562:     \x83\x0\x61bcdef
 3563: --->\x83\x00abcdef
 3564:   0         ^  ^       d
 3565:  0: abcdef
 3566: 
 3567: /(abc)(?C)de(?C1)f/I
 3568: Capturing subpattern count = 1
 3569: No options
 3570: First char = 'a'
 3571: Need char = 'f'
 3572:     123abcdef
 3573: --->123abcdef
 3574:   0    ^  ^       d
 3575:   1    ^    ^     f
 3576:  0: abcdef
 3577:  1: abc
 3578:     123abcdef\C+
 3579: Callout 0: last capture = 1
 3580:  0: <unset>
 3581:  1: abc
 3582: --->123abcdef
 3583:        ^  ^       d
 3584: Callout 1: last capture = 1
 3585:  0: <unset>
 3586:  1: abc
 3587: --->123abcdef
 3588:        ^    ^     f
 3589:  0: abcdef
 3590:  1: abc
 3591:     123abcdef\C-
 3592:  0: abcdef
 3593:  1: abc
 3594:     *** Failers
 3595: No match
 3596:     123abcdef\C!1
 3597: --->123abcdef
 3598:   0    ^  ^       d
 3599:   1    ^    ^     f
 3600: No match
 3601: 
 3602: /(?C0)(abc(?C1))*/I
 3603: Capturing subpattern count = 1
 3604: No options
 3605: No first char
 3606: No need char
 3607:     abcabcabc
 3608: --->abcabcabc
 3609:   0 ^             (abc(?C1))*
 3610:   1 ^  ^          )
 3611:   1 ^     ^       )
 3612:   1 ^        ^    )
 3613:  0: abcabcabc
 3614:  1: abc
 3615:     abcabc\C!1!3
 3616: --->abcabc
 3617:   0 ^          (abc(?C1))*
 3618:   1 ^  ^       )
 3619:   1 ^     ^    )
 3620:  0: abcabc
 3621:  1: abc
 3622:     *** Failers
 3623: --->*** Failers
 3624:   0 ^               (abc(?C1))*
 3625:  0: 
 3626:     abcabcabc\C!1!3
 3627: --->abcabcabc
 3628:   0 ^             (abc(?C1))*
 3629:   1 ^  ^          )
 3630:   1 ^     ^       )
 3631:   1 ^        ^    )
 3632:  0: abcabc
 3633:  1: abc
 3634: 
 3635: /(\d{3}(?C))*/I
 3636: Capturing subpattern count = 1
 3637: No options
 3638: No first char
 3639: No need char
 3640:     123\C+
 3641: Callout 0: last capture = -1
 3642:  0: <unset>
 3643: --->123
 3644:     ^  ^    )
 3645:  0: 123
 3646:  1: 123
 3647:     123456\C+
 3648: Callout 0: last capture = -1
 3649:  0: <unset>
 3650: --->123456
 3651:     ^  ^       )
 3652: Callout 0: last capture = 1
 3653:  0: <unset>
 3654:  1: 123
 3655: --->123456
 3656:     ^     ^    )
 3657:  0: 123456
 3658:  1: 456
 3659:     123456789\C+
 3660: Callout 0: last capture = -1
 3661:  0: <unset>
 3662: --->123456789
 3663:     ^  ^          )
 3664: Callout 0: last capture = 1
 3665:  0: <unset>
 3666:  1: 123
 3667: --->123456789
 3668:     ^     ^       )
 3669: Callout 0: last capture = 1
 3670:  0: <unset>
 3671:  1: 456
 3672: --->123456789
 3673:     ^        ^    )
 3674:  0: 123456789
 3675:  1: 789
 3676: 
 3677: /((xyz)(?C)p|(?C1)xyzabc)/I
 3678: Capturing subpattern count = 2
 3679: No options
 3680: First char = 'x'
 3681: No need char
 3682:     xyzabc\C+
 3683: Callout 0: last capture = 2
 3684:  0: <unset>
 3685:  1: <unset>
 3686:  2: xyz
 3687: --->xyzabc
 3688:     ^  ^       p
 3689: Callout 1: last capture = -1
 3690:  0: <unset>
 3691: --->xyzabc
 3692:     ^          x
 3693:  0: xyzabc
 3694:  1: xyzabc
 3695: 
 3696: /(X)((xyz)(?C)p|(?C1)xyzabc)/I
 3697: Capturing subpattern count = 3
 3698: No options
 3699: First char = 'X'
 3700: Need char = 'x'
 3701:     Xxyzabc\C+
 3702: Callout 0: last capture = 3
 3703:  0: <unset>
 3704:  1: X
 3705:  2: <unset>
 3706:  3: xyz
 3707: --->Xxyzabc
 3708:     ^   ^       p
 3709: Callout 1: last capture = 1
 3710:  0: <unset>
 3711:  1: X
 3712: --->Xxyzabc
 3713:     ^^          x
 3714:  0: Xxyzabc
 3715:  1: X
 3716:  2: xyzabc
 3717: 
 3718: /(?=(abc))(?C)abcdef/I
 3719: Capturing subpattern count = 1
 3720: No options
 3721: First char = 'a'
 3722: Need char = 'f'
 3723:     abcdef\C+
 3724: Callout 0: last capture = 1
 3725:  0: <unset>
 3726:  1: abc
 3727: --->abcdef
 3728:     ^          a
 3729:  0: abcdef
 3730:  1: abc
 3731: 
 3732: /(?!(abc)(?C1)d)(?C2)abcxyz/I
 3733: Capturing subpattern count = 1
 3734: No options
 3735: First char = 'a'
 3736: Need char = 'z'
 3737:     abcxyz\C+
 3738: Callout 1: last capture = 1
 3739:  0: <unset>
 3740:  1: abc
 3741: --->abcxyz
 3742:     ^  ^       d
 3743: Callout 2: last capture = -1
 3744:  0: <unset>
 3745: --->abcxyz
 3746:     ^          a
 3747:  0: abcxyz
 3748: 
 3749: /(?<=(abc)(?C))xyz/I
 3750: Capturing subpattern count = 1
 3751: Max lookbehind = 3
 3752: No options
 3753: First char = 'x'
 3754: Need char = 'z'
 3755:    abcxyz\C+
 3756: Callout 0: last capture = 1
 3757:  0: <unset>
 3758:  1: abc
 3759: --->abcxyz
 3760:        ^       )
 3761:  0: xyz
 3762:  1: abc
 3763: 
 3764: /a(b+)(c*)(?C1)/I
 3765: Capturing subpattern count = 2
 3766: No options
 3767: First char = 'a'
 3768: Need char = 'b'
 3769:     abbbbbccc\C*1
 3770: --->abbbbbccc
 3771:   1 ^        ^    
 3772: Callout data = 1
 3773:   1 ^       ^     
 3774: Callout data = 1
 3775:   1 ^      ^      
 3776: Callout data = 1
 3777:   1 ^     ^       
 3778: Callout data = 1
 3779:   1 ^    ^        
 3780: Callout data = 1
 3781:   1 ^   ^         
 3782: Callout data = 1
 3783:   1 ^  ^          
 3784: Callout data = 1
 3785:   1 ^ ^           
 3786: Callout data = 1
 3787: No match
 3788: 
 3789: /a(b+?)(c*?)(?C1)/I
 3790: Capturing subpattern count = 2
 3791: No options
 3792: First char = 'a'
 3793: Need char = 'b'
 3794:     abbbbbccc\C*1
 3795: --->abbbbbccc
 3796:   1 ^ ^           
 3797: Callout data = 1
 3798:   1 ^  ^          
 3799: Callout data = 1
 3800:   1 ^   ^         
 3801: Callout data = 1
 3802:   1 ^    ^        
 3803: Callout data = 1
 3804:   1 ^     ^       
 3805: Callout data = 1
 3806:   1 ^      ^      
 3807: Callout data = 1
 3808:   1 ^       ^     
 3809: Callout data = 1
 3810:   1 ^        ^    
 3811: Callout data = 1
 3812: No match
 3813: 
 3814: /(?C)abc/I
 3815: Capturing subpattern count = 0
 3816: No options
 3817: First char = 'a'
 3818: Need char = 'c'
 3819: 
 3820: /(?C)^abc/I
 3821: Capturing subpattern count = 0
 3822: Options: anchored
 3823: No first char
 3824: No need char
 3825: 
 3826: /(?C)a|b/IS
 3827: Capturing subpattern count = 0
 3828: No options
 3829: No first char
 3830: No need char
 3831: Subject length lower bound = 1
 3832: Starting byte set: a b 
 3833: 
 3834: /(?R)/I
 3835: Failed: recursive call could loop indefinitely at offset 3
 3836: 
 3837: /(a|(?R))/I
 3838: Failed: recursive call could loop indefinitely at offset 6
 3839: 
 3840: /(ab|(bc|(de|(?R))))/I
 3841: Failed: recursive call could loop indefinitely at offset 15
 3842: 
 3843: /x(ab|(bc|(de|(?R))))/I
 3844: Capturing subpattern count = 3
 3845: No options
 3846: First char = 'x'
 3847: No need char
 3848:     xab
 3849:  0: xab
 3850:  1: ab
 3851:     xbc
 3852:  0: xbc
 3853:  1: bc
 3854:  2: bc
 3855:     xde
 3856:  0: xde
 3857:  1: de
 3858:  2: de
 3859:  3: de
 3860:     xxab
 3861:  0: xxab
 3862:  1: xab
 3863:  2: xab
 3864:  3: xab
 3865:     xxxab
 3866:  0: xxxab
 3867:  1: xxab
 3868:  2: xxab
 3869:  3: xxab
 3870:     *** Failers
 3871: No match
 3872:     xyab
 3873: No match
 3874: 
 3875: /(ab|(bc|(de|(?1))))/I
 3876: Failed: recursive call could loop indefinitely at offset 15
 3877: 
 3878: /x(ab|(bc|(de|(?1)x)x)x)/I
 3879: Failed: recursive call could loop indefinitely at offset 16
 3880: 
 3881: /^([^()]|\((?1)*\))*$/I
 3882: Capturing subpattern count = 1
 3883: Options: anchored
 3884: No first char
 3885: No need char
 3886:     abc
 3887:  0: abc
 3888:  1: c
 3889:     a(b)c
 3890:  0: a(b)c
 3891:  1: c
 3892:     a(b(c))d
 3893:  0: a(b(c))d
 3894:  1: d
 3895:     *** Failers)
 3896: No match
 3897:     a(b(c)d
 3898: No match
 3899: 
 3900: /^>abc>([^()]|\((?1)*\))*<xyz<$/I
 3901: Capturing subpattern count = 1
 3902: Options: anchored
 3903: No first char
 3904: Need char = '<'
 3905:    >abc>123<xyz<
 3906:  0: >abc>123<xyz<
 3907:  1: 3
 3908:    >abc>1(2)3<xyz<
 3909:  0: >abc>1(2)3<xyz<
 3910:  1: 3
 3911:    >abc>(1(2)3)<xyz<
 3912:  0: >abc>(1(2)3)<xyz<
 3913:  1: (1(2)3)
 3914: 
 3915: /(a(?1)b)/DZ
 3916: ------------------------------------------------------------------
 3917:         Bra
 3918:         CBra 1
 3919:         a
 3920:         Recurse
 3921:         b
 3922:         Ket
 3923:         Ket
 3924:         End
 3925: ------------------------------------------------------------------
 3926: Capturing subpattern count = 1
 3927: No options
 3928: First char = 'a'
 3929: Need char = 'b'
 3930: 
 3931: /(a(?1)+b)/DZ
 3932: ------------------------------------------------------------------
 3933:         Bra
 3934:         CBra 1
 3935:         a
 3936:         Once
 3937:         Recurse
 3938:         KetRmax
 3939:         b
 3940:         Ket
 3941:         Ket
 3942:         End
 3943: ------------------------------------------------------------------
 3944: Capturing subpattern count = 1
 3945: No options
 3946: First char = 'a'
 3947: Need char = 'b'
 3948: 
 3949: /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
 3950: Capturing subpattern count = 2
 3951: Options: anchored
 3952: No first char
 3953: No need char
 3954:     12
 3955:  0: 12
 3956:  1: 12
 3957:     (((2+2)*-3)-7)
 3958:  0: (((2+2)*-3)-7)
 3959:  1: (((2+2)*-3)-7)
 3960:  2: -
 3961:     -12
 3962:  0: -12
 3963:  1: -12
 3964:     *** Failers
 3965: No match
 3966:     ((2+2)*-3)-7)
 3967: No match
 3968: 
 3969: /^(x(y|(?1){2})z)/I
 3970: Capturing subpattern count = 2
 3971: Options: anchored
 3972: No first char
 3973: No need char
 3974:     xyz
 3975:  0: xyz
 3976:  1: xyz
 3977:  2: y
 3978:     xxyzxyzz
 3979:  0: xxyzxyzz
 3980:  1: xxyzxyzz
 3981:  2: xyzxyz
 3982:     *** Failers
 3983: No match
 3984:     xxyzz
 3985: No match
 3986:     xxyzxyzxyzz
 3987: No match
 3988: 
 3989: /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
 3990: Capturing subpattern count = 2
 3991: Options: extended
 3992: First char = '<'
 3993: Need char = '>'
 3994:     <>
 3995:  0: <>
 3996:  1: <>
 3997:  2: <>
 3998:     <abcd>
 3999:  0: <abcd>
 4000:  1: <abcd>
 4001:  2: <abcd>
 4002:     <abc <123> hij>
 4003:  0: <abc <123> hij>
 4004:  1: <abc <123> hij>
 4005:  2: <abc <123> hij>
 4006:     <abc <def> hij>
 4007:  0: <def>
 4008:  1: <def>
 4009:  2: <def>
 4010:     <abc<>def>
 4011:  0: <abc<>def>
 4012:  1: <abc<>def>
 4013:  2: <abc<>def>
 4014:     <abc<>
 4015:  0: <>
 4016:  1: <>
 4017:  2: <>
 4018:     *** Failers
 4019: No match
 4020:     <abc
 4021: No match
 4022: 
 4023: /(?1)/I
 4024: Failed: reference to non-existent subpattern at offset 3
 4025: 
 4026: /((?2)(abc)/I
 4027: Failed: missing ) at offset 10
 4028: 
 4029: /^(abc)def(?1)/I
 4030: Capturing subpattern count = 1
 4031: Options: anchored
 4032: No first char
 4033: No need char
 4034:     abcdefabc
 4035:  0: abcdefabc
 4036:  1: abc
 4037: 
 4038: /^(a|b|c)=(?1)+/I
 4039: Capturing subpattern count = 1
 4040: Options: anchored
 4041: No first char
 4042: No need char
 4043:     a=a
 4044:  0: a=a
 4045:  1: a
 4046:     a=b
 4047:  0: a=b
 4048:  1: a
 4049:     a=bc
 4050:  0: a=bc
 4051:  1: a
 4052: 
 4053: /^(a|b|c)=((?1))+/I
 4054: Capturing subpattern count = 2
 4055: Options: anchored
 4056: No first char
 4057: No need char
 4058:     a=a
 4059:  0: a=a
 4060:  1: a
 4061:  2: a
 4062:     a=b
 4063:  0: a=b
 4064:  1: a
 4065:  2: b
 4066:     a=bc
 4067:  0: a=bc
 4068:  1: a
 4069:  2: c
 4070: 
 4071: /a(?P<name1>b|c)d(?P<longername2>e)/DZ
 4072: ------------------------------------------------------------------
 4073:         Bra
 4074:         a
 4075:         CBra 1
 4076:         b
 4077:         Alt
 4078:         c
 4079:         Ket
 4080:         d
 4081:         CBra 2
 4082:         e
 4083:         Ket
 4084:         Ket
 4085:         End
 4086: ------------------------------------------------------------------
 4087: Capturing subpattern count = 2
 4088: Named capturing subpatterns:
 4089:   longername2   2
 4090:   name1         1
 4091: No options
 4092: First char = 'a'
 4093: Need char = 'e'
 4094:     abde
 4095:  0: abde
 4096:  1: b
 4097:  2: e
 4098:     acde
 4099:  0: acde
 4100:  1: c
 4101:  2: e
 4102: 
 4103: /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
 4104: ------------------------------------------------------------------
 4105:         Bra
 4106:         Bra
 4107:         a
 4108:         CBra 1
 4109:         c
 4110:         CBra 2
 4111:         d
 4112:         Ket
 4113:         Ket
 4114:         Ket
 4115:         CBra 3
 4116:         a
 4117:         Ket
 4118:         Ket
 4119:         End
 4120: ------------------------------------------------------------------
 4121: Capturing subpattern count = 3
 4122: Named capturing subpatterns:
 4123:   a   3
 4124:   c   1
 4125:   d   2
 4126: No options
 4127: First char = 'a'
 4128: Need char = 'a'
 4129: 
 4130: /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
 4131: ------------------------------------------------------------------
 4132:         Bra
 4133:         CBra 1
 4134:         a
 4135:         Ket
 4136:         Any
 4137:         Any
 4138:         Any
 4139:         \1
 4140:         bbb
 4141:         Recurse
 4142:         d
 4143:         Ket
 4144:         End
 4145: ------------------------------------------------------------------
 4146: Capturing subpattern count = 1
 4147: Max back reference = 1
 4148: Named capturing subpatterns:
 4149:   a   1
 4150: No options
 4151: First char = 'a'
 4152: Need char = 'd'
 4153: 
 4154: /^\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
 4155: Capturing subpattern count = 4
 4156: Max back reference = 4
 4157: Named capturing subpatterns:
 4158:   four    4
 4159:   one     1
 4160:   three   3
 4161:   two     2
 4162: Options: anchored caseless
 4163: No first char
 4164: No need char
 4165:     1221
 4166:  0: 1221
 4167:  1: 1221
 4168:  2: 1
 4169:     Satan, oscillate my metallic sonatas!
 4170:  0: Satan, oscillate my metallic sonatas!
 4171:  1: <unset>
 4172:  2: <unset>
 4173:  3: Satan, oscillate my metallic sonatas
 4174:  4: S
 4175:     A man, a plan, a canal: Panama!
 4176:  0: A man, a plan, a canal: Panama!
 4177:  1: <unset>
 4178:  2: <unset>
 4179:  3: A man, a plan, a canal: Panama
 4180:  4: A
 4181:     Able was I ere I saw Elba.
 4182:  0: Able was I ere I saw Elba.
 4183:  1: <unset>
 4184:  2: <unset>
 4185:  3: Able was I ere I saw Elba
 4186:  4: A
 4187:     *** Failers
 4188: No match
 4189:     The quick brown fox
 4190: No match
 4191: 
 4192: /((?(R)a|b))\1(?1)?/I
 4193: Capturing subpattern count = 1
 4194: Max back reference = 1
 4195: No options
 4196: No first char
 4197: No need char
 4198:   bb
 4199:  0: bb
 4200:  1: b
 4201:   bbaa
 4202:  0: bba
 4203:  1: b
 4204: 
 4205: /(.*)a/Is
 4206: Capturing subpattern count = 1
 4207: Options: anchored dotall
 4208: No first char
 4209: Need char = 'a'
 4210: 
 4211: /(.*)a\1/Is
 4212: Capturing subpattern count = 1
 4213: Max back reference = 1
 4214: Options: dotall
 4215: No first char
 4216: Need char = 'a'
 4217: 
 4218: /(.*)a(b)\2/Is
 4219: Capturing subpattern count = 2
 4220: Max back reference = 2
 4221: Options: anchored dotall
 4222: No first char
 4223: Need char = 'b'
 4224: 
 4225: /((.*)a|(.*)b)z/Is
 4226: Capturing subpattern count = 3
 4227: Options: anchored dotall
 4228: No first char
 4229: Need char = 'z'
 4230: 
 4231: /((.*)a|(.*)b)z\1/Is
 4232: Capturing subpattern count = 3
 4233: Max back reference = 1
 4234: Options: dotall
 4235: No first char
 4236: Need char = 'z'
 4237: 
 4238: /((.*)a|(.*)b)z\2/Is
 4239: Capturing subpattern count = 3
 4240: Max back reference = 2
 4241: Options: dotall
 4242: No first char
 4243: Need char = 'z'
 4244: 
 4245: /((.*)a|(.*)b)z\3/Is
 4246: Capturing subpattern count = 3
 4247: Max back reference = 3
 4248: Options: dotall
 4249: No first char
 4250: Need char = 'z'
 4251: 
 4252: /((.*)a|^(.*)b)z\3/Is
 4253: Capturing subpattern count = 3
 4254: Max back reference = 3
 4255: Options: anchored dotall
 4256: No first char
 4257: Need char = 'z'
 4258: 
 4259: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
 4260: Capturing subpattern count = 31
 4261: Options: anchored dotall
 4262: No first char
 4263: No need char
 4264: 
 4265: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
 4266: Capturing subpattern count = 31
 4267: Max back reference = 31
 4268: Options: dotall
 4269: No first char
 4270: No need char
 4271: 
 4272: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
 4273: Capturing subpattern count = 32
 4274: Max back reference = 32
 4275: Options: dotall
 4276: No first char
 4277: No need char
 4278: 
 4279: /(a)(bc)/INDZ
 4280: ------------------------------------------------------------------
 4281:         Bra
 4282:         Bra
 4283:         a
 4284:         Ket
 4285:         Bra
 4286:         bc
 4287:         Ket
 4288:         Ket
 4289:         End
 4290: ------------------------------------------------------------------
 4291: Capturing subpattern count = 0
 4292: Options: no_auto_capture
 4293: First char = 'a'
 4294: Need char = 'c'
 4295:   abc
 4296:  0: abc
 4297: 
 4298: /(?P<one>a)(bc)/INDZ
 4299: ------------------------------------------------------------------
 4300:         Bra
 4301:         CBra 1
 4302:         a
 4303:         Ket
 4304:         Bra
 4305:         bc
 4306:         Ket
 4307:         Ket
 4308:         End
 4309: ------------------------------------------------------------------
 4310: Capturing subpattern count = 1
 4311: Named capturing subpatterns:
 4312:   one   1
 4313: Options: no_auto_capture
 4314: First char = 'a'
 4315: Need char = 'c'
 4316:   abc
 4317:  0: abc
 4318:  1: a
 4319: 
 4320: /(a)(?P<named>bc)/INDZ
 4321: ------------------------------------------------------------------
 4322:         Bra
 4323:         Bra
 4324:         a
 4325:         Ket
 4326:         CBra 1
 4327:         bc
 4328:         Ket
 4329:         Ket
 4330:         End
 4331: ------------------------------------------------------------------
 4332: Capturing subpattern count = 1
 4333: Named capturing subpatterns:
 4334:   named   1
 4335: Options: no_auto_capture
 4336: First char = 'a'
 4337: Need char = 'c'
 4338: 
 4339: /(a+)*zz/I
 4340: Capturing subpattern count = 1
 4341: No options
 4342: No first char
 4343: Need char = 'z'
 4344:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
 4345: Minimum match() limit = 8
 4346: Minimum match() recursion limit = 6
 4347:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
 4348:  1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 4349:   aaaaaaaaaaaaaz\M
 4350: Minimum match() limit = 32768
 4351: Minimum match() recursion limit = 29
 4352: No match
 4353: 
 4354: /(aaa(?C1)bbb|ab)/I
 4355: Capturing subpattern count = 1
 4356: No options
 4357: First char = 'a'
 4358: Need char = 'b'
 4359:    aaabbb
 4360: --->aaabbb
 4361:   1 ^  ^       b
 4362:  0: aaabbb
 4363:  1: aaabbb
 4364:    aaabbb\C*0
 4365: --->aaabbb
 4366:   1 ^  ^       b
 4367:  0: aaabbb
 4368:  1: aaabbb
 4369:    aaabbb\C*1
 4370: --->aaabbb
 4371:   1 ^  ^       b
 4372: Callout data = 1
 4373:  0: ab
 4374:  1: ab
 4375:    aaabbb\C*-1
 4376: --->aaabbb
 4377:   1 ^  ^       b
 4378: Callout data = -1
 4379: No match
 4380: 
 4381: /ab(?P<one>cd)ef(?P<two>gh)/I
 4382: Capturing subpattern count = 2
 4383: Named capturing subpatterns:
 4384:   one   1
 4385:   two   2
 4386: No options
 4387: First char = 'a'
 4388: Need char = 'h'
 4389:     abcdefgh
 4390:  0: abcdefgh
 4391:  1: cd
 4392:  2: gh
 4393:     abcdefgh\C1\Gtwo
 4394:  0: abcdefgh
 4395:  1: cd
 4396:  2: gh
 4397:  1C cd (2)
 4398:   G gh (2) two
 4399:     abcdefgh\Cone\Ctwo
 4400:  0: abcdefgh
 4401:  1: cd
 4402:  2: gh
 4403:   C cd (2) one
 4404:   C gh (2) two
 4405:     abcdefgh\Cthree
 4406: no parentheses with name "three"
 4407:  0: abcdefgh
 4408:  1: cd
 4409:  2: gh
 4410: copy substring three failed -7
 4411: 
 4412: /(?P<Tes>)(?P<Test>)/DZ
 4413: ------------------------------------------------------------------
 4414:         Bra
 4415:         CBra 1
 4416:         Ket
 4417:         CBra 2
 4418:         Ket
 4419:         Ket
 4420:         End
 4421: ------------------------------------------------------------------
 4422: Capturing subpattern count = 2
 4423: Named capturing subpatterns:
 4424:   Tes    1
 4425:   Test   2
 4426: No options
 4427: No first char
 4428: No need char
 4429: 
 4430: /(?P<Test>)(?P<Tes>)/DZ
 4431: ------------------------------------------------------------------
 4432:         Bra
 4433:         CBra 1
 4434:         Ket
 4435:         CBra 2
 4436:         Ket
 4437:         Ket
 4438:         End
 4439: ------------------------------------------------------------------
 4440: Capturing subpattern count = 2
 4441: Named capturing subpatterns:
 4442:   Tes    2
 4443:   Test   1
 4444: No options
 4445: No first char
 4446: No need char
 4447: 
 4448: /(?P<Z>zz)(?P<A>aa)/I
 4449: Capturing subpattern count = 2
 4450: Named capturing subpatterns:
 4451:   A   2
 4452:   Z   1
 4453: No options
 4454: First char = 'z'
 4455: Need char = 'a'
 4456:     zzaa\CZ
 4457:  0: zzaa
 4458:  1: zz
 4459:  2: aa
 4460:   C zz (2) Z
 4461:     zzaa\CA
 4462:  0: zzaa
 4463:  1: zz
 4464:  2: aa
 4465:   C aa (2) A
 4466: 
 4467: /(?P<x>eks)(?P<x>eccs)/I
 4468: Failed: two named subpatterns have the same name at offset 15
 4469: 
 4470: /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
 4471: Failed: two named subpatterns have the same name at offset 30
 4472: 
 4473: "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
 4474: Capturing subpattern count = 3
 4475: Named capturing subpatterns:
 4476:   elem   2
 4477: No options
 4478: First char = '['
 4479: Need char = ']'
 4480:     [10,20,30,5,5,4,4,2,43,23,4234]
 4481:  0: [10,20,30,5,5,4,4,2,43,23,4234]
 4482:  1: 10,20,30,5,5,4,4,2,43,23,4234
 4483:  2: 10
 4484:  3: ,4234
 4485:     *** Failers
 4486: No match
 4487:     []
 4488: No match
 4489: 
 4490: "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
 4491: Capturing subpattern count = 3
 4492: Named capturing subpatterns:
 4493:   elem   2
 4494: No options
 4495: First char = '['
 4496: Need char = ']'
 4497:     [10,20,30,5,5,4,4,2,43,23,4234]
 4498:  0: [10,20,30,5,5,4,4,2,43,23,4234]
 4499:  1: 10,20,30,5,5,4,4,2,43,23,4234
 4500:  2: 10
 4501:  3: ,4234
 4502:     []
 4503:  0: []
 4504: 
 4505: /(a(b(?2)c))?/DZ
 4506: ------------------------------------------------------------------
 4507:         Bra
 4508:         Brazero
 4509:         CBra 1
 4510:         a
 4511:         CBra 2
 4512:         b
 4513:         Recurse
 4514:         c
 4515:         Ket
 4516:         Ket
 4517:         Ket
 4518:         End
 4519: ------------------------------------------------------------------
 4520: Capturing subpattern count = 2
 4521: No options
 4522: No first char
 4523: No need char
 4524: 
 4525: /(a(b(?2)c))*/DZ
 4526: ------------------------------------------------------------------
 4527:         Bra
 4528:         Brazero
 4529:         CBra 1
 4530:         a
 4531:         CBra 2
 4532:         b
 4533:         Recurse
 4534:         c
 4535:         Ket
 4536:         KetRmax
 4537:         Ket
 4538:         End
 4539: ------------------------------------------------------------------
 4540: Capturing subpattern count = 2
 4541: No options
 4542: No first char
 4543: No need char
 4544: 
 4545: /(a(b(?2)c)){0,2}/DZ
 4546: ------------------------------------------------------------------
 4547:         Bra
 4548:         Brazero
 4549:         Bra
 4550:         CBra 1
 4551:         a
 4552:         CBra 2
 4553:         b
 4554:         Recurse
 4555:         c
 4556:         Ket
 4557:         Ket
 4558:         Brazero
 4559:         CBra 1
 4560:         a
 4561:         CBra 2
 4562:         b
 4563:         Recurse
 4564:         c
 4565:         Ket
 4566:         Ket
 4567:         Ket
 4568:         Ket
 4569:         End
 4570: ------------------------------------------------------------------
 4571: Capturing subpattern count = 2
 4572: No options
 4573: No first char
 4574: No need char
 4575: 
 4576: /[ab]{1}+/DZ
 4577: ------------------------------------------------------------------
 4578:         Bra
 4579:         Once
 4580:         [ab]{1,1}
 4581:         Ket
 4582:         Ket
 4583:         End
 4584: ------------------------------------------------------------------
 4585: Capturing subpattern count = 0
 4586: No options
 4587: No first char
 4588: No need char
 4589: 
 4590: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
 4591: Capturing subpattern count = 3
 4592: Options: caseless
 4593: No first char
 4594: Need char = 'g' (caseless)
 4595:      Baby Bjorn Active Carrier - With free SHIPPING!!
 4596:  0: Baby Bjorn Active Carrier - With free SHIPPING!!
 4597:  1: Baby Bjorn Active Carrier - With free SHIPPING!!
 4598: 
 4599: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
 4600: Capturing subpattern count = 3
 4601: Options: caseless
 4602: No first char
 4603: Need char = 'g' (caseless)
 4604: Subject length lower bound = 8
 4605: No set of starting bytes
 4606:      Baby Bjorn Active Carrier - With free SHIPPING!!
 4607:  0: Baby Bjorn Active Carrier - With free SHIPPING!!
 4608:  1: Baby Bjorn Active Carrier - With free SHIPPING!!
 4609: 
 4610: /a*.*b/ISDZ
 4611: ------------------------------------------------------------------
 4612:         Bra
 4613:         a*
 4614:         Any*
 4615:         b
 4616:         Ket
 4617:         End
 4618: ------------------------------------------------------------------
 4619: Capturing subpattern count = 0
 4620: No options
 4621: No first char
 4622: Need char = 'b'
 4623: Subject length lower bound = 1
 4624: No set of starting bytes
 4625: 
 4626: /(a|b)*.?c/ISDZ
 4627: ------------------------------------------------------------------
 4628:         Bra
 4629:         Brazero
 4630:         CBra 1
 4631:         a
 4632:         Alt
 4633:         b
 4634:         KetRmax
 4635:         Any?
 4636:         c
 4637:         Ket
 4638:         End
 4639: ------------------------------------------------------------------
 4640: Capturing subpattern count = 1
 4641: No options
 4642: No first char
 4643: Need char = 'c'
 4644: Subject length lower bound = 1
 4645: No set of starting bytes
 4646: 
 4647: /abc(?C255)de(?C)f/DZ
 4648: ------------------------------------------------------------------
 4649:         Bra
 4650:         abc
 4651:         Callout 255 10 1
 4652:         de
 4653:         Callout 0 16 1
 4654:         f
 4655:         Ket
 4656:         End
 4657: ------------------------------------------------------------------
 4658: Capturing subpattern count = 0
 4659: No options
 4660: First char = 'a'
 4661: Need char = 'f'
 4662: 
 4663: /abcde/ICDZ
 4664: ------------------------------------------------------------------
 4665:         Bra
 4666:         Callout 255 0 1
 4667:         a
 4668:         Callout 255 1 1
 4669:         b
 4670:         Callout 255 2 1
 4671:         c
 4672:         Callout 255 3 1
 4673:         d
 4674:         Callout 255 4 1
 4675:         e
 4676:         Callout 255 5 0
 4677:         Ket
 4678:         End
 4679: ------------------------------------------------------------------
 4680: Capturing subpattern count = 0
 4681: Options:
 4682: First char = 'a'
 4683: Need char = 'e'
 4684:   abcde
 4685: --->abcde
 4686:  +0 ^         a
 4687:  +1 ^^        b
 4688:  +2 ^ ^       c
 4689:  +3 ^  ^      d
 4690:  +4 ^   ^     e
 4691:  +5 ^    ^    
 4692:  0: abcde
 4693:   abcdfe
 4694: --->abcdfe
 4695:  +0 ^          a
 4696:  +1 ^^         b
 4697:  +2 ^ ^        c
 4698:  +3 ^  ^       d
 4699:  +4 ^   ^      e
 4700: No match
 4701: 
 4702: /a*b/ICDZS
 4703: ------------------------------------------------------------------
 4704:         Bra
 4705:         Callout 255 0 2
 4706:         a*+
 4707:         Callout 255 2 1
 4708:         b
 4709:         Callout 255 3 0
 4710:         Ket
 4711:         End
 4712: ------------------------------------------------------------------
 4713: Capturing subpattern count = 0
 4714: Options:
 4715: No first char
 4716: Need char = 'b'
 4717: Subject length lower bound = 1
 4718: Starting byte set: a b 
 4719:   ab
 4720: --->ab
 4721:  +0 ^      a*
 4722:  +2 ^^     b
 4723:  +3 ^ ^    
 4724:  0: ab
 4725:   aaaab
 4726: --->aaaab
 4727:  +0 ^         a*
 4728:  +2 ^   ^     b
 4729:  +3 ^    ^    
 4730:  0: aaaab
 4731:   aaaacb
 4732: --->aaaacb
 4733:  +0 ^          a*
 4734:  +2 ^   ^      b
 4735:  +0  ^         a*
 4736:  +2  ^  ^      b
 4737:  +0   ^        a*
 4738:  +2   ^ ^      b
 4739:  +0    ^       a*
 4740:  +2    ^^      b
 4741:  +0      ^     a*
 4742:  +2      ^     b
 4743:  +3      ^^    
 4744:  0: b
 4745: 
 4746: /a*b/ICDZSS
 4747: ------------------------------------------------------------------
 4748:         Bra
 4749:         Callout 255 0 2
 4750:         a*+
 4751:         Callout 255 2 1
 4752:         b
 4753:         Callout 255 3 0
 4754:         Ket
 4755:         End
 4756: ------------------------------------------------------------------
 4757: Capturing subpattern count = 0
 4758: Options:
 4759: No first char
 4760: Need char = 'b'
 4761:   ab
 4762: --->ab
 4763:  +0 ^      a*
 4764:  +2 ^^     b
 4765:  +3 ^ ^    
 4766:  0: ab
 4767:   aaaab
 4768: --->aaaab
 4769:  +0 ^         a*
 4770:  +2 ^   ^     b
 4771:  +3 ^    ^    
 4772:  0: aaaab
 4773:   aaaacb
 4774: --->aaaacb
 4775:  +0 ^          a*
 4776:  +2 ^   ^      b
 4777:  +0  ^         a*
 4778:  +2  ^  ^      b
 4779:  +0   ^        a*
 4780:  +2   ^ ^      b
 4781:  +0    ^       a*
 4782:  +2    ^^      b
 4783:  +0     ^      a*
 4784:  +2     ^      b
 4785:  +0      ^     a*
 4786:  +2      ^     b
 4787:  +3      ^^    
 4788:  0: b
 4789: 
 4790: /a+b/ICDZ
 4791: ------------------------------------------------------------------
 4792:         Bra
 4793:         Callout 255 0 2
 4794:         a++
 4795:         Callout 255 2 1
 4796:         b
 4797:         Callout 255 3 0
 4798:         Ket
 4799:         End
 4800: ------------------------------------------------------------------
 4801: Capturing subpattern count = 0
 4802: Options:
 4803: First char = 'a'
 4804: Need char = 'b'
 4805:   ab
 4806: --->ab
 4807:  +0 ^      a+
 4808:  +2 ^^     b
 4809:  +3 ^ ^    
 4810:  0: ab
 4811:   aaaab
 4812: --->aaaab
 4813:  +0 ^         a+
 4814:  +2 ^   ^     b
 4815:  +3 ^    ^    
 4816:  0: aaaab
 4817:   aaaacb
 4818: --->aaaacb
 4819:  +0 ^          a+
 4820:  +2 ^   ^      b
 4821:  +0  ^         a+
 4822:  +2  ^  ^      b
 4823:  +0   ^        a+
 4824:  +2   ^ ^      b
 4825:  +0    ^       a+
 4826:  +2    ^^      b
 4827: No match
 4828: 
 4829: /(abc|def)x/ICDZS
 4830: ------------------------------------------------------------------
 4831:         Bra
 4832:         Callout 255 0 9
 4833:         CBra 1
 4834:         Callout 255 1 1
 4835:         a
 4836:         Callout 255 2 1
 4837:         b
 4838:         Callout 255 3 1
 4839:         c
 4840:         Callout 255 4 0
 4841:         Alt
 4842:         Callout 255 5 1
 4843:         d
 4844:         Callout 255 6 1
 4845:         e
 4846:         Callout 255 7 1
 4847:         f
 4848:         Callout 255 8 0
 4849:         Ket
 4850:         Callout 255 9 1
 4851:         x
 4852:         Callout 255 10 0
 4853:         Ket
 4854:         End
 4855: ------------------------------------------------------------------
 4856: Capturing subpattern count = 1
 4857: Options:
 4858: No first char
 4859: Need char = 'x'
 4860: Subject length lower bound = 4
 4861: Starting byte set: a d 
 4862:   abcx
 4863: --->abcx
 4864:  +0 ^        (abc|def)
 4865:  +1 ^        a
 4866:  +2 ^^       b
 4867:  +3 ^ ^      c
 4868:  +4 ^  ^     |
 4869:  +9 ^  ^     x
 4870: +10 ^   ^    
 4871:  0: abcx
 4872:  1: abc
 4873:   defx
 4874: --->defx
 4875:  +0 ^        (abc|def)
 4876:  +1 ^        a
 4877:  +5 ^        d
 4878:  +6 ^^       e
 4879:  +7 ^ ^      f
 4880:  +8 ^  ^     )
 4881:  +9 ^  ^     x
 4882: +10 ^   ^    
 4883:  0: defx
 4884:  1: def
 4885:   ** Failers 
 4886: No match
 4887:   abcdefzx
 4888: --->abcdefzx
 4889:  +0 ^            (abc|def)
 4890:  +1 ^            a
 4891:  +2 ^^           b
 4892:  +3 ^ ^          c
 4893:  +4 ^  ^         |
 4894:  +9 ^  ^         x
 4895:  +5 ^            d
 4896:  +0    ^         (abc|def)
 4897:  +1    ^         a
 4898:  +5    ^         d
 4899:  +6    ^^        e
 4900:  +7    ^ ^       f
 4901:  +8    ^  ^      )
 4902:  +9    ^  ^      x
 4903: No match
 4904: 
 4905: /(abc|def)x/ICDZSS
 4906: ------------------------------------------------------------------
 4907:         Bra
 4908:         Callout 255 0 9
 4909:         CBra 1
 4910:         Callout 255 1 1
 4911:         a
 4912:         Callout 255 2 1
 4913:         b
 4914:         Callout 255 3 1
 4915:         c
 4916:         Callout 255 4 0
 4917:         Alt
 4918:         Callout 255 5 1
 4919:         d
 4920:         Callout 255 6 1
 4921:         e
 4922:         Callout 255 7 1
 4923:         f
 4924:         Callout 255 8 0
 4925:         Ket
 4926:         Callout 255 9 1
 4927:         x
 4928:         Callout 255 10 0
 4929:         Ket
 4930:         End
 4931: ------------------------------------------------------------------
 4932: Capturing subpattern count = 1
 4933: Options:
 4934: No first char
 4935: Need char = 'x'
 4936:   abcx
 4937: --->abcx
 4938:  +0 ^        (abc|def)
 4939:  +1 ^        a
 4940:  +2 ^^       b
 4941:  +3 ^ ^      c
 4942:  +4 ^  ^     |
 4943:  +9 ^  ^     x
 4944: +10 ^   ^    
 4945:  0: abcx
 4946:  1: abc
 4947:   defx
 4948: --->defx
 4949:  +0 ^        (abc|def)
 4950:  +1 ^        a
 4951:  +5 ^        d
 4952:  +6 ^^       e
 4953:  +7 ^ ^      f
 4954:  +8 ^  ^     )
 4955:  +9 ^  ^     x
 4956: +10 ^   ^    
 4957:  0: defx
 4958:  1: def
 4959:   ** Failers 
 4960: No match
 4961:   abcdefzx
 4962: --->abcdefzx
 4963:  +0 ^            (abc|def)
 4964:  +1 ^            a
 4965:  +2 ^^           b
 4966:  +3 ^ ^          c
 4967:  +4 ^  ^         |
 4968:  +9 ^  ^         x
 4969:  +5 ^            d
 4970:  +0  ^           (abc|def)
 4971:  +1  ^           a
 4972:  +5  ^           d
 4973:  +0   ^          (abc|def)
 4974:  +1   ^          a
 4975:  +5   ^          d
 4976:  +0    ^         (abc|def)
 4977:  +1    ^         a
 4978:  +5    ^         d
 4979:  +6    ^^        e
 4980:  +7    ^ ^       f
 4981:  +8    ^  ^      )
 4982:  +9    ^  ^      x
 4983:  +0     ^        (abc|def)
 4984:  +1     ^        a
 4985:  +5     ^        d
 4986:  +0      ^       (abc|def)
 4987:  +1      ^       a
 4988:  +5      ^       d
 4989:  +0       ^      (abc|def)
 4990:  +1       ^      a
 4991:  +5       ^      d
 4992:  +0        ^     (abc|def)
 4993:  +1        ^     a
 4994:  +5        ^     d
 4995: No match
 4996: 
 4997: /(ab|cd){3,4}/IC
 4998: Capturing subpattern count = 1
 4999: Options:
 5000: No first char
 5001: No need char
 5002:   ababab
 5003: --->ababab
 5004:  +0 ^          (ab|cd){3,4}
 5005:  +1 ^          a
 5006:  +2 ^^         b
 5007:  +3 ^ ^        |
 5008:  +1 ^ ^        a
 5009:  +2 ^  ^       b
 5010:  +3 ^   ^      |
 5011:  +1 ^   ^      a
 5012:  +2 ^    ^     b
 5013:  +3 ^     ^    |
 5014:  +1 ^     ^    a
 5015:  +4 ^     ^    c
 5016: +12 ^     ^    
 5017:  0: ababab
 5018:  1: ab
 5019:   abcdabcd
 5020: --->abcdabcd
 5021:  +0 ^            (ab|cd){3,4}
 5022:  +1 ^            a
 5023:  +2 ^^           b
 5024:  +3 ^ ^          |
 5025:  +1 ^ ^          a
 5026:  +4 ^ ^          c
 5027:  +5 ^  ^         d
 5028:  +6 ^   ^        )
 5029:  +1 ^   ^        a
 5030:  +2 ^    ^       b
 5031:  +3 ^     ^      |
 5032:  +1 ^     ^      a
 5033:  +4 ^     ^      c
 5034:  +5 ^      ^     d
 5035:  +6 ^       ^    )
 5036: +12 ^       ^    
 5037:  0: abcdabcd
 5038:  1: cd
 5039:   abcdcdcdcdcd
 5040: --->abcdcdcdcdcd
 5041:  +0 ^                (ab|cd){3,4}
 5042:  +1 ^                a
 5043:  +2 ^^               b
 5044:  +3 ^ ^              |
 5045:  +1 ^ ^              a
 5046:  +4 ^ ^              c
 5047:  +5 ^  ^             d
 5048:  +6 ^   ^            )
 5049:  +1 ^   ^            a
 5050:  +4 ^   ^            c
 5051:  +5 ^    ^           d
 5052:  +6 ^     ^          )
 5053:  +1 ^     ^          a
 5054:  +4 ^     ^          c
 5055:  +5 ^      ^         d
 5056:  +6 ^       ^        )
 5057: +12 ^       ^        
 5058:  0: abcdcdcd
 5059:  1: cd
 5060: 
 5061: /([ab]{,4}c|xy)/ICDZS
 5062: ------------------------------------------------------------------
 5063:         Bra
 5064:         Callout 255 0 14
 5065:         CBra 1
 5066:         Callout 255 1 4
 5067:         [ab]
 5068:         Callout 255 5 1
 5069:         {
 5070:         Callout 255 6 1
 5071:         ,
 5072:         Callout 255 7 1
 5073:         4
 5074:         Callout 255 8 1
 5075:         }
 5076:         Callout 255 9 1
 5077:         c
 5078:         Callout 255 10 0
 5079:         Alt
 5080:         Callout 255 11 1
 5081:         x
 5082:         Callout 255 12 1
 5083:         y
 5084:         Callout 255 13 0
 5085:         Ket
 5086:         Callout 255 14 0
 5087:         Ket
 5088:         End
 5089: ------------------------------------------------------------------
 5090: Capturing subpattern count = 1
 5091: Options:
 5092: No first char
 5093: No need char
 5094: Subject length lower bound = 2
 5095: Starting byte set: a b x 
 5096:     Note: that { does NOT introduce a quantifier
 5097: --->Note: that { does NOT introduce a quantifier
 5098:  +0         ^                                        ([ab]{,4}c|xy)
 5099:  +1         ^                                        [ab]
 5100:  +5         ^^                                       {
 5101: +11         ^                                        x
 5102:  +0                                 ^                ([ab]{,4}c|xy)
 5103:  +1                                 ^                [ab]
 5104:  +5                                 ^^               {
 5105: +11                                 ^                x
 5106:  +0                                     ^            ([ab]{,4}c|xy)
 5107:  +1                                     ^            [ab]
 5108:  +5                                     ^^           {
 5109: +11                                     ^            x
 5110: No match
 5111: 
 5112: /([ab]{,4}c|xy)/ICDZSS
 5113: ------------------------------------------------------------------
 5114:         Bra
 5115:         Callout 255 0 14
 5116:         CBra 1
 5117:         Callout 255 1 4
 5118:         [ab]
 5119:         Callout 255 5 1
 5120:         {
 5121:         Callout 255 6 1
 5122:         ,
 5123:         Callout 255 7 1
 5124:         4
 5125:         Callout 255 8 1
 5126:         }
 5127:         Callout 255 9 1
 5128:         c
 5129:         Callout 255 10 0
 5130:         Alt
 5131:         Callout 255 11 1
 5132:         x
 5133:         Callout 255 12 1
 5134:         y
 5135:         Callout 255 13 0
 5136:         Ket
 5137:         Callout 255 14 0
 5138:         Ket
 5139:         End
 5140: ------------------------------------------------------------------
 5141: Capturing subpattern count = 1
 5142: Options:
 5143: No first char
 5144: No need char
 5145:     Note: that { does NOT introduce a quantifier
 5146: --->Note: that { does NOT introduce a quantifier
 5147:  +0 ^                                                ([ab]{,4}c|xy)
 5148:  +1 ^                                                [ab]
 5149: +11 ^                                                x
 5150:  +0  ^                                               ([ab]{,4}c|xy)
 5151:  +1  ^                                               [ab]
 5152: +11  ^                                               x
 5153:  +0   ^                                              ([ab]{,4}c|xy)
 5154:  +1   ^                                              [ab]
 5155: +11   ^                                              x
 5156:  +0    ^                                             ([ab]{,4}c|xy)
 5157:  +1    ^                                             [ab]
 5158: +11    ^                                             x
 5159:  +0     ^                                            ([ab]{,4}c|xy)
 5160:  +1     ^                                            [ab]
 5161: +11     ^                                            x
 5162:  +0      ^                                           ([ab]{,4}c|xy)
 5163:  +1      ^                                           [ab]
 5164: +11      ^                                           x
 5165:  +0       ^                                          ([ab]{,4}c|xy)
 5166:  +1       ^                                          [ab]
 5167: +11       ^                                          x
 5168:  +0        ^                                         ([ab]{,4}c|xy)
 5169:  +1        ^                                         [ab]
 5170: +11        ^                                         x
 5171:  +0         ^                                        ([ab]{,4}c|xy)
 5172:  +1         ^                                        [ab]
 5173:  +5         ^^                                       {
 5174: +11         ^                                        x
 5175:  +0          ^                                       ([ab]{,4}c|xy)
 5176:  +1          ^                                       [ab]
 5177: +11          ^                                       x
 5178:  +0           ^                                      ([ab]{,4}c|xy)
 5179:  +1           ^                                      [ab]
 5180: +11           ^                                      x
 5181:  +0            ^                                     ([ab]{,4}c|xy)
 5182:  +1            ^                                     [ab]
 5183: +11            ^                                     x
 5184:  +0             ^                                    ([ab]{,4}c|xy)
 5185:  +1             ^                                    [ab]
 5186: +11             ^                                    x
 5187:  +0              ^                                   ([ab]{,4}c|xy)
 5188:  +1              ^                                   [ab]
 5189: +11              ^                                   x
 5190:  +0               ^                                  ([ab]{,4}c|xy)
 5191:  +1               ^                                  [ab]
 5192: +11               ^                                  x
 5193:  +0                ^                                 ([ab]{,4}c|xy)
 5194:  +1                ^                                 [ab]
 5195: +11                ^                                 x
 5196:  +0                 ^                                ([ab]{,4}c|xy)
 5197:  +1                 ^                                [ab]
 5198: +11                 ^                                x
 5199:  +0                  ^                               ([ab]{,4}c|xy)
 5200:  +1                  ^                               [ab]
 5201: +11                  ^                               x
 5202:  +0                   ^                              ([ab]{,4}c|xy)
 5203:  +1                   ^                              [ab]
 5204: +11                   ^                              x
 5205:  +0                    ^                             ([ab]{,4}c|xy)
 5206:  +1                    ^                             [ab]
 5207: +11                    ^                             x
 5208:  +0                     ^                            ([ab]{,4}c|xy)
 5209:  +1                     ^                            [ab]
 5210: +11                     ^                            x
 5211:  +0                      ^                           ([ab]{,4}c|xy)
 5212:  +1                      ^                           [ab]
 5213: +11                      ^                           x
 5214:  +0                       ^                          ([ab]{,4}c|xy)
 5215:  +1                       ^                          [ab]
 5216: +11                       ^                          x
 5217:  +0                        ^                         ([ab]{,4}c|xy)
 5218:  +1                        ^                         [ab]
 5219: +11                        ^                         x
 5220:  +0                         ^                        ([ab]{,4}c|xy)
 5221:  +1                         ^                        [ab]
 5222: +11                         ^                        x
 5223:  +0                          ^                       ([ab]{,4}c|xy)
 5224:  +1                          ^                       [ab]
 5225: +11                          ^                       x
 5226:  +0                           ^                      ([ab]{,4}c|xy)
 5227:  +1                           ^                      [ab]
 5228: +11                           ^                      x
 5229:  +0                            ^                     ([ab]{,4}c|xy)
 5230:  +1                            ^                     [ab]
 5231: +11                            ^                     x
 5232:  +0                             ^                    ([ab]{,4}c|xy)
 5233:  +1                             ^                    [ab]
 5234: +11                             ^                    x
 5235:  +0                              ^                   ([ab]{,4}c|xy)
 5236:  +1                              ^                   [ab]
 5237: +11                              ^                   x
 5238:  +0                               ^                  ([ab]{,4}c|xy)
 5239:  +1                               ^                  [ab]
 5240: +11                               ^                  x
 5241:  +0                                ^                 ([ab]{,4}c|xy)
 5242:  +1                                ^                 [ab]
 5243: +11                                ^                 x
 5244:  +0                                 ^                ([ab]{,4}c|xy)
 5245:  +1                                 ^                [ab]
 5246:  +5                                 ^^               {
 5247: +11                                 ^                x
 5248:  +0                                  ^               ([ab]{,4}c|xy)
 5249:  +1                                  ^               [ab]
 5250: +11                                  ^               x
 5251:  +0                                   ^              ([ab]{,4}c|xy)
 5252:  +1                                   ^              [ab]
 5253: +11                                   ^              x
 5254:  +0                                    ^             ([ab]{,4}c|xy)
 5255:  +1                                    ^             [ab]
 5256: +11                                    ^             x
 5257:  +0                                     ^            ([ab]{,4}c|xy)
 5258:  +1                                     ^            [ab]
 5259:  +5                                     ^^           {
 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: +11                                            ^     x
 5282:  +0                                             ^    ([ab]{,4}c|xy)
 5283:  +1                                             ^    [ab]
 5284: +11                                             ^    x
 5285: No match
 5286: 
 5287: /([ab]{1,4}c|xy){4,5}?123/ICDZ
 5288: ------------------------------------------------------------------
 5289:         Bra
 5290:         Callout 255 0 21
 5291:         CBra 1
 5292:         Callout 255 1 9
 5293:         [ab]{1,4}
 5294:         Callout 255 10 1
 5295:         c
 5296:         Callout 255 11 0
 5297:         Alt
 5298:         Callout 255 12 1
 5299:         x
 5300:         Callout 255 13 1
 5301:         y
 5302:         Callout 255 14 0
 5303:         Ket
 5304:         CBra 1
 5305:         Callout 255 1 9
 5306:         [ab]{1,4}
 5307:         Callout 255 10 1
 5308:         c
 5309:         Callout 255 11 0
 5310:         Alt
 5311:         Callout 255 12 1
 5312:         x
 5313:         Callout 255 13 1
 5314:         y
 5315:         Callout 255 14 0
 5316:         Ket
 5317:         CBra 1
 5318:         Callout 255 1 9
 5319:         [ab]{1,4}
 5320:         Callout 255 10 1
 5321:         c
 5322:         Callout 255 11 0
 5323:         Alt
 5324:         Callout 255 12 1
 5325:         x
 5326:         Callout 255 13 1
 5327:         y
 5328:         Callout 255 14 0
 5329:         Ket
 5330:         CBra 1
 5331:         Callout 255 1 9
 5332:         [ab]{1,4}
 5333:         Callout 255 10 1
 5334:         c
 5335:         Callout 255 11 0
 5336:         Alt
 5337:         Callout 255 12 1
 5338:         x
 5339:         Callout 255 13 1
 5340:         y
 5341:         Callout 255 14 0
 5342:         Ket
 5343:         Braminzero
 5344:         CBra 1
 5345:         Callout 255 1 9
 5346:         [ab]{1,4}
 5347:         Callout 255 10 1
 5348:         c
 5349:         Callout 255 11 0
 5350:         Alt
 5351:         Callout 255 12 1
 5352:         x
 5353:         Callout 255 13 1
 5354:         y
 5355:         Callout 255 14 0
 5356:         Ket
 5357:         Callout 255 21 1
 5358:         1
 5359:         Callout 255 22 1
 5360:         2
 5361:         Callout 255 23 1
 5362:         3
 5363:         Callout 255 24 0
 5364:         Ket
 5365:         End
 5366: ------------------------------------------------------------------
 5367: Capturing subpattern count = 1
 5368: Options:
 5369: No first char
 5370: Need char = '3'
 5371:     aacaacaacaacaac123
 5372: --->aacaacaacaacaac123
 5373:  +0 ^                      ([ab]{1,4}c|xy){4,5}?
 5374:  +1 ^                      [ab]{1,4}
 5375: +10 ^ ^                    c
 5376: +11 ^  ^                   |
 5377:  +1 ^  ^                   [ab]{1,4}
 5378: +10 ^    ^                 c
 5379: +11 ^     ^                |
 5380:  +1 ^     ^                [ab]{1,4}
 5381: +10 ^       ^              c
 5382: +11 ^        ^             |
 5383:  +1 ^        ^             [ab]{1,4}
 5384: +10 ^          ^           c
 5385: +11 ^           ^          |
 5386: +21 ^           ^          1
 5387:  +1 ^           ^          [ab]{1,4}
 5388: +10 ^             ^        c
 5389: +11 ^              ^       |
 5390: +21 ^              ^       1
 5391: +22 ^               ^      2
 5392: +23 ^                ^     3
 5393: +24 ^                 ^    
 5394:  0: aacaacaacaacaac123
 5395:  1: aac
 5396: 
 5397: /\b.*/I
 5398: Capturing subpattern count = 0
 5399: Max lookbehind = 1
 5400: No options
 5401: No first char
 5402: No need char
 5403:   ab cd\>1
 5404:  0:  cd
 5405: 
 5406: /\b.*/Is
 5407: Capturing subpattern count = 0
 5408: Max lookbehind = 1
 5409: Options: dotall
 5410: No first char
 5411: No need char
 5412:   ab cd\>1
 5413:  0:  cd
 5414: 
 5415: /(?!.bcd).*/I
 5416: Capturing subpattern count = 0
 5417: No options
 5418: No first char
 5419: No need char
 5420:   Xbcd12345
 5421:  0: bcd12345
 5422: 
 5423: /abcde/I
 5424: Capturing subpattern count = 0
 5425: No options
 5426: First char = 'a'
 5427: Need char = 'e'
 5428:     ab\P
 5429: Partial match: ab
 5430:     abc\P
 5431: Partial match: abc
 5432:     abcd\P
 5433: Partial match: abcd
 5434:     abcde\P
 5435:  0: abcde
 5436:     the quick brown abc\P
 5437: Partial match: abc
 5438:     ** Failers\P
 5439: No match
 5440:     the quick brown abxyz fox\P
 5441: No match
 5442: 
 5443: "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
 5444: Capturing subpattern count = 3
 5445: Options: anchored
 5446: No first char
 5447: Need char = '/'
 5448:     13/05/04\P
 5449:  0: 13/05/04
 5450:  1: 13
 5451:  2: 05
 5452:     13/5/2004\P
 5453:  0: 13/5/2004
 5454:  1: 13
 5455:  2: 5
 5456:  3: 20
 5457:     02/05/09\P
 5458:  0: 02/05/09
 5459:  1: 02
 5460:  2: 05
 5461:     1\P
 5462: Partial match: 1
 5463:     1/2\P
 5464: Partial match: 1/2
 5465:     1/2/0\P
 5466: Partial match: 1/2/0
 5467:     1/2/04\P
 5468:  0: 1/2/04
 5469:  1: 1
 5470:  2: 2
 5471:     0\P
 5472: Partial match: 0
 5473:     02/\P
 5474: Partial match: 02/
 5475:     02/0\P
 5476: Partial match: 02/0
 5477:     02/1\P
 5478: Partial match: 02/1
 5479:     ** Failers\P
 5480: No match
 5481:     \P
 5482: No match
 5483:     123\P
 5484: No match
 5485:     33/4/04\P
 5486: No match
 5487:     3/13/04\P
 5488: No match
 5489:     0/1/2003\P
 5490: No match
 5491:     0/\P
 5492: No match
 5493:     02/0/\P
 5494: No match
 5495:     02/13\P
 5496: No match
 5497: 
 5498: /0{0,2}ABC/I
 5499: Capturing subpattern count = 0
 5500: No options
 5501: No first char
 5502: Need char = 'C'
 5503: 
 5504: /\d{3,}ABC/I
 5505: Capturing subpattern count = 0
 5506: No options
 5507: No first char
 5508: Need char = 'C'
 5509: 
 5510: /\d*ABC/I
 5511: Capturing subpattern count = 0
 5512: No options
 5513: No first char
 5514: Need char = 'C'
 5515: 
 5516: /[abc]+DE/I
 5517: Capturing subpattern count = 0
 5518: No options
 5519: No first char
 5520: Need char = 'E'
 5521: 
 5522: /[abc]?123/I
 5523: Capturing subpattern count = 0
 5524: No options
 5525: No first char
 5526: Need char = '3'
 5527:     123\P
 5528:  0: 123
 5529:     a\P
 5530: Partial match: a
 5531:     b\P
 5532: Partial match: b
 5533:     c\P
 5534: Partial match: c
 5535:     c12\P
 5536: Partial match: c12
 5537:     c123\P
 5538:  0: c123
 5539: 
 5540: /^(?:\d){3,5}X/I
 5541: Capturing subpattern count = 0
 5542: Options: anchored
 5543: No first char
 5544: Need char = 'X'
 5545:     1\P
 5546: Partial match: 1
 5547:     123\P
 5548: Partial match: 123
 5549:     123X
 5550:  0: 123X
 5551:     1234\P
 5552: Partial match: 1234
 5553:     1234X
 5554:  0: 1234X
 5555:     12345\P
 5556: Partial match: 12345
 5557:     12345X
 5558:  0: 12345X
 5559:     *** Failers
 5560: No match
 5561:     1X
 5562: No match
 5563:     123456\P
 5564: No match
 5565: 
 5566: /abc/IS>testsavedregex
 5567: Capturing subpattern count = 0
 5568: No options
 5569: First char = 'a'
 5570: Need char = 'c'
 5571: Subject length lower bound = 3
 5572: No set of starting bytes
 5573: Compiled pattern written to testsavedregex
 5574: Study data written to testsavedregex
 5575: <testsavedregex
 5576: Compiled pattern loaded from testsavedregex
 5577: Study data loaded from testsavedregex
 5578:     abc
 5579:  0: abc
 5580:     ** Failers
 5581: No match
 5582:     bca
 5583: No match
 5584: 
 5585: /abc/ISS>testsavedregex
 5586: Capturing subpattern count = 0
 5587: No options
 5588: First char = 'a'
 5589: Need char = 'c'
 5590: Compiled pattern written to testsavedregex
 5591: <testsavedregex
 5592: Compiled pattern loaded from testsavedregex
 5593: No study data
 5594:     abc
 5595:  0: abc
 5596:     ** Failers
 5597: No match
 5598:     bca
 5599: No match
 5600: 
 5601: /abc/IFS>testsavedregex
 5602: Capturing subpattern count = 0
 5603: No options
 5604: First char = 'a'
 5605: Need char = 'c'
 5606: Subject length lower bound = 3
 5607: No set of starting bytes
 5608: Compiled pattern written to testsavedregex
 5609: Study data written to testsavedregex
 5610: <testsavedregex
 5611: Compiled pattern (byte-inverted) loaded from testsavedregex
 5612: Study data loaded from testsavedregex
 5613:     abc
 5614:  0: abc
 5615:     ** Failers
 5616: No match
 5617:     bca
 5618: No match
 5619: 
 5620: /abc/IFSS>testsavedregex
 5621: Capturing subpattern count = 0
 5622: No options
 5623: First char = 'a'
 5624: Need char = 'c'
 5625: Compiled pattern written to testsavedregex
 5626: <testsavedregex
 5627: Compiled pattern (byte-inverted) loaded from testsavedregex
 5628: No study data
 5629:     abc
 5630:  0: abc
 5631:     ** Failers
 5632: No match
 5633:     bca
 5634: No match
 5635: 
 5636: /(a|b)/IS>testsavedregex
 5637: Capturing subpattern count = 1
 5638: No options
 5639: No first char
 5640: No need char
 5641: Subject length lower bound = 1
 5642: Starting byte set: a b 
 5643: Compiled pattern written to testsavedregex
 5644: Study data written to testsavedregex
 5645: <testsavedregex
 5646: Compiled pattern loaded from testsavedregex
 5647: Study data loaded from testsavedregex
 5648:     abc
 5649:  0: a
 5650:  1: a
 5651:     ** Failers
 5652:  0: a
 5653:  1: a
 5654:     def
 5655: No match
 5656: 
 5657: /(a|b)/ISS>testsavedregex
 5658: Capturing subpattern count = 1
 5659: No options
 5660: No first char
 5661: No need char
 5662: Compiled pattern written to testsavedregex
 5663: <testsavedregex
 5664: Compiled pattern loaded from testsavedregex
 5665: No study data
 5666:     abc
 5667:  0: a
 5668:  1: a
 5669:     ** Failers
 5670:  0: a
 5671:  1: a
 5672:     def
 5673: No match
 5674: 
 5675: /(a|b)/ISF>testsavedregex
 5676: Capturing subpattern count = 1
 5677: No options
 5678: No first char
 5679: No need char
 5680: Subject length lower bound = 1
 5681: Starting byte set: a b 
 5682: Compiled pattern written to testsavedregex
 5683: Study data written to testsavedregex
 5684: <testsavedregex
 5685: Compiled pattern (byte-inverted) loaded from testsavedregex
 5686: Study data loaded from testsavedregex
 5687:     abc
 5688:  0: a
 5689:  1: a
 5690:     ** Failers
 5691:  0: a
 5692:  1: a
 5693:     def
 5694: No match
 5695: 
 5696: /(a|b)/ISSF>testsavedregex
 5697: Capturing subpattern count = 1
 5698: No options
 5699: No first char
 5700: No need char
 5701: Compiled pattern written to testsavedregex
 5702: <testsavedregex
 5703: Compiled pattern (byte-inverted) loaded from testsavedregex
 5704: No study data
 5705:     abc
 5706:  0: a
 5707:  1: a
 5708:     ** Failers
 5709:  0: a
 5710:  1: a
 5711:     def
 5712: No match
 5713: 
 5714: ~<(\w+)/?>(.)*</(\1)>~smgI
 5715: Capturing subpattern count = 3
 5716: Max back reference = 1
 5717: Options: multiline dotall
 5718: First char = '<'
 5719: Need char = '>'
 5720:     \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>
 5721:  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>
 5722:  1: seite
 5723:  2: \x0a
 5724:  3: seite
 5725: 
 5726: /^a/IF
 5727: Capturing subpattern count = 0
 5728: Options: anchored
 5729: No first char
 5730: No need char
 5731: 
 5732: /line\nbreak/I
 5733: Capturing subpattern count = 0
 5734: Contains explicit CR or LF match
 5735: No options
 5736: First char = 'l'
 5737: Need char = 'k'
 5738:     this is a line\nbreak
 5739:  0: line\x0abreak
 5740:     line one\nthis is a line\nbreak in the second line
 5741:  0: line\x0abreak
 5742: 
 5743: /line\nbreak/If
 5744: Capturing subpattern count = 0
 5745: Contains explicit CR or LF match
 5746: Options: firstline
 5747: First char = 'l'
 5748: Need char = 'k'
 5749:     this is a line\nbreak
 5750:  0: line\x0abreak
 5751:     ** Failers
 5752: No match
 5753:     line one\nthis is a line\nbreak in the second line
 5754: No match
 5755: 
 5756: /line\nbreak/Imf
 5757: Capturing subpattern count = 0
 5758: Contains explicit CR or LF match
 5759: Options: multiline firstline
 5760: First char = 'l'
 5761: Need char = 'k'
 5762:     this is a line\nbreak
 5763:  0: line\x0abreak
 5764:     ** Failers
 5765: No match
 5766:     line one\nthis is a line\nbreak in the second line
 5767: No match
 5768: 
 5769: /(?i)(?-i)AbCd/I
 5770: Capturing subpattern count = 0
 5771: No options
 5772: First char = 'A'
 5773: Need char = 'd'
 5774:     AbCd
 5775:  0: AbCd
 5776:     ** Failers
 5777: No match
 5778:     abcd
 5779: No match
 5780: 
 5781: /a{11111111111111111111}/I
 5782: Failed: number too big in {} quantifier at offset 22
 5783: 
 5784: /(){64294967295}/I
 5785: Failed: number too big in {} quantifier at offset 14
 5786: 
 5787: /(){2,4294967295}/I
 5788: Failed: number too big in {} quantifier at offset 15
 5789: 
 5790: "(?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
 5791: Capturing subpattern count = 1
 5792: Max back reference = 1
 5793: No options
 5794: First char = 'a' (caseless)
 5795: Need char = 'B'
 5796:     abcdefghijklAkB
 5797:  0: abcdefghijklAkB
 5798:  1: k
 5799: 
 5800: "(?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
 5801: Capturing subpattern count = 12
 5802: Max back reference = 11
 5803: Named capturing subpatterns:
 5804:   n0    1
 5805:   n1    2
 5806:   n10  11
 5807:   n11  12
 5808:   n2    3
 5809:   n3    4
 5810:   n4    5
 5811:   n5    6
 5812:   n6    7
 5813:   n7    8
 5814:   n8    9
 5815:   n9   10
 5816: No options
 5817: First char = 'a'
 5818: Need char = 'B'
 5819:     abcdefghijklAkB
 5820:  0: abcdefghijklAkB
 5821:  1: a
 5822:  2: b
 5823:  3: c
 5824:  4: d
 5825:  5: e
 5826:  6: f
 5827:  7: g
 5828:  8: h
 5829:  9: i
 5830: 10: j
 5831: 11: k
 5832: 12: l
 5833: 
 5834: "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
 5835: Capturing subpattern count = 12
 5836: Max back reference = 11
 5837: No options
 5838: First char = 'a'
 5839: Need char = 'B'
 5840:     abcdefghijklAkB
 5841:  0: abcdefghijklAkB
 5842:  1: a
 5843:  2: b
 5844:  3: c
 5845:  4: d
 5846:  5: e
 5847:  6: f
 5848:  7: g
 5849:  8: h
 5850:  9: i
 5851: 10: j
 5852: 11: k
 5853: 12: l
 5854: 
 5855: "(?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
 5856: Capturing subpattern count = 101
 5857: Named capturing subpatterns:
 5858:   name0     1
 5859:   name1     2
 5860:   name10   11
 5861:   name100 101
 5862:   name11   12
 5863:   name12   13
 5864:   name13   14
 5865:   name14   15
 5866:   name15   16
 5867:   name16   17
 5868:   name17   18
 5869:   name18   19
 5870:   name19   20
 5871:   name2     3
 5872:   name20   21
 5873:   name21   22
 5874:   name22   23
 5875:   name23   24
 5876:   name24   25
 5877:   name25   26
 5878:   name26   27
 5879:   name27   28
 5880:   name28   29
 5881:   name29   30
 5882:   name3     4
 5883:   name30   31
 5884:   name31   32
 5885:   name32   33
 5886:   name33   34
 5887:   name34   35
 5888:   name35   36
 5889:   name36   37
 5890:   name37   38
 5891:   name38   39
 5892:   name39   40
 5893:   name4     5
 5894:   name40   41
 5895:   name41   42
 5896:   name42   43
 5897:   name43   44
 5898:   name44   45
 5899:   name45   46
 5900:   name46   47
 5901:   name47   48
 5902:   name48   49
 5903:   name49   50
 5904:   name5     6
 5905:   name50   51
 5906:   name51   52
 5907:   name52   53
 5908:   name53   54
 5909:   name54   55
 5910:   name55   56
 5911:   name56   57
 5912:   name57   58
 5913:   name58   59
 5914:   name59   60
 5915:   name6     7
 5916:   name60   61
 5917:   name61   62
 5918:   name62   63
 5919:   name63   64
 5920:   name64   65
 5921:   name65   66
 5922:   name66   67
 5923:   name67   68
 5924:   name68   69
 5925:   name69   70
 5926:   name7     8
 5927:   name70   71
 5928:   name71   72
 5929:   name72   73
 5930:   name73   74
 5931:   name74   75
 5932:   name75   76
 5933:   name76   77
 5934:   name77   78
 5935:   name78   79
 5936:   name79   80
 5937:   name8     9
 5938:   name80   81
 5939:   name81   82
 5940:   name82   83
 5941:   name83   84
 5942:   name84   85
 5943:   name85   86
 5944:   name86   87
 5945:   name87   88
 5946:   name88   89
 5947:   name89   90
 5948:   name9    10
 5949:   name90   91
 5950:   name91   92
 5951:   name92   93
 5952:   name93   94
 5953:   name94   95
 5954:   name95   96
 5955:   name96   97
 5956:   name97   98
 5957:   name98   99
 5958:   name99  100
 5959: No options
 5960: First char = 'a'
 5961: Need char = 'a'
 5962:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 5963: Matched, but too many substrings
 5964:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 5965:  1: a
 5966:  2: a
 5967:  3: a
 5968:  4: a
 5969:  5: a
 5970:  6: a
 5971:  7: a
 5972:  8: a
 5973:  9: a
 5974: 10: a
 5975: 11: a
 5976: 12: a
 5977: 13: a
 5978: 14: a
 5979: 
 5980: "(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(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
 5981: Capturing subpattern count = 101
 5982: No options
 5983: First char = 'a'
 5984: Need char = 'a'
 5985:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 5986: Matched, but too many substrings
 5987:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 5988:  1: a
 5989:  2: a
 5990:  3: a
 5991:  4: a
 5992:  5: a
 5993:  6: a
 5994:  7: a
 5995:  8: a
 5996:  9: a
 5997: 10: a
 5998: 11: a
 5999: 12: a
 6000: 13: a
 6001: 14: a
 6002: 
 6003: /[^()]*(?:\((?R)\)[^()]*)*/I
 6004: Capturing subpattern count = 0
 6005: No options
 6006: No first char
 6007: No need char
 6008:     (this(and)that
 6009:  0: 
 6010:     (this(and)that)
 6011:  0: (this(and)that)
 6012:     (this(and)that)stuff
 6013:  0: (this(and)that)stuff
 6014: 
 6015: /[^()]*(?:\((?>(?R))\)[^()]*)*/I
 6016: Capturing subpattern count = 0
 6017: No options
 6018: No first char
 6019: No need char
 6020:     (this(and)that
 6021:  0: 
 6022:     (this(and)that)
 6023:  0: (this(and)that)
 6024: 
 6025: /[^()]*(?:\((?R)\))*[^()]*/I
 6026: Capturing subpattern count = 0
 6027: No options
 6028: No first char
 6029: No need char
 6030:     (this(and)that
 6031:  0: 
 6032:     (this(and)that)
 6033:  0: (this(and)that)
 6034: 
 6035: /(?:\((?R)\))*[^()]*/I
 6036: Capturing subpattern count = 0
 6037: No options
 6038: No first char
 6039: No need char
 6040:     (this(and)that
 6041:  0: 
 6042:     (this(and)that)
 6043:  0: 
 6044:     ((this))
 6045:  0: ((this))
 6046: 
 6047: /(?:\((?R)\))|[^()]*/I
 6048: Capturing subpattern count = 0
 6049: No options
 6050: No first char
 6051: No need char
 6052:     (this(and)that
 6053:  0: 
 6054:     (this(and)that)
 6055:  0: 
 6056:     (this)
 6057:  0: (this)
 6058:     ((this))
 6059:  0: ((this))
 6060: 
 6061: /\x{0000ff}/I
 6062: Capturing subpattern count = 0
 6063: No options
 6064: First char = \xff
 6065: No need char
 6066: 
 6067: /^((?P<A>a1)|(?P<A>a2)b)/I
 6068: Failed: two named subpatterns have the same name at offset 17
 6069: 
 6070: /^((?P<A>a1)|(?P<A>a2)b)/IJ
 6071: Capturing subpattern count = 3
 6072: Named capturing subpatterns:
 6073:   A   2
 6074:   A   3
 6075: Options: anchored dupnames
 6076: No first char
 6077: No need char
 6078:     a1b\CA
 6079:  0: a1
 6080:  1: a1
 6081:  2: a1
 6082:   C a1 (2) A
 6083:     a2b\CA
 6084:  0: a2b
 6085:  1: a2b
 6086:  2: <unset>
 6087:  3: a2
 6088:   C a2 (2) A
 6089:     ** Failers
 6090: No match
 6091:     a1b\CZ\CA
 6092: no parentheses with name "Z"
 6093:  0: a1
 6094:  1: a1
 6095:  2: a1
 6096: copy substring Z failed -7
 6097:   C a1 (2) A
 6098: 
 6099: /^(?P<A>a)(?P<A>b)/IJ
 6100: Capturing subpattern count = 2
 6101: Named capturing subpatterns:
 6102:   A   1
 6103:   A   2
 6104: Options: anchored dupnames
 6105: No first char
 6106: No need char
 6107:     ab\CA
 6108:  0: ab
 6109:  1: a
 6110:  2: b
 6111:   C a (1) A
 6112: 
 6113: /^(?P<A>a)(?P<A>b)|cd/IJ
 6114: Capturing subpattern count = 2
 6115: Named capturing subpatterns:
 6116:   A   1
 6117:   A   2
 6118: Options: dupnames
 6119: No first char
 6120: No need char
 6121:     ab\CA
 6122:  0: ab
 6123:  1: a
 6124:  2: b
 6125:   C a (1) A
 6126:     cd\CA
 6127:  0: cd
 6128: copy substring A failed -7
 6129: 
 6130: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
 6131: Capturing subpattern count = 4
 6132: Named capturing subpatterns:
 6133:   A   1
 6134:   A   2
 6135:   A   3
 6136:   A   4
 6137: Options: dupnames
 6138: No first char
 6139: No need char
 6140:     cdefgh\CA
 6141:  0: cdefgh
 6142:  1: <unset>
 6143:  2: <unset>
 6144:  3: ef
 6145:  4: gh
 6146:   C ef (2) A
 6147: 
 6148: /^((?P<A>a1)|(?P<A>a2)b)/IJ
 6149: Capturing subpattern count = 3
 6150: Named capturing subpatterns:
 6151:   A   2
 6152:   A   3
 6153: Options: anchored dupnames
 6154: No first char
 6155: No need char
 6156:     a1b\GA
 6157:  0: a1
 6158:  1: a1
 6159:  2: a1
 6160:   G a1 (2) A
 6161:     a2b\GA
 6162:  0: a2b
 6163:  1: a2b
 6164:  2: <unset>
 6165:  3: a2
 6166:   G a2 (2) A
 6167:     ** Failers
 6168: No match
 6169:     a1b\GZ\GA
 6170: no parentheses with name "Z"
 6171:  0: a1
 6172:  1: a1
 6173:  2: a1
 6174: get substring Z failed -7
 6175:   G a1 (2) A
 6176: 
 6177: /^(?P<A>a)(?P<A>b)/IJ
 6178: Capturing subpattern count = 2
 6179: Named capturing subpatterns:
 6180:   A   1
 6181:   A   2
 6182: Options: anchored dupnames
 6183: No first char
 6184: No need char
 6185:     ab\GA
 6186:  0: ab
 6187:  1: a
 6188:  2: b
 6189:   G a (1) A
 6190: 
 6191: /^(?P<A>a)(?P<A>b)|cd/IJ
 6192: Capturing subpattern count = 2
 6193: Named capturing subpatterns:
 6194:   A   1
 6195:   A   2
 6196: Options: dupnames
 6197: No first char
 6198: No need char
 6199:     ab\GA
 6200:  0: ab
 6201:  1: a
 6202:  2: b
 6203:   G a (1) A
 6204:     cd\GA
 6205:  0: cd
 6206: get substring A failed -7
 6207: 
 6208: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
 6209: Capturing subpattern count = 4
 6210: Named capturing subpatterns:
 6211:   A   1
 6212:   A   2
 6213:   A   3
 6214:   A   4
 6215: Options: dupnames
 6216: No first char
 6217: No need char
 6218:     cdefgh\GA
 6219:  0: cdefgh
 6220:  1: <unset>
 6221:  2: <unset>
 6222:  3: ef
 6223:  4: gh
 6224:   G ef (2) A
 6225: 
 6226: /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
 6227: Capturing subpattern count = 3
 6228: Named capturing subpatterns:
 6229:   A   2
 6230:   A   3
 6231: Options: anchored dupnames
 6232: Duplicate name status changes
 6233: No first char
 6234: No need char
 6235:     a1b\CA
 6236:  0: a1
 6237:  1: a1
 6238:  2: a1
 6239:   C a1 (2) A
 6240:     a2b\CA
 6241:  0: a2b
 6242:  1: a2b
 6243:  2: <unset>
 6244:  3: a2
 6245:   C a2 (2) A
 6246: 
 6247: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
 6248: Failed: two named subpatterns have the same name at offset 37
 6249: 
 6250: / In this next test, J is not set at the outer level; consequently it isn't
 6251: set in the pattern's options; consequently pcre_get_named_substring() produces
 6252: a random value. /Ix
 6253: Capturing subpattern count = 1
 6254: Options: extended
 6255: First char = 'I'
 6256: Need char = 'e'
 6257: 
 6258: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
 6259: Capturing subpattern count = 4
 6260: Named capturing subpatterns:
 6261:   A   1
 6262:   B   2
 6263:   B   3
 6264:   C   4
 6265: Options: anchored
 6266: Duplicate name status changes
 6267: No first char
 6268: No need char
 6269:     a bc d\CA\CB\CC
 6270:  0: a bc d
 6271:  1: a
 6272:  2: b
 6273:  3: c
 6274:  4: d
 6275:   C a (1) A
 6276:   C b (1) B
 6277:   C d (1) C
 6278: 
 6279: /^(?P<A>a)?(?(A)a|b)/I
 6280: Capturing subpattern count = 1
 6281: Named capturing subpatterns:
 6282:   A   1
 6283: Options: anchored
 6284: No first char
 6285: No need char
 6286:     aabc
 6287:  0: aa
 6288:  1: a
 6289:     bc
 6290:  0: b
 6291:     ** Failers
 6292: No match
 6293:     abc
 6294: No match
 6295: 
 6296: /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
 6297: Capturing subpattern count = 1
 6298: Named capturing subpatterns:
 6299:   ZZ   1
 6300: No options
 6301: No first char
 6302: Need char = 'X'
 6303:     bXaX
 6304:  0: bXaX
 6305:  1: X
 6306: 
 6307: /(?:(?(2y)a|b)(X))+/I
 6308: Failed: reference to non-existent subpattern at offset 9
 6309: 
 6310: /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
 6311: Failed: reference to non-existent subpattern at offset 9
 6312: 
 6313: /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
 6314: Capturing subpattern count = 1
 6315: Named capturing subpatterns:
 6316:   ZZ   1
 6317: No options
 6318: No first char
 6319: Need char = 'X'
 6320:     bbXaaX
 6321:  0: bbXaaX
 6322:  1: X
 6323: 
 6324: /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
 6325: Capturing subpattern count = 1
 6326: Named capturing subpatterns:
 6327:   ZZ   1
 6328: No options
 6329: No first char
 6330: Need char = 'X'
 6331:     (b)\\Xa\\X
 6332:  0: (b)\Xa\X
 6333:  1: X
 6334: 
 6335: /(?P<ABC/I
 6336: Failed: syntax error in subpattern name (missing terminator) at offset 7
 6337: 
 6338: /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
 6339: Capturing subpattern count = 1
 6340: Max back reference = 1
 6341: Named capturing subpatterns:
 6342:   A   1
 6343: No options
 6344: No first char
 6345: No need char
 6346:     bXXaYYaY
 6347:  0: bXXaYYaY
 6348:  1: Y
 6349:     bXYaXXaX
 6350:  0: bX
 6351:  1: X
 6352: 
 6353: /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
 6354: Capturing subpattern count = 10
 6355: Max back reference = 10
 6356: Named capturing subpatterns:
 6357:   A  10
 6358: No options
 6359: No first char
 6360: No need char
 6361:     bXXaYYaY
 6362:  0: bXXaYYaY
 6363:  1: 
 6364:  2: 
 6365:  3: 
 6366:  4: 
 6367:  5: 
 6368:  6: 
 6369:  7: 
 6370:  8: 
 6371:  9: 
 6372: 10: Y
 6373: 
 6374: /\s*,\s*/IS
 6375: Capturing subpattern count = 0
 6376: No options
 6377: No first char
 6378: Need char = ','
 6379: Subject length lower bound = 1
 6380: Starting byte set: \x09 \x0a \x0c \x0d \x20 , 
 6381:     \x0b,\x0b
 6382:  0: ,
 6383:     \x0c,\x0d
 6384:  0: \x0c,\x0d
 6385: 
 6386: /^abc/Im
 6387: Capturing subpattern count = 0
 6388: Options: multiline
 6389: First char at start or follows newline
 6390: Need char = 'c'
 6391:     xyz\nabc
 6392:  0: abc
 6393:     xyz\nabc\<lf>
 6394:  0: abc
 6395:     xyz\r\nabc\<lf>
 6396:  0: abc
 6397:     xyz\rabc\<cr>
 6398:  0: abc
 6399:     xyz\r\nabc\<crlf>
 6400:  0: abc
 6401:     ** Failers
 6402: No match
 6403:     xyz\nabc\<cr>
 6404: No match
 6405:     xyz\r\nabc\<cr>
 6406: No match
 6407:     xyz\nabc\<crlf>
 6408: No match
 6409:     xyz\rabc\<crlf>
 6410: No match
 6411:     xyz\rabc\<lf>
 6412: No match
 6413: 
 6414: /abc$/Im<lf>
 6415: Capturing subpattern count = 0
 6416: Options: multiline
 6417: Forced newline sequence: LF
 6418: First char = 'a'
 6419: Need char = 'c'
 6420:     xyzabc
 6421:  0: abc
 6422:     xyzabc\n
 6423:  0: abc
 6424:     xyzabc\npqr
 6425:  0: abc
 6426:     xyzabc\r\<cr>
 6427:  0: abc
 6428:     xyzabc\rpqr\<cr>
 6429:  0: abc
 6430:     xyzabc\r\n\<crlf>
 6431:  0: abc
 6432:     xyzabc\r\npqr\<crlf>
 6433:  0: abc
 6434:     ** Failers
 6435: No match
 6436:     xyzabc\r
 6437: No match
 6438:     xyzabc\rpqr
 6439: No match
 6440:     xyzabc\r\n
 6441: No match
 6442:     xyzabc\r\npqr
 6443: No match
 6444: 
 6445: /^abc/Im<cr>
 6446: Capturing subpattern count = 0
 6447: Options: multiline
 6448: Forced newline sequence: CR
 6449: First char at start or follows newline
 6450: Need char = 'c'
 6451:     xyz\rabcdef
 6452:  0: abc
 6453:     xyz\nabcdef\<lf>
 6454:  0: abc
 6455:     ** Failers
 6456: No match
 6457:     xyz\nabcdef
 6458: No match
 6459: 
 6460: /^abc/Im<lf>
 6461: Capturing subpattern count = 0
 6462: Options: multiline
 6463: Forced newline sequence: LF
 6464: First char at start or follows newline
 6465: Need char = 'c'
 6466:     xyz\nabcdef
 6467:  0: abc
 6468:     xyz\rabcdef\<cr>
 6469:  0: abc
 6470:     ** Failers
 6471: No match
 6472:     xyz\rabcdef
 6473: No match
 6474: 
 6475: /^abc/Im<crlf>
 6476: Capturing subpattern count = 0
 6477: Options: multiline
 6478: Forced newline sequence: CRLF
 6479: First char at start or follows newline
 6480: Need char = 'c'
 6481:     xyz\r\nabcdef
 6482:  0: abc
 6483:     xyz\rabcdef\<cr>
 6484:  0: abc
 6485:     ** Failers
 6486: No match
 6487:     xyz\rabcdef
 6488: No match
 6489: 
 6490: /^abc/Im<bad>
 6491: Unknown newline type at: <bad>
 6492: 
 6493: 
 6494: /abc/I
 6495: Capturing subpattern count = 0
 6496: No options
 6497: First char = 'a'
 6498: Need char = 'c'
 6499:     xyz\rabc\<bad>
 6500: Unknown newline type at: <bad>
 6501:     abc
 6502:  0: abc
 6503: 
 6504: /.*/I<lf>
 6505: Capturing subpattern count = 0
 6506: Options:
 6507: Forced newline sequence: LF
 6508: First char at start or follows newline
 6509: No need char
 6510:     abc\ndef
 6511:  0: abc
 6512:     abc\rdef
 6513:  0: abc\x0ddef
 6514:     abc\r\ndef
 6515:  0: abc\x0d
 6516:     \<cr>abc\ndef
 6517:  0: abc\x0adef
 6518:     \<cr>abc\rdef
 6519:  0: abc
 6520:     \<cr>abc\r\ndef
 6521:  0: abc
 6522:     \<crlf>abc\ndef
 6523:  0: abc\x0adef
 6524:     \<crlf>abc\rdef
 6525:  0: abc\x0ddef
 6526:     \<crlf>abc\r\ndef
 6527:  0: abc
 6528: 
 6529: /\w+(.)(.)?def/Is
 6530: Capturing subpattern count = 2
 6531: Options: dotall
 6532: No first char
 6533: Need char = 'f'
 6534:     abc\ndef
 6535:  0: abc\x0adef
 6536:  1: \x0a
 6537:     abc\rdef
 6538:  0: abc\x0ddef
 6539:  1: \x0d
 6540:     abc\r\ndef
 6541:  0: abc\x0d\x0adef
 6542:  1: \x0d
 6543:  2: \x0a
 6544: 
 6545: +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
 6546: Capturing subpattern count = 1
 6547: No options
 6548: No first char
 6549: No need char
 6550:    /* this is a C style comment */\M
 6551: Minimum match() limit = 120
 6552: Minimum match() recursion limit = 6
 6553:  0: /* this is a C style comment */
 6554:  1: /* this is a C style comment */
 6555: 
 6556: /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
 6557: Capturing subpattern count = 1
 6558: Named capturing subpatterns:
 6559:   B   1
 6560: No options
 6561: No first char
 6562: Need char = '.'
 6563: 
 6564: /()()()()()()()()()()()()()()()()()()()()
 6565:  ()()()()()()()()()()()()()()()()()()()()
 6566:  ()()()()()()()()()()()()()()()()()()()()
 6567:  ()()()()()()()()()()()()()()()()()()()()
 6568:  ()()()()()()()()()()()()()()()()()()()()
 6569:  (.(.))/Ix
 6570: Capturing subpattern count = 102
 6571: Options: extended
 6572: No first char
 6573: No need char
 6574:     XY\O400
 6575:  0: XY
 6576:  1: 
 6577:  2: 
 6578:  3: 
 6579:  4: 
 6580:  5: 
 6581:  6: 
 6582:  7: 
 6583:  8: 
 6584:  9: 
 6585: 10: 
 6586: 11: 
 6587: 12: 
 6588: 13: 
 6589: 14: 
 6590: 15: 
 6591: 16: 
 6592: 17: 
 6593: 18: 
 6594: 19: 
 6595: 20: 
 6596: 21: 
 6597: 22: 
 6598: 23: 
 6599: 24: 
 6600: 25: 
 6601: 26: 
 6602: 27: 
 6603: 28: 
 6604: 29: 
 6605: 30: 
 6606: 31: 
 6607: 32: 
 6608: 33: 
 6609: 34: 
 6610: 35: 
 6611: 36: 
 6612: 37: 
 6613: 38: 
 6614: 39: 
 6615: 40: 
 6616: 41: 
 6617: 42: 
 6618: 43: 
 6619: 44: 
 6620: 45: 
 6621: 46: 
 6622: 47: 
 6623: 48: 
 6624: 49: 
 6625: 50: 
 6626: 51: 
 6627: 52: 
 6628: 53: 
 6629: 54: 
 6630: 55: 
 6631: 56: 
 6632: 57: 
 6633: 58: 
 6634: 59: 
 6635: 60: 
 6636: 61: 
 6637: 62: 
 6638: 63: 
 6639: 64: 
 6640: 65: 
 6641: 66: 
 6642: 67: 
 6643: 68: 
 6644: 69: 
 6645: 70: 
 6646: 71: 
 6647: 72: 
 6648: 73: 
 6649: 74: 
 6650: 75: 
 6651: 76: 
 6652: 77: 
 6653: 78: 
 6654: 79: 
 6655: 80: 
 6656: 81: 
 6657: 82: 
 6658: 83: 
 6659: 84: 
 6660: 85: 
 6661: 86: 
 6662: 87: 
 6663: 88: 
 6664: 89: 
 6665: 90: 
 6666: 91: 
 6667: 92: 
 6668: 93: 
 6669: 94: 
 6670: 95: 
 6671: 96: 
 6672: 97: 
 6673: 98: 
 6674: 99: 
 6675: 100: 
 6676: 101: XY
 6677: 102: Y
 6678: 
 6679: /(a*b|(?i:c*(?-i)d))/IS
 6680: Capturing subpattern count = 1
 6681: No options
 6682: No first char
 6683: No need char
 6684: Subject length lower bound = 1
 6685: Starting byte set: C a b c d 
 6686: 
 6687: /()[ab]xyz/IS
 6688: Capturing subpattern count = 1
 6689: No options
 6690: No first char
 6691: Need char = 'z'
 6692: Subject length lower bound = 4
 6693: Starting byte set: a b 
 6694: 
 6695: /(|)[ab]xyz/IS
 6696: Capturing subpattern count = 1
 6697: No options
 6698: No first char
 6699: Need char = 'z'
 6700: Subject length lower bound = 4
 6701: Starting byte set: a b 
 6702: 
 6703: /(|c)[ab]xyz/IS
 6704: Capturing subpattern count = 1
 6705: No options
 6706: No first char
 6707: Need char = 'z'
 6708: Subject length lower bound = 4
 6709: Starting byte set: a b c 
 6710: 
 6711: /(|c?)[ab]xyz/IS
 6712: Capturing subpattern count = 1
 6713: No options
 6714: No first char
 6715: Need char = 'z'
 6716: Subject length lower bound = 4
 6717: Starting byte set: a b c 
 6718: 
 6719: /(d?|c?)[ab]xyz/IS
 6720: Capturing subpattern count = 1
 6721: No options
 6722: No first char
 6723: Need char = 'z'
 6724: Subject length lower bound = 4
 6725: Starting byte set: a b c d 
 6726: 
 6727: /(d?|c)[ab]xyz/IS
 6728: Capturing subpattern count = 1
 6729: No options
 6730: No first char
 6731: Need char = 'z'
 6732: Subject length lower bound = 4
 6733: Starting byte set: a b c d 
 6734: 
 6735: /^a*b\d/DZ
 6736: ------------------------------------------------------------------
 6737:         Bra
 6738:         ^
 6739:         a*+
 6740:         b
 6741:         \d
 6742:         Ket
 6743:         End
 6744: ------------------------------------------------------------------
 6745: Capturing subpattern count = 0
 6746: Options: anchored
 6747: No first char
 6748: Need char = 'b'
 6749: 
 6750: /^a*+b\d/DZ
 6751: ------------------------------------------------------------------
 6752:         Bra
 6753:         ^
 6754:         a*+
 6755:         b
 6756:         \d
 6757:         Ket
 6758:         End
 6759: ------------------------------------------------------------------
 6760: Capturing subpattern count = 0
 6761: Options: anchored
 6762: No first char
 6763: Need char = 'b'
 6764: 
 6765: /^a*?b\d/DZ
 6766: ------------------------------------------------------------------
 6767:         Bra
 6768:         ^
 6769:         a*+
 6770:         b
 6771:         \d
 6772:         Ket
 6773:         End
 6774: ------------------------------------------------------------------
 6775: Capturing subpattern count = 0
 6776: Options: anchored
 6777: No first char
 6778: Need char = 'b'
 6779: 
 6780: /^a+A\d/DZ
 6781: ------------------------------------------------------------------
 6782:         Bra
 6783:         ^
 6784:         a++
 6785:         A
 6786:         \d
 6787:         Ket
 6788:         End
 6789: ------------------------------------------------------------------
 6790: Capturing subpattern count = 0
 6791: Options: anchored
 6792: No first char
 6793: Need char = 'A'
 6794:     aaaA5
 6795:  0: aaaA5
 6796:     ** Failers
 6797: No match
 6798:     aaaa5
 6799: No match
 6800: 
 6801: /^a*A\d/IiDZ
 6802: ------------------------------------------------------------------
 6803:         Bra
 6804:         ^
 6805:      /i a*
 6806:      /i A
 6807:         \d
 6808:         Ket
 6809:         End
 6810: ------------------------------------------------------------------
 6811: Capturing subpattern count = 0
 6812: Options: anchored caseless
 6813: No first char
 6814: Need char = 'A' (caseless)
 6815:     aaaA5
 6816:  0: aaaA5
 6817:     aaaa5
 6818:  0: aaaa5
 6819: 
 6820: /(a*|b*)[cd]/IS
 6821: Capturing subpattern count = 1
 6822: No options
 6823: No first char
 6824: No need char
 6825: Subject length lower bound = 1
 6826: Starting byte set: a b c d 
 6827: 
 6828: /(a+|b*)[cd]/IS
 6829: Capturing subpattern count = 1
 6830: No options
 6831: No first char
 6832: No need char
 6833: Subject length lower bound = 1
 6834: Starting byte set: a b c d 
 6835: 
 6836: /(a*|b+)[cd]/IS
 6837: Capturing subpattern count = 1
 6838: No options
 6839: No first char
 6840: No need char
 6841: Subject length lower bound = 1
 6842: Starting byte set: a b c d 
 6843: 
 6844: /(a+|b+)[cd]/IS
 6845: Capturing subpattern count = 1
 6846: No options
 6847: No first char
 6848: No need char
 6849: Subject length lower bound = 2
 6850: Starting byte set: a b 
 6851: 
 6852: /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
 6853:  ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
 6854:  (((
 6855:  a
 6856:  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
 6857:  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
 6858:  )))
 6859: /Ix
 6860: Capturing subpattern count = 203
 6861: Options: extended
 6862: First char = 'a'
 6863: No need char
 6864:   large nest
 6865: Matched, but too many substrings
 6866:  0: a
 6867:  1: a
 6868:  2: a
 6869:  3: a
 6870:  4: a
 6871:  5: a
 6872:  6: a
 6873:  7: a
 6874:  8: a
 6875:  9: a
 6876: 10: a
 6877: 11: a
 6878: 12: a
 6879: 13: a
 6880: 14: a
 6881: 
 6882: /a*\d/BZ
 6883: ------------------------------------------------------------------
 6884:         Bra
 6885:         a*+
 6886:         \d
 6887:         Ket
 6888:         End
 6889: ------------------------------------------------------------------
 6890: 
 6891: /a*\D/BZ
 6892: ------------------------------------------------------------------
 6893:         Bra
 6894:         a*
 6895:         \D
 6896:         Ket
 6897:         End
 6898: ------------------------------------------------------------------
 6899: 
 6900: /0*\d/BZ
 6901: ------------------------------------------------------------------
 6902:         Bra
 6903:         0*
 6904:         \d
 6905:         Ket
 6906:         End
 6907: ------------------------------------------------------------------
 6908: 
 6909: /0*\D/BZ
 6910: ------------------------------------------------------------------
 6911:         Bra
 6912:         0*+
 6913:         \D
 6914:         Ket
 6915:         End
 6916: ------------------------------------------------------------------
 6917: 
 6918: /a*\s/BZ
 6919: ------------------------------------------------------------------
 6920:         Bra
 6921:         a*+
 6922:         \s
 6923:         Ket
 6924:         End
 6925: ------------------------------------------------------------------
 6926: 
 6927: /a*\S/BZ
 6928: ------------------------------------------------------------------
 6929:         Bra
 6930:         a*
 6931:         \S
 6932:         Ket
 6933:         End
 6934: ------------------------------------------------------------------
 6935: 
 6936: / *\s/BZ
 6937: ------------------------------------------------------------------
 6938:         Bra
 6939:          *
 6940:         \s
 6941:         Ket
 6942:         End
 6943: ------------------------------------------------------------------
 6944: 
 6945: / *\S/BZ
 6946: ------------------------------------------------------------------
 6947:         Bra
 6948:          *+
 6949:         \S
 6950:         Ket
 6951:         End
 6952: ------------------------------------------------------------------
 6953: 
 6954: /a*\w/BZ
 6955: ------------------------------------------------------------------
 6956:         Bra
 6957:         a*
 6958:         \w
 6959:         Ket
 6960:         End
 6961: ------------------------------------------------------------------
 6962: 
 6963: /a*\W/BZ
 6964: ------------------------------------------------------------------
 6965:         Bra
 6966:         a*+
 6967:         \W
 6968:         Ket
 6969:         End
 6970: ------------------------------------------------------------------
 6971: 
 6972: /=*\w/BZ
 6973: ------------------------------------------------------------------
 6974:         Bra
 6975:         =*+
 6976:         \w
 6977:         Ket
 6978:         End
 6979: ------------------------------------------------------------------
 6980: 
 6981: /=*\W/BZ
 6982: ------------------------------------------------------------------
 6983:         Bra
 6984:         =*
 6985:         \W
 6986:         Ket
 6987:         End
 6988: ------------------------------------------------------------------
 6989: 
 6990: /\d*a/BZ
 6991: ------------------------------------------------------------------
 6992:         Bra
 6993:         \d*+
 6994:         a
 6995:         Ket
 6996:         End
 6997: ------------------------------------------------------------------
 6998: 
 6999: /\d*2/BZ
 7000: ------------------------------------------------------------------
 7001:         Bra
 7002:         \d*
 7003:         2
 7004:         Ket
 7005:         End
 7006: ------------------------------------------------------------------
 7007: 
 7008: /\d*\d/BZ
 7009: ------------------------------------------------------------------
 7010:         Bra
 7011:         \d*
 7012:         \d
 7013:         Ket
 7014:         End
 7015: ------------------------------------------------------------------
 7016: 
 7017: /\d*\D/BZ
 7018: ------------------------------------------------------------------
 7019:         Bra
 7020:         \d*+
 7021:         \D
 7022:         Ket
 7023:         End
 7024: ------------------------------------------------------------------
 7025: 
 7026: /\d*\s/BZ
 7027: ------------------------------------------------------------------
 7028:         Bra
 7029:         \d*+
 7030:         \s
 7031:         Ket
 7032:         End
 7033: ------------------------------------------------------------------
 7034: 
 7035: /\d*\S/BZ
 7036: ------------------------------------------------------------------
 7037:         Bra
 7038:         \d*
 7039:         \S
 7040:         Ket
 7041:         End
 7042: ------------------------------------------------------------------
 7043: 
 7044: /\d*\w/BZ
 7045: ------------------------------------------------------------------
 7046:         Bra
 7047:         \d*
 7048:         \w
 7049:         Ket
 7050:         End
 7051: ------------------------------------------------------------------
 7052: 
 7053: /\d*\W/BZ
 7054: ------------------------------------------------------------------
 7055:         Bra
 7056:         \d*+
 7057:         \W
 7058:         Ket
 7059:         End
 7060: ------------------------------------------------------------------
 7061: 
 7062: /\D*a/BZ
 7063: ------------------------------------------------------------------
 7064:         Bra
 7065:         \D*
 7066:         a
 7067:         Ket
 7068:         End
 7069: ------------------------------------------------------------------
 7070: 
 7071: /\D*2/BZ
 7072: ------------------------------------------------------------------
 7073:         Bra
 7074:         \D*+
 7075:         2
 7076:         Ket
 7077:         End
 7078: ------------------------------------------------------------------
 7079: 
 7080: /\D*\d/BZ
 7081: ------------------------------------------------------------------
 7082:         Bra
 7083:         \D*+
 7084:         \d
 7085:         Ket
 7086:         End
 7087: ------------------------------------------------------------------
 7088: 
 7089: /\D*\D/BZ
 7090: ------------------------------------------------------------------
 7091:         Bra
 7092:         \D*
 7093:         \D
 7094:         Ket
 7095:         End
 7096: ------------------------------------------------------------------
 7097: 
 7098: /\D*\s/BZ
 7099: ------------------------------------------------------------------
 7100:         Bra
 7101:         \D*
 7102:         \s
 7103:         Ket
 7104:         End
 7105: ------------------------------------------------------------------
 7106: 
 7107: /\D*\S/BZ
 7108: ------------------------------------------------------------------
 7109:         Bra
 7110:         \D*
 7111:         \S
 7112:         Ket
 7113:         End
 7114: ------------------------------------------------------------------
 7115: 
 7116: /\D*\w/BZ
 7117: ------------------------------------------------------------------
 7118:         Bra
 7119:         \D*
 7120:         \w
 7121:         Ket
 7122:         End
 7123: ------------------------------------------------------------------
 7124: 
 7125: /\D*\W/BZ
 7126: ------------------------------------------------------------------
 7127:         Bra
 7128:         \D*
 7129:         \W
 7130:         Ket
 7131:         End
 7132: ------------------------------------------------------------------
 7133: 
 7134: /\s*a/BZ
 7135: ------------------------------------------------------------------
 7136:         Bra
 7137:         \s*+
 7138:         a
 7139:         Ket
 7140:         End
 7141: ------------------------------------------------------------------
 7142: 
 7143: /\s*2/BZ
 7144: ------------------------------------------------------------------
 7145:         Bra
 7146:         \s*+
 7147:         2
 7148:         Ket
 7149:         End
 7150: ------------------------------------------------------------------
 7151: 
 7152: /\s*\d/BZ
 7153: ------------------------------------------------------------------
 7154:         Bra
 7155:         \s*+
 7156:         \d
 7157:         Ket
 7158:         End
 7159: ------------------------------------------------------------------
 7160: 
 7161: /\s*\D/BZ
 7162: ------------------------------------------------------------------
 7163:         Bra
 7164:         \s*
 7165:         \D
 7166:         Ket
 7167:         End
 7168: ------------------------------------------------------------------
 7169: 
 7170: /\s*\s/BZ
 7171: ------------------------------------------------------------------
 7172:         Bra
 7173:         \s*
 7174:         \s
 7175:         Ket
 7176:         End
 7177: ------------------------------------------------------------------
 7178: 
 7179: /\s*\S/BZ
 7180: ------------------------------------------------------------------
 7181:         Bra
 7182:         \s*+
 7183:         \S
 7184:         Ket
 7185:         End
 7186: ------------------------------------------------------------------
 7187: 
 7188: /\s*\w/BZ
 7189: ------------------------------------------------------------------
 7190:         Bra
 7191:         \s*+
 7192:         \w
 7193:         Ket
 7194:         End
 7195: ------------------------------------------------------------------
 7196: 
 7197: /\s*\W/BZ
 7198: ------------------------------------------------------------------
 7199:         Bra
 7200:         \s*
 7201:         \W
 7202:         Ket
 7203:         End
 7204: ------------------------------------------------------------------
 7205: 
 7206: /\S*a/BZ
 7207: ------------------------------------------------------------------
 7208:         Bra
 7209:         \S*
 7210:         a
 7211:         Ket
 7212:         End
 7213: ------------------------------------------------------------------
 7214: 
 7215: /\S*2/BZ
 7216: ------------------------------------------------------------------
 7217:         Bra
 7218:         \S*
 7219:         2
 7220:         Ket
 7221:         End
 7222: ------------------------------------------------------------------
 7223: 
 7224: /\S*\d/BZ
 7225: ------------------------------------------------------------------
 7226:         Bra
 7227:         \S*
 7228:         \d
 7229:         Ket
 7230:         End
 7231: ------------------------------------------------------------------
 7232: 
 7233: /\S*\D/BZ
 7234: ------------------------------------------------------------------
 7235:         Bra
 7236:         \S*
 7237:         \D
 7238:         Ket
 7239:         End
 7240: ------------------------------------------------------------------
 7241: 
 7242: /\S*\s/BZ
 7243: ------------------------------------------------------------------
 7244:         Bra
 7245:         \S*+
 7246:         \s
 7247:         Ket
 7248:         End
 7249: ------------------------------------------------------------------
 7250: 
 7251: /\S*\S/BZ
 7252: ------------------------------------------------------------------
 7253:         Bra
 7254:         \S*
 7255:         \S
 7256:         Ket
 7257:         End
 7258: ------------------------------------------------------------------
 7259: 
 7260: /\S*\w/BZ
 7261: ------------------------------------------------------------------
 7262:         Bra
 7263:         \S*
 7264:         \w
 7265:         Ket
 7266:         End
 7267: ------------------------------------------------------------------
 7268: 
 7269: /\S*\W/BZ
 7270: ------------------------------------------------------------------
 7271:         Bra
 7272:         \S*
 7273:         \W
 7274:         Ket
 7275:         End
 7276: ------------------------------------------------------------------
 7277: 
 7278: /\w*a/BZ
 7279: ------------------------------------------------------------------
 7280:         Bra
 7281:         \w*
 7282:         a
 7283:         Ket
 7284:         End
 7285: ------------------------------------------------------------------
 7286: 
 7287: /\w*2/BZ
 7288: ------------------------------------------------------------------
 7289:         Bra
 7290:         \w*
 7291:         2
 7292:         Ket
 7293:         End
 7294: ------------------------------------------------------------------
 7295: 
 7296: /\w*\d/BZ
 7297: ------------------------------------------------------------------
 7298:         Bra
 7299:         \w*
 7300:         \d
 7301:         Ket
 7302:         End
 7303: ------------------------------------------------------------------
 7304: 
 7305: /\w*\D/BZ
 7306: ------------------------------------------------------------------
 7307:         Bra
 7308:         \w*
 7309:         \D
 7310:         Ket
 7311:         End
 7312: ------------------------------------------------------------------
 7313: 
 7314: /\w*\s/BZ
 7315: ------------------------------------------------------------------
 7316:         Bra
 7317:         \w*+
 7318:         \s
 7319:         Ket
 7320:         End
 7321: ------------------------------------------------------------------
 7322: 
 7323: /\w*\S/BZ
 7324: ------------------------------------------------------------------
 7325:         Bra
 7326:         \w*
 7327:         \S
 7328:         Ket
 7329:         End
 7330: ------------------------------------------------------------------
 7331: 
 7332: /\w*\w/BZ
 7333: ------------------------------------------------------------------
 7334:         Bra
 7335:         \w*
 7336:         \w
 7337:         Ket
 7338:         End
 7339: ------------------------------------------------------------------
 7340: 
 7341: /\w*\W/BZ
 7342: ------------------------------------------------------------------
 7343:         Bra
 7344:         \w*+
 7345:         \W
 7346:         Ket
 7347:         End
 7348: ------------------------------------------------------------------
 7349: 
 7350: /\W*a/BZ
 7351: ------------------------------------------------------------------
 7352:         Bra
 7353:         \W*+
 7354:         a
 7355:         Ket
 7356:         End
 7357: ------------------------------------------------------------------
 7358: 
 7359: /\W*2/BZ
 7360: ------------------------------------------------------------------
 7361:         Bra
 7362:         \W*+
 7363:         2
 7364:         Ket
 7365:         End
 7366: ------------------------------------------------------------------
 7367: 
 7368: /\W*\d/BZ
 7369: ------------------------------------------------------------------
 7370:         Bra
 7371:         \W*+
 7372:         \d
 7373:         Ket
 7374:         End
 7375: ------------------------------------------------------------------
 7376: 
 7377: /\W*\D/BZ
 7378: ------------------------------------------------------------------
 7379:         Bra
 7380:         \W*
 7381:         \D
 7382:         Ket
 7383:         End
 7384: ------------------------------------------------------------------
 7385: 
 7386: /\W*\s/BZ
 7387: ------------------------------------------------------------------
 7388:         Bra
 7389:         \W*
 7390:         \s
 7391:         Ket
 7392:         End
 7393: ------------------------------------------------------------------
 7394: 
 7395: /\W*\S/BZ
 7396: ------------------------------------------------------------------
 7397:         Bra
 7398:         \W*
 7399:         \S
 7400:         Ket
 7401:         End
 7402: ------------------------------------------------------------------
 7403: 
 7404: /\W*\w/BZ
 7405: ------------------------------------------------------------------
 7406:         Bra
 7407:         \W*+
 7408:         \w
 7409:         Ket
 7410:         End
 7411: ------------------------------------------------------------------
 7412: 
 7413: /\W*\W/BZ
 7414: ------------------------------------------------------------------
 7415:         Bra
 7416:         \W*
 7417:         \W
 7418:         Ket
 7419:         End
 7420: ------------------------------------------------------------------
 7421: 
 7422: /[^a]+a/BZ
 7423: ------------------------------------------------------------------
 7424:         Bra
 7425:         [^a]++
 7426:         a
 7427:         Ket
 7428:         End
 7429: ------------------------------------------------------------------
 7430: 
 7431: /[^a]+a/BZi
 7432: ------------------------------------------------------------------
 7433:         Bra
 7434:      /i [^a]++
 7435:      /i a
 7436:         Ket
 7437:         End
 7438: ------------------------------------------------------------------
 7439: 
 7440: /[^a]+A/BZi
 7441: ------------------------------------------------------------------
 7442:         Bra
 7443:      /i [^a]++
 7444:      /i A
 7445:         Ket
 7446:         End
 7447: ------------------------------------------------------------------
 7448: 
 7449: /[^a]+b/BZ
 7450: ------------------------------------------------------------------
 7451:         Bra
 7452:         [^a]+
 7453:         b
 7454:         Ket
 7455:         End
 7456: ------------------------------------------------------------------
 7457: 
 7458: /[^a]+\d/BZ
 7459: ------------------------------------------------------------------
 7460:         Bra
 7461:         [^a]+
 7462:         \d
 7463:         Ket
 7464:         End
 7465: ------------------------------------------------------------------
 7466: 
 7467: /a*[^a]/BZ
 7468: ------------------------------------------------------------------
 7469:         Bra
 7470:         a*
 7471:         [^a]
 7472:         Ket
 7473:         End
 7474: ------------------------------------------------------------------
 7475: 
 7476: /(?P<abc>x)(?P<xyz>y)/I
 7477: Capturing subpattern count = 2
 7478: Named capturing subpatterns:
 7479:   abc   1
 7480:   xyz   2
 7481: No options
 7482: First char = 'x'
 7483: Need char = 'y'
 7484:     xy\Cabc\Cxyz
 7485:  0: xy
 7486:  1: x
 7487:  2: y
 7488:   C x (1) abc
 7489:   C y (1) xyz
 7490: 
 7491: /(?<abc>x)(?'xyz'y)/I
 7492: Capturing subpattern count = 2
 7493: Named capturing subpatterns:
 7494:   abc   1
 7495:   xyz   2
 7496: No options
 7497: First char = 'x'
 7498: Need char = 'y'
 7499:     xy\Cabc\Cxyz
 7500:  0: xy
 7501:  1: x
 7502:  2: y
 7503:   C x (1) abc
 7504:   C y (1) xyz
 7505: 
 7506: /(?<abc'x)(?'xyz'y)/I
 7507: Failed: syntax error in subpattern name (missing terminator) at offset 6
 7508: 
 7509: /(?<abc>x)(?'xyz>y)/I
 7510: Failed: syntax error in subpattern name (missing terminator) at offset 15
 7511: 
 7512: /(?P'abc'x)(?P<xyz>y)/I
 7513: Failed: unrecognized character after (?P at offset 3
 7514: 
 7515: /^(?:(?(ZZ)a|b)(?<ZZ>X))+/
 7516:     bXaX
 7517:  0: bXaX
 7518:  1: X
 7519:     bXbX
 7520:  0: bX
 7521:  1: X
 7522:     ** Failers
 7523: No match
 7524:     aXaX
 7525: No match
 7526:     aXbX
 7527: No match
 7528: 
 7529: /^(?P>abc)(?<abcd>xxx)/
 7530: Failed: reference to non-existent subpattern at offset 8
 7531: 
 7532: /^(?P>abc)(?<abc>x|y)/
 7533:     xx
 7534:  0: xx
 7535:  1: x
 7536:     xy
 7537:  0: xy
 7538:  1: y
 7539:     yy
 7540:  0: yy
 7541:  1: y
 7542:     yx
 7543:  0: yx
 7544:  1: x
 7545: 
 7546: /^(?P>abc)(?P<abc>x|y)/
 7547:     xx
 7548:  0: xx
 7549:  1: x
 7550:     xy
 7551:  0: xy
 7552:  1: y
 7553:     yy
 7554:  0: yy
 7555:  1: y
 7556:     yx
 7557:  0: yx
 7558:  1: x
 7559: 
 7560: /^((?(abc)a|b)(?<abc>x|y))+/
 7561:     bxay
 7562:  0: bxay
 7563:  1: ay
 7564:  2: y
 7565:     bxby
 7566:  0: bx
 7567:  1: bx
 7568:  2: x
 7569:     ** Failers
 7570: No match
 7571:     axby
 7572: No match
 7573: 
 7574: /^(((?P=abc)|X)(?<abc>x|y))+/
 7575:     XxXxxx
 7576:  0: XxXxxx
 7577:  1: xx
 7578:  2: x
 7579:  3: x
 7580:     XxXyyx
 7581:  0: XxXyyx
 7582:  1: yx
 7583:  2: y
 7584:  3: x
 7585:     XxXyxx
 7586:  0: XxXy
 7587:  1: Xy
 7588:  2: X
 7589:  3: y
 7590:     ** Failers
 7591: No match
 7592:     x
 7593: No match
 7594: 
 7595: /^(?1)(abc)/
 7596:     abcabc
 7597:  0: abcabc
 7598:  1: abc
 7599: 
 7600: /^(?:(?:\1|X)(a|b))+/
 7601:     Xaaa
 7602:  0: Xaaa
 7603:  1: a
 7604:     Xaba
 7605:  0: Xa
 7606:  1: a
 7607: 
 7608: /^[\E\Qa\E-\Qz\E]+/BZ
 7609: ------------------------------------------------------------------
 7610:         Bra
 7611:         ^
 7612:         [a-z]+
 7613:         Ket
 7614:         End
 7615: ------------------------------------------------------------------
 7616: 
 7617: /^[a\Q]bc\E]/BZ
 7618: ------------------------------------------------------------------
 7619:         Bra
 7620:         ^
 7621:         [\]a-c]
 7622:         Ket
 7623:         End
 7624: ------------------------------------------------------------------
 7625: 
 7626: /^[a-\Q\E]/BZ
 7627: ------------------------------------------------------------------
 7628:         Bra
 7629:         ^
 7630:         [\-a]
 7631:         Ket
 7632:         End
 7633: ------------------------------------------------------------------
 7634: 
 7635: /^(?P>abc)[()](?<abc>)/BZ
 7636: ------------------------------------------------------------------
 7637:         Bra
 7638:         ^
 7639:         Recurse
 7640:         [()]
 7641:         CBra 1
 7642:         Ket
 7643:         Ket
 7644:         End
 7645: ------------------------------------------------------------------
 7646: 
 7647: /^((?(abc)y)[()](?P<abc>x))+/BZ
 7648: ------------------------------------------------------------------
 7649:         Bra
 7650:         ^
 7651:         CBra 1
 7652:         Cond
 7653:       2 Cond nref
 7654:         y
 7655:         Ket
 7656:         [()]
 7657:         CBra 2
 7658:         x
 7659:         Ket
 7660:         KetRmax
 7661:         Ket
 7662:         End
 7663: ------------------------------------------------------------------
 7664:     (xy)x
 7665:  0: (xy)x
 7666:  1: y)x
 7667:  2: x
 7668: 
 7669: /^(?P>abc)\Q()\E(?<abc>)/BZ
 7670: ------------------------------------------------------------------
 7671:         Bra
 7672:         ^
 7673:         Recurse
 7674:         ()
 7675:         CBra 1
 7676:         Ket
 7677:         Ket
 7678:         End
 7679: ------------------------------------------------------------------
 7680: 
 7681: /^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
 7682: ------------------------------------------------------------------
 7683:         Bra
 7684:         ^
 7685:         Recurse
 7686:         [(\]a]
 7687:         CBra 1
 7688:         Ket
 7689:         Ket
 7690:         End
 7691: ------------------------------------------------------------------
 7692: 
 7693: /^(?P>abc) # this is (a comment)
 7694:   (?<abc>)/BZx
 7695: ------------------------------------------------------------------
 7696:         Bra
 7697:         ^
 7698:         Recurse
 7699:         CBra 1
 7700:         Ket
 7701:         Ket
 7702:         End
 7703: ------------------------------------------------------------------
 7704: 
 7705: /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
 7706: Capturing subpattern count = 4
 7707: Max back reference = 4
 7708: Named capturing subpatterns:
 7709:   four    4
 7710:   one     1
 7711:   three   3
 7712:   two     2
 7713: Options: anchored caseless
 7714: No first char
 7715: No need char
 7716:     1221
 7717:  0: 1221
 7718:  1: 1221
 7719:  2: 1
 7720:     Satan, oscillate my metallic sonatas!
 7721:  0: Satan, oscillate my metallic sonatas!
 7722:  1: <unset>
 7723:  2: <unset>
 7724:  3: Satan, oscillate my metallic sonatas
 7725:  4: S
 7726:     A man, a plan, a canal: Panama!
 7727:  0: A man, a plan, a canal: Panama!
 7728:  1: <unset>
 7729:  2: <unset>
 7730:  3: A man, a plan, a canal: Panama
 7731:  4: A
 7732:     Able was I ere I saw Elba.
 7733:  0: Able was I ere I saw Elba.
 7734:  1: <unset>
 7735:  2: <unset>
 7736:  3: Able was I ere I saw Elba
 7737:  4: A
 7738:     *** Failers
 7739: No match
 7740:     The quick brown fox
 7741: No match
 7742: 
 7743: /(?=(\w+))\1:/I
 7744: Capturing subpattern count = 1
 7745: Max back reference = 1
 7746: No options
 7747: No first char
 7748: Need char = ':'
 7749:     abcd:
 7750:  0: abcd:
 7751:  1: abcd
 7752: 
 7753: /(?=(?'abc'\w+))\k<abc>:/I
 7754: Capturing subpattern count = 1
 7755: Max back reference = 1
 7756: Named capturing subpatterns:
 7757:   abc   1
 7758: No options
 7759: No first char
 7760: Need char = ':'
 7761:     abcd:
 7762:  0: abcd:
 7763:  1: abcd
 7764: 
 7765: /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
 7766:     adaa
 7767:  0: adaa
 7768:  1: a
 7769:  2: d
 7770:     ** Failers
 7771: No match
 7772:     addd
 7773: No match
 7774:     adbb
 7775: No match
 7776: 
 7777: /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
 7778:     bdaa
 7779:  0: bdaa
 7780:  1: b
 7781:  2: d
 7782:     bdab
 7783:  0: bdab
 7784:  1: b
 7785:  2: d
 7786:     ** Failers
 7787: No match
 7788:     bddd
 7789: No match
 7790: 
 7791: /(?(<bc))/
 7792: Failed: malformed number or name after (?( at offset 6
 7793: 
 7794: /(?(''))/
 7795: Failed: assertion expected after (?( at offset 4
 7796: 
 7797: /(?('R')stuff)/
 7798: Failed: reference to non-existent subpattern at offset 7
 7799: 
 7800: /((abc (?(R) (?(R1)1) (?(R2)2) X  |  (?1)  (?2)   (?R) ))) /x
 7801:     abcabc1Xabc2XabcXabcabc
 7802:  0: abcabc1Xabc2XabcX
 7803:  1: abcabc1Xabc2XabcX
 7804:  2: abcabc1Xabc2XabcX
 7805: 
 7806: /(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
 7807:     abcabc1Xabc2XabcXabcabc
 7808:  0: abcabc1Xabc2XabcX
 7809:  1: abcabc1Xabc2XabcX
 7810:  2: abcabc1Xabc2XabcX
 7811: 
 7812: /(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
 7813: Failed: reference to non-existent subpattern at offset 29
 7814: 
 7815: /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
 7816:     abcabc1Xabc2XabcXabcabc
 7817:  0: abcabc1Xabc2XabcX
 7818:  1: abcabc1Xabc2XabcX
 7819:  2: abcabc1Xabc2XabcX
 7820: 
 7821: /^(?(DEFINE) abc | xyz ) /x
 7822: Failed: DEFINE group contains more than one branch at offset 22
 7823: 
 7824: /(?(DEFINE) abc) xyz/xI
 7825: Capturing subpattern count = 0
 7826: Options: extended
 7827: First char = 'x'
 7828: Need char = 'z'
 7829: 
 7830: /(a|)*\d/
 7831:   \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 7832: No match
 7833:   \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
 7834: Matched, but too many substrings
 7835: 
 7836: /^a.b/<lf>
 7837:     a\rb
 7838:  0: a\x0db
 7839:     a\nb\<cr>
 7840:  0: a\x0ab
 7841:     a\x85b\<anycrlf> 
 7842:  0: a\x85b
 7843:     ** Failers
 7844: No match
 7845:     a\nb
 7846: No match
 7847:     a\nb\<any>
 7848: No match
 7849:     a\rb\<cr>
 7850: No match
 7851:     a\rb\<any>
 7852: No match
 7853:     a\x85b\<any> 
 7854: No match
 7855:     a\rb\<anycrlf>
 7856: No match
 7857: 
 7858: /^abc./mgx<any>
 7859:     abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
 7860:  0: abc1
 7861:  0: abc2
 7862:  0: abc3
 7863:  0: abc4
 7864:  0: abc5
 7865:  0: abc6
 7866:  0: abc7
 7867: 
 7868: /abc.$/mgx<any>
 7869:     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
 7870:  0: abc1
 7871:  0: abc2
 7872:  0: abc3
 7873:  0: abc4
 7874:  0: abc5
 7875:  0: abc6
 7876:  0: abc9
 7877: 
 7878: /a/<cr><any>
 7879: 
 7880: /a/<any><crlf>
 7881: Failed: inconsistent NEWLINE options at offset 0
 7882: 
 7883: /^a\Rb/<bsr_unicode>
 7884:     a\nb
 7885:  0: a\x0ab
 7886:     a\rb
 7887:  0: a\x0db
 7888:     a\r\nb
 7889:  0: a\x0d\x0ab
 7890:     a\x0bb
 7891:  0: a\x0bb
 7892:     a\x0cb
 7893:  0: a\x0cb
 7894:     a\x85b
 7895:  0: a\x85b
 7896:     ** Failers
 7897: No match
 7898:     a\n\rb
 7899: No match
 7900: 
 7901: /^a\R*b/<bsr_unicode>
 7902:     ab
 7903:  0: ab
 7904:     a\nb
 7905:  0: a\x0ab
 7906:     a\rb
 7907:  0: a\x0db
 7908:     a\r\nb
 7909:  0: a\x0d\x0ab
 7910:     a\x0bb
 7911:  0: a\x0bb
 7912:     a\x0cb
 7913:  0: a\x0cb
 7914:     a\x85b
 7915:  0: a\x85b
 7916:     a\n\rb
 7917:  0: a\x0a\x0db
 7918:     a\n\r\x85\x0cb
 7919:  0: a\x0a\x0d\x85\x0cb
 7920: 
 7921: /^a\R+b/<bsr_unicode>
 7922:     a\nb
 7923:  0: a\x0ab
 7924:     a\rb
 7925:  0: a\x0db
 7926:     a\r\nb
 7927:  0: a\x0d\x0ab
 7928:     a\x0bb
 7929:  0: a\x0bb
 7930:     a\x0cb
 7931:  0: a\x0cb
 7932:     a\x85b
 7933:  0: a\x85b
 7934:     a\n\rb
 7935:  0: a\x0a\x0db
 7936:     a\n\r\x85\x0cb
 7937:  0: a\x0a\x0d\x85\x0cb
 7938:     ** Failers
 7939: No match
 7940:     ab
 7941: No match
 7942: 
 7943: /^a\R{1,3}b/<bsr_unicode>
 7944:     a\nb
 7945:  0: a\x0ab
 7946:     a\n\rb
 7947:  0: a\x0a\x0db
 7948:     a\n\r\x85b
 7949:  0: a\x0a\x0d\x85b
 7950:     a\r\n\r\nb
 7951:  0: a\x0d\x0a\x0d\x0ab
 7952:     a\r\n\r\n\r\nb
 7953:  0: a\x0d\x0a\x0d\x0a\x0d\x0ab
 7954:     a\n\r\n\rb
 7955:  0: a\x0a\x0d\x0a\x0db
 7956:     a\n\n\r\nb
 7957:  0: a\x0a\x0a\x0d\x0ab
 7958:     ** Failers
 7959: No match
 7960:     a\n\n\n\rb
 7961: No match
 7962:     a\r
 7963: No match
 7964: 
 7965: /^a[\R]b/<bsr_unicode>
 7966:     aRb
 7967:  0: aRb
 7968:     ** Failers
 7969: No match
 7970:     a\nb
 7971: No match
 7972: 
 7973: /(?&abc)X(?<abc>P)/I
 7974: Capturing subpattern count = 1
 7975: Named capturing subpatterns:
 7976:   abc   1
 7977: No options
 7978: No first char
 7979: Need char = 'P'
 7980:     abcPXP123
 7981:  0: PXP
 7982:  1: P
 7983: 
 7984: /(?1)X(?<abc>P)/I
 7985: Capturing subpattern count = 1
 7986: Named capturing subpatterns:
 7987:   abc   1
 7988: No options
 7989: No first char
 7990: Need char = 'P'
 7991:     abcPXP123
 7992:  0: PXP
 7993:  1: P
 7994: 
 7995: /(?:a(?&abc)b)*(?<abc>x)/
 7996:     123axbaxbaxbx456
 7997:  0: axbaxbaxbx
 7998:  1: x
 7999:     123axbaxbaxb456
 8000:  0: x
 8001:  1: x
 8002: 
 8003: /(?:a(?&abc)b){1,5}(?<abc>x)/
 8004:     123axbaxbaxbx456
 8005:  0: axbaxbaxbx
 8006:  1: x
 8007: 
 8008: /(?:a(?&abc)b){2,5}(?<abc>x)/
 8009:     123axbaxbaxbx456
 8010:  0: axbaxbaxbx
 8011:  1: x
 8012: 
 8013: /(?:a(?&abc)b){2,}(?<abc>x)/
 8014:     123axbaxbaxbx456
 8015:  0: axbaxbaxbx
 8016:  1: x
 8017: 
 8018: /(abc)(?i:(?1))/
 8019:    defabcabcxyz
 8020:  0: abcabc
 8021:  1: abc
 8022:    DEFabcABCXYZ
 8023: No match
 8024: 
 8025: /(abc)(?:(?i)(?1))/
 8026:    defabcabcxyz
 8027:  0: abcabc
 8028:  1: abc
 8029:    DEFabcABCXYZ
 8030: No match
 8031: 
 8032: /^(a)\g-2/
 8033: Failed: reference to non-existent subpattern at offset 7
 8034: 
 8035: /^(a)\g/
 8036: Failed: a numbered reference must not be zero at offset 5
 8037: 
 8038: /^(a)\g{0}/
 8039: Failed: a numbered reference must not be zero at offset 8
 8040: 
 8041: /^(a)\g{3/
 8042: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
 8043: 
 8044: /^(a)\g{4a}/
 8045: Failed: reference to non-existent subpattern at offset 9
 8046: 
 8047: /^a.b/<lf>
 8048:     a\rb
 8049:  0: a\x0db
 8050:     *** Failers
 8051: No match
 8052:     a\nb
 8053: No match
 8054: 
 8055: /.+foo/
 8056:     afoo
 8057:  0: afoo
 8058:     ** Failers
 8059: No match
 8060:     \r\nfoo
 8061: No match
 8062:     \nfoo
 8063: No match
 8064: 
 8065: /.+foo/<crlf>
 8066:     afoo
 8067:  0: afoo
 8068:     \nfoo
 8069:  0: \x0afoo
 8070:     ** Failers
 8071: No match
 8072:     \r\nfoo
 8073: No match
 8074: 
 8075: /.+foo/<any>
 8076:     afoo
 8077:  0: afoo
 8078:     ** Failers
 8079: No match
 8080:     \nfoo
 8081: No match
 8082:     \r\nfoo
 8083: No match
 8084: 
 8085: /.+foo/s
 8086:     afoo
 8087:  0: afoo
 8088:     \r\nfoo
 8089:  0: \x0d\x0afoo
 8090:     \nfoo
 8091:  0: \x0afoo
 8092:     
 8093: /^$/mg<any>
 8094:     abc\r\rxyz
 8095:  0: 
 8096:     abc\n\rxyz  
 8097:  0: 
 8098:     ** Failers 
 8099: No match
 8100:     abc\r\nxyz
 8101: No match
 8102: 
 8103: /(?m)^$/<any>g+
 8104:     abc\r\n\r\n
 8105:  0: 
 8106:  0+ \x0d\x0a
 8107: 
 8108: /(?m)^$|^\r\n/<any>g+ 
 8109:     abc\r\n\r\n
 8110:  0: 
 8111:  0+ \x0d\x0a
 8112:  0: \x0d\x0a
 8113:  0+ 
 8114:     
 8115: /(?m)$/<any>g+ 
 8116:     abc\r\n\r\n
 8117:  0: 
 8118:  0+ \x0d\x0a\x0d\x0a
 8119:  0: 
 8120:  0+ \x0d\x0a
 8121:  0: 
 8122:  0+ 
 8123: 
 8124: /abc.$/mgx<anycrlf>
 8125:     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
 8126:  0: abc1
 8127:  0: abc4
 8128:  0: abc5
 8129:  0: abc9
 8130: 
 8131: /^X/m
 8132:     XABC
 8133:  0: X
 8134:     ** Failers 
 8135: No match
 8136:     XABC\B
 8137: No match
 8138: 
 8139: /(ab|c)(?-1)/BZ
 8140: ------------------------------------------------------------------
 8141:         Bra
 8142:         CBra 1
 8143:         ab
 8144:         Alt
 8145:         c
 8146:         Ket
 8147:         Recurse
 8148:         Ket
 8149:         End
 8150: ------------------------------------------------------------------
 8151:     abc
 8152:  0: abc
 8153:  1: ab
 8154: 
 8155: /xy(?+1)(abc)/BZ
 8156: ------------------------------------------------------------------
 8157:         Bra
 8158:         xy
 8159:         Recurse
 8160:         CBra 1
 8161:         abc
 8162:         Ket
 8163:         Ket
 8164:         End
 8165: ------------------------------------------------------------------
 8166:     xyabcabc
 8167:  0: xyabcabc
 8168:  1: abc
 8169:     ** Failers
 8170: No match
 8171:     xyabc  
 8172: No match
 8173:     
 8174: /x(?-0)y/
 8175: Failed: a numbered reference must not be zero at offset 5
 8176: 
 8177: /x(?-1)y/
 8178: Failed: reference to non-existent subpattern at offset 5
 8179: 
 8180: /x(?+0)y/ 
 8181: Failed: a numbered reference must not be zero at offset 5
 8182: 
 8183: /x(?+1)y/
 8184: Failed: reference to non-existent subpattern at offset 5
 8185: 
 8186: /^(abc)?(?(-1)X|Y)/BZ
 8187: ------------------------------------------------------------------
 8188:         Bra
 8189:         ^
 8190:         Brazero
 8191:         CBra 1
 8192:         abc
 8193:         Ket
 8194:         Cond
 8195:       1 Cond ref
 8196:         X
 8197:         Alt
 8198:         Y
 8199:         Ket
 8200:         Ket
 8201:         End
 8202: ------------------------------------------------------------------
 8203:     abcX
 8204:  0: abcX
 8205:  1: abc
 8206:     Y
 8207:  0: Y
 8208:     ** Failers
 8209: No match
 8210:     abcY   
 8211: No match
 8212:     
 8213: /^((?(+1)X|Y)(abc))+/BZ 
 8214: ------------------------------------------------------------------
 8215:         Bra
 8216:         ^
 8217:         CBra 1
 8218:         Cond
 8219:       2 Cond ref
 8220:         X
 8221:         Alt
 8222:         Y
 8223:         Ket
 8224:         CBra 2
 8225:         abc
 8226:         Ket
 8227:         KetRmax
 8228:         Ket
 8229:         End
 8230: ------------------------------------------------------------------
 8231:     YabcXabc
 8232:  0: YabcXabc
 8233:  1: Xabc
 8234:  2: abc
 8235:     YabcXabcXabc
 8236:  0: YabcXabcXabc
 8237:  1: Xabc
 8238:  2: abc
 8239:     ** Failers
 8240: No match
 8241:     XabcXabc  
 8242: No match
 8243: 
 8244: /(?(-1)a)/BZ
 8245: Failed: reference to non-existent subpattern at offset 6
 8246: 
 8247: /((?(-1)a))/BZ
 8248: ------------------------------------------------------------------
 8249:         Bra
 8250:         CBra 1
 8251:         Cond
 8252:       1 Cond ref
 8253:         a
 8254:         Ket
 8255:         Ket
 8256:         Ket
 8257:         End
 8258: ------------------------------------------------------------------
 8259: 
 8260: /((?(-2)a))/BZ
 8261: Failed: reference to non-existent subpattern at offset 7
 8262: 
 8263: /^(?(+1)X|Y)(.)/BZ
 8264: ------------------------------------------------------------------
 8265:         Bra
 8266:         ^
 8267:         Cond
 8268:       1 Cond ref
 8269:         X
 8270:         Alt
 8271:         Y
 8272:         Ket
 8273:         CBra 1
 8274:         Any
 8275:         Ket
 8276:         Ket
 8277:         End
 8278: ------------------------------------------------------------------
 8279:     Y!
 8280:  0: Y!
 8281:  1: !
 8282: 
 8283: /(?<A>tom|bon)-\k{A}/
 8284:     tom-tom
 8285:  0: tom-tom
 8286:  1: tom
 8287:     bon-bon 
 8288:  0: bon-bon
 8289:  1: bon
 8290:     ** Failers
 8291: No match
 8292:     tom-bon  
 8293: No match
 8294: 
 8295: /\g{A/ 
 8296: Failed: syntax error in subpattern name (missing terminator) at offset 4
 8297: 
 8298: /(?|(abc)|(xyz))/BZ
 8299: ------------------------------------------------------------------
 8300:         Bra
 8301:         Bra
 8302:         CBra 1
 8303:         abc
 8304:         Ket
 8305:         Alt
 8306:         CBra 1
 8307:         xyz
 8308:         Ket
 8309:         Ket
 8310:         Ket
 8311:         End
 8312: ------------------------------------------------------------------
 8313:    >abc<
 8314:  0: abc
 8315:  1: abc
 8316:    >xyz< 
 8317:  0: xyz
 8318:  1: xyz
 8319: 
 8320: /(x)(?|(abc)|(xyz))(x)/BZ
 8321: ------------------------------------------------------------------
 8322:         Bra
 8323:         CBra 1
 8324:         x
 8325:         Ket
 8326:         Bra
 8327:         CBra 2
 8328:         abc
 8329:         Ket
 8330:         Alt
 8331:         CBra 2
 8332:         xyz
 8333:         Ket
 8334:         Ket
 8335:         CBra 3
 8336:         x
 8337:         Ket
 8338:         Ket
 8339:         End
 8340: ------------------------------------------------------------------
 8341:     xabcx
 8342:  0: xabcx
 8343:  1: x
 8344:  2: abc
 8345:  3: x
 8346:     xxyzx 
 8347:  0: xxyzx
 8348:  1: x
 8349:  2: xyz
 8350:  3: x
 8351: 
 8352: /(x)(?|(abc)(pqr)|(xyz))(x)/BZ
 8353: ------------------------------------------------------------------
 8354:         Bra
 8355:         CBra 1
 8356:         x
 8357:         Ket
 8358:         Bra
 8359:         CBra 2
 8360:         abc
 8361:         Ket
 8362:         CBra 3
 8363:         pqr
 8364:         Ket
 8365:         Alt
 8366:         CBra 2
 8367:         xyz
 8368:         Ket
 8369:         Ket
 8370:         CBra 4
 8371:         x
 8372:         Ket
 8373:         Ket
 8374:         End
 8375: ------------------------------------------------------------------
 8376:     xabcpqrx
 8377:  0: xabcpqrx
 8378:  1: x
 8379:  2: abc
 8380:  3: pqr
 8381:  4: x
 8382:     xxyzx 
 8383:  0: xxyzx
 8384:  1: x
 8385:  2: xyz
 8386:  3: <unset>
 8387:  4: x
 8388: 
 8389: /\H++X/BZ
 8390: ------------------------------------------------------------------
 8391:         Bra
 8392:         \H++
 8393:         X
 8394:         Ket
 8395:         End
 8396: ------------------------------------------------------------------
 8397:     ** Failers
 8398: No match
 8399:     XXXX
 8400: No match
 8401:     
 8402: /\H+\hY/BZ
 8403: ------------------------------------------------------------------
 8404:         Bra
 8405:         \H++
 8406:         \h
 8407:         Y
 8408:         Ket
 8409:         End
 8410: ------------------------------------------------------------------
 8411:     XXXX Y 
 8412:  0: XXXX Y
 8413: 
 8414: /\H+ Y/BZ
 8415: ------------------------------------------------------------------
 8416:         Bra
 8417:         \H++
 8418:          Y
 8419:         Ket
 8420:         End
 8421: ------------------------------------------------------------------
 8422: 
 8423: /\h+A/BZ
 8424: ------------------------------------------------------------------
 8425:         Bra
 8426:         \h++
 8427:         A
 8428:         Ket
 8429:         End
 8430: ------------------------------------------------------------------
 8431: 
 8432: /\v*B/BZ
 8433: ------------------------------------------------------------------
 8434:         Bra
 8435:         \v*+
 8436:         B
 8437:         Ket
 8438:         End
 8439: ------------------------------------------------------------------
 8440: 
 8441: /\V+\x0a/BZ
 8442: ------------------------------------------------------------------
 8443:         Bra
 8444:         \V++
 8445:         \x0a
 8446:         Ket
 8447:         End
 8448: ------------------------------------------------------------------
 8449: 
 8450: /A+\h/BZ
 8451: ------------------------------------------------------------------
 8452:         Bra
 8453:         A++
 8454:         \h
 8455:         Ket
 8456:         End
 8457: ------------------------------------------------------------------
 8458: 
 8459: / *\H/BZ
 8460: ------------------------------------------------------------------
 8461:         Bra
 8462:          *+
 8463:         \H
 8464:         Ket
 8465:         End
 8466: ------------------------------------------------------------------
 8467: 
 8468: /A*\v/BZ
 8469: ------------------------------------------------------------------
 8470:         Bra
 8471:         A*+
 8472:         \v
 8473:         Ket
 8474:         End
 8475: ------------------------------------------------------------------
 8476: 
 8477: /\x0b*\V/BZ
 8478: ------------------------------------------------------------------
 8479:         Bra
 8480:         \x0b*+
 8481:         \V
 8482:         Ket
 8483:         End
 8484: ------------------------------------------------------------------
 8485: 
 8486: /\d+\h/BZ
 8487: ------------------------------------------------------------------
 8488:         Bra
 8489:         \d++
 8490:         \h
 8491:         Ket
 8492:         End
 8493: ------------------------------------------------------------------
 8494: 
 8495: /\d*\v/BZ
 8496: ------------------------------------------------------------------
 8497:         Bra
 8498:         \d*+
 8499:         \v
 8500:         Ket
 8501:         End
 8502: ------------------------------------------------------------------
 8503: 
 8504: /S+\h\S+\v/BZ
 8505: ------------------------------------------------------------------
 8506:         Bra
 8507:         S++
 8508:         \h
 8509:         \S++
 8510:         \v
 8511:         Ket
 8512:         End
 8513: ------------------------------------------------------------------
 8514: 
 8515: /\w{3,}\h\w+\v/BZ
 8516: ------------------------------------------------------------------
 8517:         Bra
 8518:         \w{3}
 8519:         \w*+
 8520:         \h
 8521:         \w++
 8522:         \v
 8523:         Ket
 8524:         End
 8525: ------------------------------------------------------------------
 8526: 
 8527: /\h+\d\h+\w\h+\S\h+\H/BZ
 8528: ------------------------------------------------------------------
 8529:         Bra
 8530:         \h++
 8531:         \d
 8532:         \h++
 8533:         \w
 8534:         \h++
 8535:         \S
 8536:         \h++
 8537:         \H
 8538:         Ket
 8539:         End
 8540: ------------------------------------------------------------------
 8541: 
 8542: /\v+\d\v+\w\v+\S\v+\V/BZ
 8543: ------------------------------------------------------------------
 8544:         Bra
 8545:         \v++
 8546:         \d
 8547:         \v++
 8548:         \w
 8549:         \v+
 8550:         \S
 8551:         \v++
 8552:         \V
 8553:         Ket
 8554:         End
 8555: ------------------------------------------------------------------
 8556: 
 8557: /\H+\h\H+\d/BZ
 8558: ------------------------------------------------------------------
 8559:         Bra
 8560:         \H++
 8561:         \h
 8562:         \H+
 8563:         \d
 8564:         Ket
 8565:         End
 8566: ------------------------------------------------------------------
 8567: 
 8568: /\V+\v\V+\w/BZ
 8569: ------------------------------------------------------------------
 8570:         Bra
 8571:         \V++
 8572:         \v
 8573:         \V+
 8574:         \w
 8575:         Ket
 8576:         End
 8577: ------------------------------------------------------------------
 8578: 
 8579: /\( (?: [^()]* | (?R) )* \)/x
 8580: \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)
 8581:  0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
 8582: 
 8583: /[\E]AAA/
 8584: Failed: missing terminating ] for character class at offset 7
 8585: 
 8586: /[\Q\E]AAA/
 8587: Failed: missing terminating ] for character class at offset 9
 8588: 
 8589: /[^\E]AAA/
 8590: Failed: missing terminating ] for character class at offset 8
 8591: 
 8592: /[^\Q\E]AAA/
 8593: Failed: missing terminating ] for character class at offset 10
 8594: 
 8595: /[\E^]AAA/
 8596: Failed: missing terminating ] for character class at offset 8
 8597: 
 8598: /[\Q\E^]AAA/
 8599: Failed: missing terminating ] for character class at offset 10
 8600: 
 8601: /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
 8602: ------------------------------------------------------------------
 8603:         Bra
 8604:         A
 8605:         *PRUNE
 8606:         B
 8607:         *SKIP
 8608:         C
 8609:         *THEN
 8610:         D
 8611:         *COMMIT
 8612:         E
 8613:         *FAIL
 8614:         F
 8615:         *FAIL
 8616:         G
 8617:         *FAIL
 8618:         H
 8619:         *ACCEPT
 8620:         I
 8621:         Ket
 8622:         End
 8623: ------------------------------------------------------------------
 8624: 
 8625: /^a+(*FAIL)/C
 8626:     aaaaaa
 8627: --->aaaaaa
 8628:  +0 ^          ^
 8629:  +1 ^          a+
 8630:  +3 ^     ^    (*FAIL)
 8631:  +3 ^    ^     (*FAIL)
 8632:  +3 ^   ^      (*FAIL)
 8633:  +3 ^  ^       (*FAIL)
 8634:  +3 ^ ^        (*FAIL)
 8635:  +3 ^^         (*FAIL)
 8636: No match
 8637:     
 8638: /a+b?c+(*FAIL)/C
 8639:     aaabccc
 8640: --->aaabccc
 8641:  +0 ^           a+
 8642:  +2 ^  ^        b?
 8643:  +4 ^   ^       c+
 8644:  +6 ^      ^    (*FAIL)
 8645:  +6 ^     ^     (*FAIL)
 8646:  +6 ^    ^      (*FAIL)
 8647:  +4 ^  ^        c+
 8648:  +2 ^ ^         b?
 8649:  +4 ^ ^         c+
 8650:  +2 ^^          b?
 8651:  +4 ^^          c+
 8652:  +0  ^          a+
 8653:  +2  ^ ^        b?
 8654:  +4  ^  ^       c+
 8655:  +6  ^     ^    (*FAIL)
 8656:  +6  ^    ^     (*FAIL)
 8657:  +6  ^   ^      (*FAIL)
 8658:  +4  ^ ^        c+
 8659:  +2  ^^         b?
 8660:  +4  ^^         c+
 8661:  +0   ^         a+
 8662:  +2   ^^        b?
 8663:  +4   ^ ^       c+
 8664:  +6   ^    ^    (*FAIL)
 8665:  +6   ^   ^     (*FAIL)
 8666:  +6   ^  ^      (*FAIL)
 8667:  +4   ^^        c+
 8668: No match
 8669: 
 8670: /a+b?(*PRUNE)c+(*FAIL)/C
 8671:     aaabccc
 8672: --->aaabccc
 8673:  +0 ^           a+
 8674:  +2 ^  ^        b?
 8675:  +4 ^   ^       (*PRUNE)
 8676: +12 ^   ^       c+
 8677: +14 ^      ^    (*FAIL)
 8678: +14 ^     ^     (*FAIL)
 8679: +14 ^    ^      (*FAIL)
 8680:  +0  ^          a+
 8681:  +2  ^ ^        b?
 8682:  +4  ^  ^       (*PRUNE)
 8683: +12  ^  ^       c+
 8684: +14  ^     ^    (*FAIL)
 8685: +14  ^    ^     (*FAIL)
 8686: +14  ^   ^      (*FAIL)
 8687:  +0   ^         a+
 8688:  +2   ^^        b?
 8689:  +4   ^ ^       (*PRUNE)
 8690: +12   ^ ^       c+
 8691: +14   ^    ^    (*FAIL)
 8692: +14   ^   ^     (*FAIL)
 8693: +14   ^  ^      (*FAIL)
 8694: No match
 8695: 
 8696: /a+b?(*COMMIT)c+(*FAIL)/C
 8697:     aaabccc
 8698: --->aaabccc
 8699:  +0 ^           a+
 8700:  +2 ^  ^        b?
 8701:  +4 ^   ^       (*COMMIT)
 8702: +13 ^   ^       c+
 8703: +15 ^      ^    (*FAIL)
 8704: +15 ^     ^     (*FAIL)
 8705: +15 ^    ^      (*FAIL)
 8706: No match
 8707:     
 8708: /a+b?(*SKIP)c+(*FAIL)/C
 8709:     aaabcccaaabccc
 8710: --->aaabcccaaabccc
 8711:  +0 ^                  a+
 8712:  +2 ^  ^               b?
 8713:  +4 ^   ^              (*SKIP)
 8714: +11 ^   ^              c+
 8715: +13 ^      ^           (*FAIL)
 8716: +13 ^     ^            (*FAIL)
 8717: +13 ^    ^             (*FAIL)
 8718:  +0        ^           a+
 8719:  +2        ^  ^        b?
 8720:  +4        ^   ^       (*SKIP)
 8721: +11        ^   ^       c+
 8722: +13        ^      ^    (*FAIL)
 8723: +13        ^     ^     (*FAIL)
 8724: +13        ^    ^      (*FAIL)
 8725: No match
 8726: 
 8727: /a+b?(*THEN)c+(*FAIL)/C
 8728:     aaabccc
 8729: --->aaabccc
 8730:  +0 ^           a+
 8731:  +2 ^  ^        b?
 8732:  +4 ^   ^       (*THEN)
 8733: +11 ^   ^       c+
 8734: +13 ^      ^    (*FAIL)
 8735: +13 ^     ^     (*FAIL)
 8736: +13 ^    ^      (*FAIL)
 8737:  +0  ^          a+
 8738:  +2  ^ ^        b?
 8739:  +4  ^  ^       (*THEN)
 8740: +11  ^  ^       c+
 8741: +13  ^     ^    (*FAIL)
 8742: +13  ^    ^     (*FAIL)
 8743: +13  ^   ^      (*FAIL)
 8744:  +0   ^         a+
 8745:  +2   ^^        b?
 8746:  +4   ^ ^       (*THEN)
 8747: +11   ^ ^       c+
 8748: +13   ^    ^    (*FAIL)
 8749: +13   ^   ^     (*FAIL)
 8750: +13   ^  ^      (*FAIL)
 8751: No match
 8752:     
 8753: /a(*MARK)b/ 
 8754: Failed: (*MARK) must have an argument at offset 7
 8755: 
 8756: /(?i:A{1,}\6666666666)/
 8757: Failed: number is too big at offset 19
 8758: 
 8759: /\g6666666666/
 8760: Failed: number is too big at offset 11
 8761: 
 8762: /[\g6666666666]/BZ
 8763: ------------------------------------------------------------------
 8764:         Bra
 8765:         [6g]
 8766:         Ket
 8767:         End
 8768: ------------------------------------------------------------------
 8769: 
 8770: /(?1)\c[/
 8771: Failed: reference to non-existent subpattern at offset 3
 8772: 
 8773: /.+A/<crlf>
 8774:     \r\nA
 8775: No match
 8776:     
 8777: /\nA/<crlf>
 8778:     \r\nA 
 8779:  0: \x0aA
 8780: 
 8781: /[\r\n]A/<crlf>
 8782:     \r\nA 
 8783:  0: \x0aA
 8784: 
 8785: /(\r|\n)A/<crlf>
 8786:     \r\nA 
 8787:  0: \x0aA
 8788:  1: \x0a
 8789: 
 8790: /a(*CR)b/
 8791: Failed: (*VERB) not recognized or malformed at offset 5
 8792: 
 8793: /(*CR)a.b/
 8794:     a\nb
 8795:  0: a\x0ab
 8796:     ** Failers
 8797: No match
 8798:     a\rb  
 8799: No match
 8800: 
 8801: /(*CR)a.b/<lf>
 8802:     a\nb
 8803:  0: a\x0ab
 8804:     ** Failers
 8805: No match
 8806:     a\rb  
 8807: No match
 8808: 
 8809: /(*LF)a.b/<CRLF>
 8810:     a\rb
 8811:  0: a\x0db
 8812:     ** Failers
 8813: No match
 8814:     a\nb  
 8815: No match
 8816: 
 8817: /(*CRLF)a.b/
 8818:     a\rb
 8819:  0: a\x0db
 8820:     a\nb  
 8821:  0: a\x0ab
 8822:     ** Failers
 8823: No match
 8824:     a\r\nb  
 8825: No match
 8826: 
 8827: /(*ANYCRLF)a.b/<CR>
 8828:     ** Failers
 8829: No match
 8830:     a\rb
 8831: No match
 8832:     a\nb  
 8833: No match
 8834:     a\r\nb  
 8835: No match
 8836: 
 8837: /(*ANY)a.b/<cr>
 8838:     ** Failers
 8839: No match
 8840:     a\rb
 8841: No match
 8842:     a\nb  
 8843: No match
 8844:     a\r\nb  
 8845: No match
 8846:     a\x85b 
 8847: No match
 8848:     
 8849: /(*ANY).*/g
 8850:     abc\r\ndef
 8851:  0: abc
 8852:  0: 
 8853:  0: def
 8854:  0: 
 8855: 
 8856: /(*ANYCRLF).*/g
 8857:     abc\r\ndef
 8858:  0: abc
 8859:  0: 
 8860:  0: def
 8861:  0: 
 8862: 
 8863: /(*CRLF).*/g
 8864:     abc\r\ndef
 8865:  0: abc
 8866:  0: 
 8867:  0: def
 8868:  0: 
 8869: 
 8870: /a\Rb/I<bsr_anycrlf>
 8871: Capturing subpattern count = 0
 8872: Options: bsr_anycrlf
 8873: First char = 'a'
 8874: Need char = 'b'
 8875:     a\rb
 8876:  0: a\x0db
 8877:     a\nb
 8878:  0: a\x0ab
 8879:     a\r\nb
 8880:  0: a\x0d\x0ab
 8881:     ** Failers
 8882: No match
 8883:     a\x85b
 8884: No match
 8885:     a\x0bb     
 8886: No match
 8887: 
 8888: /a\Rb/I<bsr_unicode>
 8889: Capturing subpattern count = 0
 8890: Options: bsr_unicode
 8891: First char = 'a'
 8892: Need char = 'b'
 8893:     a\rb
 8894:  0: a\x0db
 8895:     a\nb
 8896:  0: a\x0ab
 8897:     a\r\nb
 8898:  0: a\x0d\x0ab
 8899:     a\x85b
 8900:  0: a\x85b
 8901:     a\x0bb     
 8902:  0: a\x0bb
 8903:     ** Failers 
 8904: No match
 8905:     a\x85b\<bsr_anycrlf>
 8906: No match
 8907:     a\x0bb\<bsr_anycrlf>
 8908: No match
 8909:     
 8910: /a\R?b/I<bsr_anycrlf>
 8911: Capturing subpattern count = 0
 8912: Options: bsr_anycrlf
 8913: First char = 'a'
 8914: Need char = 'b'
 8915:     a\rb
 8916:  0: a\x0db
 8917:     a\nb
 8918:  0: a\x0ab
 8919:     a\r\nb
 8920:  0: a\x0d\x0ab
 8921:     ** Failers
 8922: No match
 8923:     a\x85b
 8924: No match
 8925:     a\x0bb     
 8926: No match
 8927: 
 8928: /a\R?b/I<bsr_unicode>
 8929: Capturing subpattern count = 0
 8930: Options: bsr_unicode
 8931: First char = 'a'
 8932: Need char = 'b'
 8933:     a\rb
 8934:  0: a\x0db
 8935:     a\nb
 8936:  0: a\x0ab
 8937:     a\r\nb
 8938:  0: a\x0d\x0ab
 8939:     a\x85b
 8940:  0: a\x85b
 8941:     a\x0bb     
 8942:  0: a\x0bb
 8943:     ** Failers 
 8944: No match
 8945:     a\x85b\<bsr_anycrlf>
 8946: No match
 8947:     a\x0bb\<bsr_anycrlf>
 8948: No match
 8949:     
 8950: /a\R{2,4}b/I<bsr_anycrlf>
 8951: Capturing subpattern count = 0
 8952: Options: bsr_anycrlf
 8953: First char = 'a'
 8954: Need char = 'b'
 8955:     a\r\n\nb
 8956:  0: a\x0d\x0a\x0ab
 8957:     a\n\r\rb
 8958:  0: a\x0a\x0d\x0db
 8959:     a\r\n\r\n\r\n\r\nb
 8960:  0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
 8961:     ** Failers
 8962: No match
 8963:     a\x85\85b
 8964: No match
 8965:     a\x0b\0bb     
 8966: No match
 8967: 
 8968: /a\R{2,4}b/I<bsr_unicode>
 8969: Capturing subpattern count = 0
 8970: Options: bsr_unicode
 8971: First char = 'a'
 8972: Need char = 'b'
 8973:     a\r\rb
 8974:  0: a\x0d\x0db
 8975:     a\n\n\nb
 8976:  0: a\x0a\x0a\x0ab
 8977:     a\r\n\n\r\rb
 8978:  0: a\x0d\x0a\x0a\x0d\x0db
 8979:     a\x85\85b
 8980: No match
 8981:     a\x0b\0bb     
 8982: No match
 8983:     ** Failers 
 8984: No match
 8985:     a\r\r\r\r\rb 
 8986: No match
 8987:     a\x85\85b\<bsr_anycrlf>
 8988: No match
 8989:     a\x0b\0bb\<bsr_anycrlf>
 8990: No match
 8991:  
 8992: /(*BSR_ANYCRLF)a\Rb/I
 8993: Capturing subpattern count = 0
 8994: Options: bsr_anycrlf
 8995: First char = 'a'
 8996: Need char = 'b'
 8997:     a\nb
 8998:  0: a\x0ab
 8999:     a\rb 
 9000:  0: a\x0db
 9001: 
 9002: /(*BSR_UNICODE)a\Rb/I
 9003: Capturing subpattern count = 0
 9004: Options: bsr_unicode
 9005: First char = 'a'
 9006: Need char = 'b'
 9007:     a\x85b
 9008:  0: a\x85b
 9009: 
 9010: /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
 9011: Capturing subpattern count = 0
 9012: Options: bsr_anycrlf
 9013: Forced newline sequence: CRLF
 9014: First char = 'a'
 9015: Need char = 'b'
 9016:     a\nb
 9017:  0: a\x0ab
 9018:     a\rb 
 9019:  0: a\x0db
 9020: 
 9021: /(*CRLF)(*BSR_UNICODE)a\Rb/I
 9022: Capturing subpattern count = 0
 9023: Options: bsr_unicode
 9024: Forced newline sequence: CRLF
 9025: First char = 'a'
 9026: Need char = 'b'
 9027:     a\x85b
 9028:  0: a\x85b
 9029: 
 9030: /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
 9031: Capturing subpattern count = 0
 9032: Options: bsr_anycrlf
 9033: Forced newline sequence: CR
 9034: First char = 'a'
 9035: Need char = 'b'
 9036: 
 9037: /(?<a>)(?&)/
 9038: Failed: subpattern name expected at offset 9
 9039: 
 9040: /(?<abc>)(?&a)/
 9041: Failed: reference to non-existent subpattern at offset 12
 9042: 
 9043: /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
 9044: Failed: reference to non-existent subpattern at offset 32
 9045: 
 9046: /(?+-a)/
 9047: Failed: digit expected after (?+ at offset 3
 9048: 
 9049: /(?-+a)/
 9050: Failed: unrecognized character after (? or (?- at offset 3
 9051: 
 9052: /(?(-1))/
 9053: Failed: reference to non-existent subpattern at offset 6
 9054: 
 9055: /(?(+10))/
 9056: Failed: reference to non-existent subpattern at offset 7
 9057: 
 9058: /(?(10))/
 9059: Failed: reference to non-existent subpattern at offset 6
 9060: 
 9061: /(?(+2))()()/
 9062: 
 9063: /(?(2))()()/
 9064: 
 9065: /\k''/
 9066: Failed: subpattern name expected at offset 3
 9067: 
 9068: /\k<>/
 9069: Failed: subpattern name expected at offset 3
 9070: 
 9071: /\k{}/
 9072: Failed: subpattern name expected at offset 3
 9073: 
 9074: /\k/
 9075: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
 9076: 
 9077: /\kabc/
 9078: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
 9079: 
 9080: /(?P=)/
 9081: Failed: subpattern name expected at offset 4
 9082: 
 9083: /(?P>)/
 9084: Failed: subpattern name expected at offset 4
 9085: 
 9086: /(?!\w)(?R)/
 9087: Failed: recursive call could loop indefinitely at offset 9
 9088: 
 9089: /(?=\w)(?R)/
 9090: Failed: recursive call could loop indefinitely at offset 9
 9091: 
 9092: /(?<!\w)(?R)/
 9093: Failed: recursive call could loop indefinitely at offset 10
 9094: 
 9095: /(?<=\w)(?R)/
 9096: Failed: recursive call could loop indefinitely at offset 10
 9097: 
 9098: /[[:foo:]]/
 9099: Failed: unknown POSIX class name at offset 3
 9100: 
 9101: /[[:1234:]]/
 9102: Failed: unknown POSIX class name at offset 3
 9103: 
 9104: /[[:f\oo:]]/
 9105: Failed: unknown POSIX class name at offset 3
 9106: 
 9107: /[[: :]]/
 9108: Failed: unknown POSIX class name at offset 3
 9109: 
 9110: /[[:...:]]/
 9111: Failed: unknown POSIX class name at offset 3
 9112: 
 9113: /[[:l\ower:]]/
 9114: Failed: unknown POSIX class name at offset 3
 9115: 
 9116: /[[:abc\:]]/
 9117: Failed: unknown POSIX class name at offset 3
 9118: 
 9119: /[abc[:x\]pqr:]]/
 9120: Failed: unknown POSIX class name at offset 6
 9121: 
 9122: /[[:a\dz:]]/
 9123: Failed: unknown POSIX class name at offset 3
 9124: 
 9125: /(^(a|b\g<-1'c))/
 9126: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
 9127: 
 9128: /^(?+1)(?<a>x|y){0}z/
 9129:     xzxx
 9130:  0: xz
 9131:     yzyy 
 9132:  0: yz
 9133:     ** Failers
 9134: No match
 9135:     xxz  
 9136: No match
 9137: 
 9138: /(\3)(\1)(a)/
 9139:     cat
 9140: No match
 9141: 
 9142: /(\3)(\1)(a)/<JS>
 9143:     cat
 9144:  0: a
 9145:  1: 
 9146:  2: 
 9147:  3: a
 9148:     
 9149: /TA]/
 9150:     The ACTA] comes 
 9151:  0: TA]
 9152: 
 9153: /TA]/<JS>
 9154: Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
 9155: 
 9156: /(?2)[]a()b](abc)/
 9157: Failed: reference to non-existent subpattern at offset 3
 9158: 
 9159: /(?2)[^]a()b](abc)/
 9160: Failed: reference to non-existent subpattern at offset 3
 9161: 
 9162: /(?1)[]a()b](abc)/
 9163:     abcbabc
 9164:  0: abcbabc
 9165:  1: abc
 9166:     ** Failers 
 9167: No match
 9168:     abcXabc
 9169: No match
 9170: 
 9171: /(?1)[^]a()b](abc)/
 9172:     abcXabc
 9173:  0: abcXabc
 9174:  1: abc
 9175:     ** Failers 
 9176: No match
 9177:     abcbabc
 9178: No match
 9179: 
 9180: /(?2)[]a()b](abc)(xyz)/
 9181:     xyzbabcxyz
 9182:  0: xyzbabcxyz
 9183:  1: abc
 9184:  2: xyz
 9185: 
 9186: /(?&N)[]a(?<N>)](?<M>abc)/
 9187: Failed: reference to non-existent subpattern at offset 4
 9188: 
 9189: /(?&N)[]a(?<N>)](abc)/
 9190: Failed: reference to non-existent subpattern at offset 4
 9191: 
 9192: /a[]b/
 9193: Failed: missing terminating ] for character class at offset 4
 9194: 
 9195: /a[^]b/
 9196: Failed: missing terminating ] for character class at offset 5
 9197: 
 9198: /a[]b/<JS>
 9199:     ** Failers
 9200: No match
 9201:     ab
 9202: No match
 9203: 
 9204: /a[]+b/<JS>
 9205:     ** Failers
 9206: No match
 9207:     ab 
 9208: No match
 9209: 
 9210: /a[]*+b/<JS>
 9211:     ** Failers
 9212: No match
 9213:     ab 
 9214: No match
 9215: 
 9216: /a[^]b/<JS>
 9217:     aXb
 9218:  0: aXb
 9219:     a\nb 
 9220:  0: a\x0ab
 9221:     ** Failers
 9222: No match
 9223:     ab  
 9224: No match
 9225:     
 9226: /a[^]+b/<JS> 
 9227:     aXb
 9228:  0: aXb
 9229:     a\nX\nXb 
 9230:  0: a\x0aX\x0aXb
 9231:     ** Failers
 9232: No match
 9233:     ab  
 9234: No match
 9235: 
 9236: /a(?!)+b/
 9237: Failed: nothing to repeat at offset 5
 9238: 
 9239: /a(*FAIL)+b/
 9240: Failed: nothing to repeat at offset 8
 9241: 
 9242: /(abc|pqr|123){0}[xyz]/SI
 9243: Capturing subpattern count = 1
 9244: No options
 9245: No first char
 9246: No need char
 9247: Subject length lower bound = 1
 9248: Starting byte set: x y z 
 9249: 
 9250: /(?(?=.*b)b|^)/CI
 9251: Capturing subpattern count = 0
 9252: Options:
 9253: No first char
 9254: No need char
 9255:    adc
 9256: --->adc
 9257:  +0 ^       (?(?=.*b)b|^)
 9258:  +2 ^       (?=.*b)
 9259:  +5 ^       .*
 9260:  +7 ^  ^    b
 9261:  +7 ^ ^     b
 9262:  +7 ^^      b
 9263:  +7 ^       b
 9264: +11 ^       ^
 9265: +12 ^       )
 9266: +13 ^       
 9267:  0: 
 9268:    abc 
 9269: --->abc
 9270:  +0 ^       (?(?=.*b)b|^)
 9271:  +2 ^       (?=.*b)
 9272:  +5 ^       .*
 9273:  +7 ^  ^    b
 9274:  +7 ^ ^     b
 9275:  +7 ^^      b
 9276:  +8 ^ ^     )
 9277:  +9 ^       b
 9278:  +0  ^      (?(?=.*b)b|^)
 9279:  +2  ^      (?=.*b)
 9280:  +5  ^      .*
 9281:  +7  ^ ^    b
 9282:  +7  ^^     b
 9283:  +7  ^      b
 9284:  +8  ^^     )
 9285:  +9  ^      b
 9286: +10  ^^     |
 9287: +13  ^^     
 9288:  0: b
 9289:    
 9290: /(?(?=b).*b|^d)/I
 9291: Capturing subpattern count = 0
 9292: No options
 9293: No first char
 9294: No need char
 9295: 
 9296: /(?(?=.*b).*b|^d)/I
 9297: Capturing subpattern count = 0
 9298: No options
 9299: First char at start or follows newline
 9300: No need char
 9301: 
 9302: /xyz/C
 9303:   xyz 
 9304: --->xyz
 9305:  +0 ^       x
 9306:  +1 ^^      y
 9307:  +2 ^ ^     z
 9308:  +3 ^  ^    
 9309:  0: xyz
 9310:   abcxyz 
 9311: --->abcxyz
 9312:  +0    ^       x
 9313:  +1    ^^      y
 9314:  +2    ^ ^     z
 9315:  +3    ^  ^    
 9316:  0: xyz
 9317:   abcxyz\Y
 9318: --->abcxyz
 9319:  +0 ^          x
 9320:  +0  ^         x
 9321:  +0   ^        x
 9322:  +0    ^       x
 9323:  +1    ^^      y
 9324:  +2    ^ ^     z
 9325:  +3    ^  ^    
 9326:  0: xyz
 9327:   ** Failers 
 9328: No match
 9329:   abc
 9330: No match
 9331:   abc\Y
 9332: --->abc
 9333:  +0 ^       x
 9334:  +0  ^      x
 9335:  +0   ^     x
 9336:  +0    ^    x
 9337: No match
 9338:   abcxypqr  
 9339: No match
 9340:   abcxypqr\Y  
 9341: --->abcxypqr
 9342:  +0 ^            x
 9343:  +0  ^           x
 9344:  +0   ^          x
 9345:  +0    ^         x
 9346:  +1    ^^        y
 9347:  +2    ^ ^       z
 9348:  +0     ^        x
 9349:  +0      ^       x
 9350:  +0       ^      x
 9351:  +0        ^     x
 9352:  +0         ^    x
 9353: No match
 9354:   
 9355: /(*NO_START_OPT)xyz/C
 9356:   abcxyz 
 9357: --->abcxyz
 9358: +15 ^          x
 9359: +15  ^         x
 9360: +15   ^        x
 9361: +15    ^       x
 9362: +16    ^^      y
 9363: +17    ^ ^     z
 9364: +18    ^  ^    
 9365:  0: xyz
 9366: 
 9367: /xyz/CY
 9368:   abcxyz 
 9369: --->abcxyz
 9370:  +0 ^          x
 9371:  +0  ^         x
 9372:  +0   ^        x
 9373:  +0    ^       x
 9374:  +1    ^^      y
 9375:  +2    ^ ^     z
 9376:  +3    ^  ^    
 9377:  0: xyz
 9378: 
 9379: /^"((?(?=[a])[^"])|b)*"$/C
 9380:     "ab"
 9381: --->"ab"
 9382:  +0 ^        ^
 9383:  +1 ^        "
 9384:  +2 ^^       ((?(?=[a])[^"])|b)*
 9385:  +3 ^^       (?(?=[a])[^"])
 9386:  +5 ^^       (?=[a])
 9387:  +8 ^^       [a]
 9388: +11 ^ ^      )
 9389: +12 ^^       [^"]
 9390: +16 ^ ^      )
 9391: +17 ^ ^      |
 9392:  +3 ^ ^      (?(?=[a])[^"])
 9393:  +5 ^ ^      (?=[a])
 9394:  +8 ^ ^      [a]
 9395: +17 ^ ^      |
 9396: +21 ^ ^      "
 9397: +18 ^ ^      b
 9398: +19 ^  ^     )
 9399:  +3 ^  ^     (?(?=[a])[^"])
 9400:  +5 ^  ^     (?=[a])
 9401:  +8 ^  ^     [a]
 9402: +17 ^  ^     |
 9403: +21 ^  ^     "
 9404: +22 ^   ^    $
 9405: +23 ^   ^    
 9406:  0: "ab"
 9407:  1: 
 9408: 
 9409: /^"((?(?=[a])[^"])|b)*"$/
 9410:     "ab"
 9411:  0: "ab"
 9412:  1: 
 9413: 
 9414: /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
 9415: Failed: reference to non-existent subpattern at offset 5
 9416: 
 9417: /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
 9418:     XYabcdY
 9419:  0: XYabcdY
 9420:  1: a
 9421:  2: b
 9422:  3: c
 9423:  4: d
 9424:  5: Y
 9425:  
 9426: /Xa{2,4}b/
 9427:     X\P
 9428: Partial match: X
 9429:     Xa\P
 9430: Partial match: Xa
 9431:     Xaa\P 
 9432: Partial match: Xaa
 9433:     Xaaa\P
 9434: Partial match: Xaaa
 9435:     Xaaaa\P 
 9436: Partial match: Xaaaa
 9437:     
 9438: /Xa{2,4}?b/
 9439:     X\P
 9440: Partial match: X
 9441:     Xa\P
 9442: Partial match: Xa
 9443:     Xaa\P 
 9444: Partial match: Xaa
 9445:     Xaaa\P
 9446: Partial match: Xaaa
 9447:     Xaaaa\P 
 9448: Partial match: Xaaaa
 9449:     
 9450: /Xa{2,4}+b/
 9451:     X\P
 9452: Partial match: X
 9453:     Xa\P
 9454: Partial match: Xa
 9455:     Xaa\P 
 9456: Partial match: Xaa
 9457:     Xaaa\P
 9458: Partial match: Xaaa
 9459:     Xaaaa\P 
 9460: Partial match: Xaaaa
 9461:     
 9462: /X\d{2,4}b/
 9463:     X\P
 9464: Partial match: X
 9465:     X3\P
 9466: Partial match: X3
 9467:     X33\P 
 9468: Partial match: X33
 9469:     X333\P
 9470: Partial match: X333
 9471:     X3333\P 
 9472: Partial match: X3333
 9473:     
 9474: /X\d{2,4}?b/
 9475:     X\P
 9476: Partial match: X
 9477:     X3\P
 9478: Partial match: X3
 9479:     X33\P 
 9480: Partial match: X33
 9481:     X333\P
 9482: Partial match: X333
 9483:     X3333\P 
 9484: Partial match: X3333
 9485:     
 9486: /X\d{2,4}+b/
 9487:     X\P
 9488: Partial match: X
 9489:     X3\P
 9490: Partial match: X3
 9491:     X33\P 
 9492: Partial match: X33
 9493:     X333\P
 9494: Partial match: X333
 9495:     X3333\P 
 9496: Partial match: X3333
 9497:     
 9498: /X\D{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: /X\D{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: /X\D{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[abc]{2,4}b/
 9535:     X\P
 9536: Partial match: X
 9537:     Xa\P
 9538: Partial match: Xa
 9539:     Xaa\P 
 9540: Partial match: Xaa
 9541:     Xaaa\P
 9542: Partial match: Xaaa
 9543:     Xaaaa\P 
 9544: Partial match: Xaaaa
 9545:     
 9546: /X[abc]{2,4}?b/
 9547:     X\P
 9548: Partial match: X
 9549:     Xa\P
 9550: Partial match: Xa
 9551:     Xaa\P 
 9552: Partial match: Xaa
 9553:     Xaaa\P
 9554: Partial match: Xaaa
 9555:     Xaaaa\P 
 9556: Partial match: Xaaaa
 9557:     
 9558: /X[abc]{2,4}+b/
 9559:     X\P
 9560: Partial match: X
 9561:     Xa\P
 9562: Partial match: Xa
 9563:     Xaa\P 
 9564: Partial match: Xaa
 9565:     Xaaa\P
 9566: Partial match: Xaaa
 9567:     Xaaaa\P 
 9568: Partial match: Xaaaa
 9569:     
 9570: /X[^a]{2,4}b/
 9571:     X\P
 9572: Partial match: X
 9573:     Xz\P
 9574: Partial match: Xz
 9575:     Xzz\P 
 9576: Partial match: Xzz
 9577:     Xzzz\P
 9578: Partial match: Xzzz
 9579:     Xzzzz\P 
 9580: Partial match: Xzzzz
 9581:     
 9582: /X[^a]{2,4}?b/
 9583:     X\P
 9584: Partial match: X
 9585:     Xz\P
 9586: Partial match: Xz
 9587:     Xzz\P 
 9588: Partial match: Xzz
 9589:     Xzzz\P
 9590: Partial match: Xzzz
 9591:     Xzzzz\P 
 9592: Partial match: Xzzzz
 9593:     
 9594: /X[^a]{2,4}+b/
 9595:     X\P
 9596: Partial match: X
 9597:     Xz\P
 9598: Partial match: Xz
 9599:     Xzz\P 
 9600: Partial match: Xzz
 9601:     Xzzz\P
 9602: Partial match: Xzzz
 9603:     Xzzzz\P 
 9604: Partial match: Xzzzz
 9605:     
 9606: /(Y)X\1{2,4}b/
 9607:     YX\P
 9608: Partial match: YX
 9609:     YXY\P
 9610: Partial match: YXY
 9611:     YXYY\P 
 9612: Partial match: YXYY
 9613:     YXYYY\P
 9614: Partial match: YXYYY
 9615:     YXYYYY\P 
 9616: Partial match: YXYYYY
 9617:     
 9618: /(Y)X\1{2,4}?b/
 9619:     YX\P
 9620: Partial match: YX
 9621:     YXY\P
 9622: Partial match: YXY
 9623:     YXYY\P 
 9624: Partial match: YXYY
 9625:     YXYYY\P
 9626: Partial match: YXYYY
 9627:     YXYYYY\P 
 9628: Partial match: YXYYYY
 9629:     
 9630: /(Y)X\1{2,4}+b/
 9631:     YX\P
 9632: Partial match: YX
 9633:     YXY\P
 9634: Partial match: YXY
 9635:     YXYY\P 
 9636: Partial match: YXYY
 9637:     YXYYY\P
 9638: Partial match: YXYYY
 9639:     YXYYYY\P 
 9640: Partial match: YXYYYY
 9641:     
 9642: /\++\KZ|\d+X|9+Y/
 9643:     ++++123999\P
 9644: Partial match: 123999
 9645:     ++++123999Y\P
 9646:  0: 999Y
 9647:     ++++Z1234\P 
 9648:  0: Z
 9649: 
 9650: /Z(*F)/
 9651:     Z\P
 9652: No match
 9653:     ZA\P 
 9654: No match
 9655:     
 9656: /Z(?!)/
 9657:     Z\P 
 9658: No match
 9659:     ZA\P 
 9660: No match
 9661: 
 9662: /dog(sbody)?/
 9663:     dogs\P
 9664:  0: dog
 9665:     dogs\P\P 
 9666: Partial match: dogs
 9667:     
 9668: /dog(sbody)??/
 9669:     dogs\P
 9670:  0: dog
 9671:     dogs\P\P 
 9672:  0: dog
 9673: 
 9674: /dog|dogsbody/
 9675:     dogs\P
 9676:  0: dog
 9677:     dogs\P\P 
 9678:  0: dog
 9679:  
 9680: /dogsbody|dog/
 9681:     dogs\P
 9682:  0: dog
 9683:     dogs\P\P 
 9684: Partial match: dogs
 9685: 
 9686: /\bthe cat\b/
 9687:     the cat\P
 9688:  0: the cat
 9689:     the cat\P\P
 9690: Partial match: the cat
 9691: 
 9692: /abc/
 9693:    abc\P
 9694:  0: abc
 9695:    abc\P\P
 9696:  0: abc
 9697:    
 9698: /abc\K123/
 9699:     xyzabc123pqr
 9700:  0: 123
 9701:     xyzabc12\P
 9702: Partial match: abc12
 9703:     xyzabc12\P\P
 9704: Partial match: abc12
 9705:     
 9706: /(?<=abc)123/
 9707:     xyzabc123pqr 
 9708:  0: 123
 9709:     xyzabc12\P
 9710: Partial match at offset 6: abc12
 9711:     xyzabc12\P\P
 9712: Partial match at offset 6: abc12
 9713: 
 9714: /\babc\b/
 9715:     +++abc+++
 9716:  0: abc
 9717:     +++ab\P
 9718: Partial match at offset 3: +ab
 9719:     +++ab\P\P  
 9720: Partial match at offset 3: +ab
 9721: 
 9722: /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
 9723: ------------------------------------------------------------------
 9724:         Bra
 9725:         Recurse
 9726:         Recurse
 9727:         Cond
 9728:         Cond def
 9729:         CBra 1
 9730:         <
 9731:         [^m]
 9732:         [^>]
 9733:         >
 9734:         [^<]
 9735:         Ket
 9736:         CBra 2
 9737:         \w*+
 9738:         Ket
 9739:         Ket
 9740:         Ket
 9741:         End
 9742: ------------------------------------------------------------------
 9743: 
 9744: /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
 9745: ------------------------------------------------------------------
 9746:         Bra
 9747:         Recurse
 9748:         Recurse
 9749:         Cond
 9750:         Cond def
 9751:         CBra 1
 9752:         <
 9753:         [\x00-/:-\xff] (neg)
 9754:         [^>]
 9755:         >
 9756:         [^<]
 9757:         Ket
 9758:         CBra 2
 9759:         \w*+
 9760:         Ket
 9761:         Ket
 9762:         Ket
 9763:         End
 9764: ------------------------------------------------------------------
 9765: 
 9766: /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
 9767: ------------------------------------------------------------------
 9768:         Bra
 9769:         CBra 1
 9770:         ab
 9771:         Ket
 9772:         CBra 2
 9773:         x
 9774:         CBra 3
 9775:         y
 9776:         Ket
 9777:         z
 9778:         CBra 4
 9779:         cd
 9780:         Close 4
 9781:         Close 2
 9782:         *ACCEPT
 9783:         Ket
 9784:         Ket
 9785:         pq
 9786:         Ket
 9787:         End
 9788: ------------------------------------------------------------------
 9789: 
 9790: /abc\K/+
 9791:     abcdef
 9792:  0: 
 9793:  0+ def
 9794:     abcdef\N\N
 9795:  0: 
 9796:  0+ def
 9797:     xyzabcdef\N\N
 9798:  0: 
 9799:  0+ def
 9800:     ** Failers
 9801: No match
 9802:     abcdef\N 
 9803: No match
 9804:     xyzabcdef\N
 9805: No match
 9806:     
 9807: /^(?:(?=abc)|abc\K)/+
 9808:     abcdef
 9809:  0: 
 9810:  0+ abcdef
 9811:     abcdef\N\N 
 9812:  0: 
 9813:  0+ def
 9814:     ** Failers 
 9815: No match
 9816:     abcdef\N 
 9817: No match
 9818: 
 9819: /a?b?/+
 9820:     xyz
 9821:  0: 
 9822:  0+ xyz
 9823:     xyzabc
 9824:  0: 
 9825:  0+ xyzabc
 9826:     xyzabc\N
 9827:  0: ab
 9828:  0+ c
 9829:     xyzabc\N\N
 9830:  0: 
 9831:  0+ yzabc
 9832:     xyz\N\N    
 9833:  0: 
 9834:  0+ yz
 9835:     ** Failers 
 9836:  0: 
 9837:  0+ ** Failers
 9838:     xyz\N 
 9839: No match
 9840: 
 9841: /^a?b?/+
 9842:     xyz
 9843:  0: 
 9844:  0+ xyz
 9845:     xyzabc
 9846:  0: 
 9847:  0+ xyzabc
 9848:     ** Failers 
 9849:  0: 
 9850:  0+ ** Failers
 9851:     xyzabc\N
 9852: No match
 9853:     xyzabc\N\N
 9854: No match
 9855:     xyz\N\N    
 9856: No match
 9857:     xyz\N 
 9858: No match
 9859:     
 9860: /^(?<name>a|b\g<name>c)/
 9861:     aaaa
 9862:  0: a
 9863:  1: a
 9864:     bacxxx
 9865:  0: bac
 9866:  1: bac
 9867:     bbaccxxx 
 9868:  0: bbacc
 9869:  1: bbacc
 9870:     bbbacccxx
 9871:  0: bbbaccc
 9872:  1: bbbaccc
 9873: 
 9874: /^(?<name>a|b\g'name'c)/
 9875:     aaaa
 9876:  0: a
 9877:  1: a
 9878:     bacxxx
 9879:  0: bac
 9880:  1: bac
 9881:     bbaccxxx 
 9882:  0: bbacc
 9883:  1: bbacc
 9884:     bbbacccxx
 9885:  0: bbbaccc
 9886:  1: bbbaccc
 9887: 
 9888: /^(a|b\g<1>c)/
 9889:     aaaa
 9890:  0: a
 9891:  1: a
 9892:     bacxxx
 9893:  0: bac
 9894:  1: bac
 9895:     bbaccxxx 
 9896:  0: bbacc
 9897:  1: bbacc
 9898:     bbbacccxx
 9899:  0: bbbaccc
 9900:  1: bbbaccc
 9901: 
 9902: /^(a|b\g'1'c)/
 9903:     aaaa
 9904:  0: a
 9905:  1: a
 9906:     bacxxx
 9907:  0: bac
 9908:  1: bac
 9909:     bbaccxxx 
 9910:  0: bbacc
 9911:  1: bbacc
 9912:     bbbacccxx
 9913:  0: bbbaccc
 9914:  1: bbbaccc
 9915: 
 9916: /^(a|b\g'-1'c)/
 9917:     aaaa
 9918:  0: a
 9919:  1: a
 9920:     bacxxx
 9921:  0: bac
 9922:  1: bac
 9923:     bbaccxxx 
 9924:  0: bbacc
 9925:  1: bbacc
 9926:     bbbacccxx
 9927:  0: bbbaccc
 9928:  1: bbbaccc
 9929: 
 9930: /(^(a|b\g<-1>c))/
 9931:     aaaa
 9932:  0: a
 9933:  1: a
 9934:  2: a
 9935:     bacxxx
 9936:  0: bac
 9937:  1: bac
 9938:  2: bac
 9939:     bbaccxxx 
 9940:  0: bbacc
 9941:  1: bbacc
 9942:  2: bbacc
 9943:     bbbacccxx
 9944:  0: bbbaccc
 9945:  1: bbbaccc
 9946:  2: bbbaccc
 9947: 
 9948: /(?-i:\g<name>)(?i:(?<name>a))/
 9949:     XaaX
 9950:  0: aa
 9951:  1: a
 9952:     XAAX 
 9953:  0: AA
 9954:  1: A
 9955: 
 9956: /(?i:\g<name>)(?-i:(?<name>a))/
 9957:     XaaX
 9958:  0: aa
 9959:  1: a
 9960:     ** Failers 
 9961: No match
 9962:     XAAX 
 9963: No match
 9964: 
 9965: /(?-i:\g<+1>)(?i:(a))/
 9966:     XaaX
 9967:  0: aa
 9968:  1: a
 9969:     XAAX 
 9970:  0: AA
 9971:  1: A
 9972: 
 9973: /(?=(?<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>\})\}))\{/
 9974: 
 9975: /(?<n>a|b|c)\g<n>*/
 9976:    abc
 9977:  0: abc
 9978:  1: a
 9979:    accccbbb 
 9980:  0: accccbbb
 9981:  1: a
 9982: 
 9983: /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
 9984:     XYabcdY
 9985:  0: XYabcdY
 9986:  1: a
 9987:  2: b
 9988:  3: <unset>
 9989:  4: <unset>
 9990:  5: c
 9991:  6: d
 9992:  7: Y
 9993: 
 9994: /(?<=b(?1)|zzz)(a)/
 9995:     xbaax
 9996:  0: a
 9997:  1: a
 9998:     xzzzax 
 9999:  0: a
10000:  1: a
10001: 
10002: /(a)(?<=b\1)/
10003: Failed: lookbehind assertion is not fixed length at offset 10
10004: 
10005: /(a)(?<=b+(?1))/
10006: Failed: lookbehind assertion is not fixed length at offset 13
10007: 
10008: /(a+)(?<=b(?1))/
10009: Failed: lookbehind assertion is not fixed length at offset 14
10010: 
10011: /(a(?<=b(?1)))/
10012: Failed: lookbehind assertion is not fixed length at offset 13
10013: 
10014: /(?<=b(?1))xyz/
10015: Failed: reference to non-existent subpattern at offset 8
10016: 
10017: /(?<=b(?1))xyz(b+)pqrstuvew/
10018: Failed: lookbehind assertion is not fixed length at offset 26
10019: 
10020: /(a|bc)\1/SI
10021: Capturing subpattern count = 1
10022: Max back reference = 1
10023: No options
10024: No first char
10025: No need char
10026: Subject length lower bound = 2
10027: Starting byte set: a b 
10028: 
10029: /(a|bc)\1{2,3}/SI
10030: Capturing subpattern count = 1
10031: Max back reference = 1
10032: No options
10033: No first char
10034: No need char
10035: Subject length lower bound = 3
10036: Starting byte set: a b 
10037: 
10038: /(a|bc)(?1)/SI
10039: Capturing subpattern count = 1
10040: No options
10041: No first char
10042: No need char
10043: Subject length lower bound = 2
10044: Starting byte set: a b 
10045: 
10046: /(a|b\1)(a|b\1)/SI
10047: Capturing subpattern count = 2
10048: Max back reference = 1
10049: No options
10050: No first char
10051: No need char
10052: Subject length lower bound = 2
10053: Starting byte set: a b 
10054: 
10055: /(a|b\1){2}/SI
10056: Capturing subpattern count = 1
10057: Max back reference = 1
10058: No options
10059: No first char
10060: No need char
10061: Subject length lower bound = 2
10062: Starting byte set: a b 
10063: 
10064: /(a|bbbb\1)(a|bbbb\1)/SI
10065: Capturing subpattern count = 2
10066: Max back reference = 1
10067: No options
10068: No first char
10069: No need char
10070: Subject length lower bound = 2
10071: Starting byte set: a b 
10072: 
10073: /(a|bbbb\1){2}/SI
10074: Capturing subpattern count = 1
10075: Max back reference = 1
10076: No options
10077: No first char
10078: No need char
10079: Subject length lower bound = 2
10080: Starting byte set: a b 
10081: 
10082: /^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
10083: Capturing subpattern count = 1
10084: Options: anchored
10085: No first char
10086: Need char = ':'
10087: Subject length lower bound = 22
10088: No set of starting bytes
10089: 
10090: /<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
10091: Capturing subpattern count = 11
10092: Options: caseless dotall
10093: First char = '<'
10094: Need char = '>'
10095: Subject length lower bound = 47
10096: No set of starting bytes
10097: 
10098: "(?>.*/)foo"SI
10099: Capturing subpattern count = 0
10100: No options
10101: No first char
10102: Need char = 'o'
10103: Subject length lower bound = 4
10104: No set of starting bytes
10105: 
10106: /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10107: Capturing subpattern count = 0
10108: Options: extended
10109: No first char
10110: Need char = '-'
10111: Subject length lower bound = 8
10112: No set of starting bytes
10113: 
10114: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10115: Capturing subpattern count = 1
10116: Options: caseless
10117: No first char
10118: No need char
10119: Subject length lower bound = 1
10120: Starting byte set: A B C a b c 
10121: 
10122: /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10123: Capturing subpattern count = 0
10124: No options
10125: No first char
10126: Need char = 'b'
10127: Subject length lower bound = 41
10128: Starting byte set: c d 
10129: 
10130: /<a[\s]+href[\s]*=[\s]*          # find <a href=
10131:  ([\"\'])?                       # find single or double quote
10132:  (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10133:                                  # quote, otherwise match up to next space
10134: /isxSI
10135: Capturing subpattern count = 3
10136: Max back reference = 1
10137: Options: caseless extended dotall
10138: First char = '<'
10139: Need char = '='
10140: Subject length lower bound = 9
10141: No set of starting bytes
10142: 
10143: /^(?!:)                       # colon disallowed at start
10144:   (?:                         # start of item
10145:     (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10146:     (?(1)0 | () ) )           # if null previously matched, fail; else null
10147:     :                         # followed by colon
10148:   ){1,7}                      # end item; 1-7 of them required               
10149:   [0-9a-f]{1,4} $             # final hex number at end of string
10150:   (?(1)|.)                    # check that there was an empty component
10151:   /xiIS
10152: Capturing subpattern count = 1
10153: Options: anchored caseless extended
10154: No first char
10155: Need char = ':'
10156: Subject length lower bound = 2
10157: No set of starting bytes
10158: 
10159: /(?|(?<a>A)|(?<a>B))/I
10160: Capturing subpattern count = 1
10161: Named capturing subpatterns:
10162:   a   1
10163:   a   1
10164: No options
10165: No first char
10166: No need char
10167:     AB\Ca
10168:  0: A
10169:  1: A
10170:   C A (1) a
10171:     BA\Ca
10172:  0: B
10173:  1: B
10174:   C B (1) a
10175: 
10176: /(?|(?<a>A)|(?<b>B))/ 
10177: Failed: different names for subpatterns of the same number are not allowed at offset 15
10178: 
10179: /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10180:     b(?<quote> (?<apostrophe>')|(?<realquote>")) ) 
10181:     (?('quote')[a-z]+|[0-9]+)/JIx
10182: Capturing subpattern count = 6
10183: Named capturing subpatterns:
10184:   apostrophe   2
10185:   apostrophe   5
10186:   quote        1
10187:   quote        4
10188:   realquote    3
10189:   realquote    6
10190: Options: extended dupnames
10191: No first char
10192: No need char
10193:     a"aaaaa
10194:  0: a"aaaaa
10195:  1: "
10196:  2: <unset>
10197:  3: "
10198:     b"aaaaa 
10199:  0: b"aaaaa
10200:  1: <unset>
10201:  2: <unset>
10202:  3: <unset>
10203:  4: "
10204:  5: <unset>
10205:  6: "
10206:     ** Failers 
10207: No match
10208:     b"11111
10209: No match
10210:     a"11111 
10211: No match
10212:     
10213: /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10214: ------------------------------------------------------------------
10215:         Bra
10216:         ^
10217:         Bra
10218:         CBra 1
10219:         a
10220:         Ket
10221:         CBra 2
10222:         b
10223:         Ket
10224:         CBra 3
10225:         c
10226:         Ket
10227:         CBra 4
10228:         d
10229:         Ket
10230:         Alt
10231:         CBra 1
10232:         e
10233:         Ket
10234:         Ket
10235:         Cond
10236:       4 Cond nref
10237:         X
10238:         Alt
10239:         Y
10240:         Ket
10241:         Ket
10242:         End
10243: ------------------------------------------------------------------
10244: Capturing subpattern count = 4
10245: Named capturing subpatterns:
10246:   D   4
10247:   D   1
10248: Options: anchored extended dupnames
10249: No first char
10250: No need char
10251:     abcdX
10252:  0: abcdX
10253:  1: a
10254:  2: b
10255:  3: c
10256:  4: d
10257:     eX
10258:  0: eX
10259:  1: e
10260:     ** Failers
10261: No match
10262:     abcdY
10263: No match
10264:     ey     
10265: No match
10266:     
10267: /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10268: ------------------------------------------------------------------
10269:         Bra
10270:         CBra 1
10271:         a
10272:         Ket
10273:         CBra 2
10274:         b
10275:         Ket
10276:         CBra 3
10277:         c
10278:         Ket
10279:         CBra 4
10280:         d
10281:         Cond
10282:         Cond nrecurse 1
10283:         $
10284:         Alt
10285:         Recurse
10286:         Ket
10287:         Ket
10288:         Ket
10289:         End
10290: ------------------------------------------------------------------
10291: Capturing subpattern count = 4
10292: Named capturing subpatterns:
10293:   A   1
10294:   A   4
10295: Options: extended dupnames
10296: First char = 'a'
10297: Need char = 'd'
10298:     abcdd
10299:  0: abcdd
10300:  1: a
10301:  2: b
10302:  3: c
10303:  4: dd
10304:     ** Failers
10305: No match
10306:     abcdde  
10307: No match
10308: 
10309: /abcd*/
10310:     xxxxabcd\P
10311:  0: abcd
10312:     xxxxabcd\P\P
10313: Partial match: abcd
10314: 
10315: /abcd*/i
10316:     xxxxabcd\P
10317:  0: abcd
10318:     xxxxabcd\P\P
10319: Partial match: abcd
10320:     XXXXABCD\P
10321:  0: ABCD
10322:     XXXXABCD\P\P
10323: Partial match: ABCD
10324: 
10325: /abc\d*/
10326:     xxxxabc1\P
10327:  0: abc1
10328:     xxxxabc1\P\P
10329: Partial match: abc1
10330: 
10331: /(a)bc\1*/
10332:     xxxxabca\P
10333:  0: abca
10334:  1: a
10335:     xxxxabca\P\P
10336: Partial match: abca
10337: 
10338: /abc[de]*/
10339:     xxxxabcde\P
10340:  0: abcde
10341:     xxxxabcde\P\P
10342: Partial match: abcde
10343: 
10344: /-- This is not in the Perl-compatible test because Perl seems currently to be
10345:     broken and not behaving as specified in that it *does* bumpalong after
10346:     hitting (*COMMIT). --/
10347: 
10348: /(?1)(A(*COMMIT)|B)D/
10349:     ABD
10350:  0: ABD
10351:  1: B
10352:     XABD
10353:  0: ABD
10354:  1: B
10355:     BAD
10356:  0: BAD
10357:  1: A
10358:     ABXABD  
10359:  0: ABD
10360:  1: B
10361:     ** Failers 
10362: No match
10363:     ABX 
10364: No match
10365:     BAXBAD  
10366: No match
10367: 
10368: /(\3)(\1)(a)/<JS>
10369:     cat
10370:  0: a
10371:  1: 
10372:  2: 
10373:  3: a
10374: 
10375: /(\3)(\1)(a)/SI<JS>
10376: Capturing subpattern count = 3
10377: Max back reference = 3
10378: Options:
10379: No first char
10380: Need char = 'a'
10381: Subject length lower bound = 1
10382: No set of starting bytes
10383:     cat
10384:  0: a
10385:  1: 
10386:  2: 
10387:  3: a
10388: 
10389: /(\3)(\1)(a)/SI
10390: Capturing subpattern count = 3
10391: Max back reference = 3
10392: No options
10393: No first char
10394: Need char = 'a'
10395: Subject length lower bound = 3
10396: No set of starting bytes
10397:     cat
10398: No match
10399: 
10400: /i(?(DEFINE)(?<s>a))/SI
10401: Capturing subpattern count = 1
10402: Named capturing subpatterns:
10403:   s   1
10404: No options
10405: First char = 'i'
10406: No need char
10407: Subject length lower bound = 1
10408: No set of starting bytes
10409:     i
10410:  0: i
10411:     
10412: /()i(?(1)a)/SI 
10413: Capturing subpattern count = 1
10414: No options
10415: No first char
10416: Need char = 'i'
10417: Subject length lower bound = 1
10418: Starting byte set: i 
10419:     ia
10420:  0: ia
10421:  1: 
10422: 
10423: /(?i)a(?-i)b|c/BZ
10424: ------------------------------------------------------------------
10425:         Bra
10426:      /i a
10427:         b
10428:         Alt
10429:         c
10430:         Ket
10431:         End
10432: ------------------------------------------------------------------
10433:     XabX
10434:  0: ab
10435:     XAbX
10436:  0: Ab
10437:     CcC 
10438:  0: c
10439:     ** Failers
10440: No match
10441:     XABX   
10442: No match
10443: 
10444: /(?i)a(?s)b|c/BZ
10445: ------------------------------------------------------------------
10446:         Bra
10447:      /i ab
10448:         Alt
10449:      /i c
10450:         Ket
10451:         End
10452: ------------------------------------------------------------------
10453: 
10454: /(?i)a(?s-i)b|c/BZ
10455: ------------------------------------------------------------------
10456:         Bra
10457:      /i a
10458:         b
10459:         Alt
10460:         c
10461:         Ket
10462:         End
10463: ------------------------------------------------------------------
10464: 
10465: /^(ab(c\1)d|x){2}$/BZ
10466: ------------------------------------------------------------------
10467:         Bra
10468:         ^
10469:         Once
10470:         CBra 1
10471:         ab
10472:         CBra 2
10473:         c
10474:         \1
10475:         Ket
10476:         d
10477:         Alt
10478:         x
10479:         Ket
10480:         Ket
10481:         Once
10482:         CBra 1
10483:         ab
10484:         CBra 2
10485:         c
10486:         \1
10487:         Ket
10488:         d
10489:         Alt
10490:         x
10491:         Ket
10492:         Ket
10493:         $
10494:         Ket
10495:         End
10496: ------------------------------------------------------------------
10497:     xabcxd
10498:  0: xabcxd
10499:  1: abcxd
10500:  2: cx
10501:     
10502: /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10503: ------------------------------------------------------------------
10504:         Bra
10505:         ^
10506:         Braposzero
10507:         SBraPos
10508:         Recurse
10509:         KetRpos
10510:         Cond
10511:         Cond def
10512:         CBra 1
10513:         Any
10514:         Ket
10515:         Ket
10516:         $
10517:         Ket
10518:         End
10519: ------------------------------------------------------------------
10520: 
10521: /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10522: ------------------------------------------------------------------
10523:         Bra
10524:         ^
10525:         Brazero
10526:         Once
10527:         Recurse
10528:         KetRmax
10529:         Cond
10530:         Cond def
10531:         CBra 1
10532:         Any
10533:         Ket
10534:         Ket
10535:         $
10536:         Ket
10537:         End
10538: ------------------------------------------------------------------
10539: 
10540: / -- This one is here because Perl gives the match as "b" rather than "ab". I
10541:      believe this to be a Perl bug. --/  
10542:       
10543: /(?>a\Kb)z|(ab)/
10544:     ab 
10545:  0: ab
10546:  1: ab
10547: 
10548: /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10549: Failed: recursive call could loop indefinitely at offset 31
10550: 
10551: /abc(*MARK:)pqr/
10552: Failed: (*MARK) must have an argument at offset 10
10553: 
10554: /abc(*:)pqr/
10555: Failed: (*MARK) must have an argument at offset 6
10556: 
10557: /abc(*FAIL:123)xyz/
10558: Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10559: 
10560: /--- This should, and does, fail. In Perl, it does not, which I think is a 
10561:      bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10562: 
10563: /A(*COMMIT)B/+K
10564:     ACABX
10565: No match
10566: 
10567: /--- These should be different, but in Perl they are not, which I think
10568:      is a bug in Perl. ---/
10569: 
10570: /A(*THEN)B|A(*THEN)C/K
10571:     AC
10572:  0: AC
10573: 
10574: /A(*PRUNE)B|A(*PRUNE)C/K
10575:     AC
10576: No match
10577:     
10578: /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10579: though PCRE does. ---/
10580: 
10581: /^A(*:A)B|^X(*:A)Y/K
10582:     ** Failers
10583: No match
10584:     XAQQ
10585: No match, mark = A
10586:     
10587: /--- COMMIT at the start of a pattern should be the same as an anchor. Perl 
10588: optimizations defeat this. So does the PCRE optimization unless we disable it 
10589: with \Y. ---/
10590: 
10591: /(*COMMIT)ABC/
10592:     ABCDEFG
10593:  0: ABC
10594:     ** Failers
10595: No match
10596:     DEFGABC\Y  
10597: No match
10598:     
10599: /^(ab (c+(*THEN)cd) | xyz)/x
10600:     abcccd  
10601: No match
10602: 
10603: /^(ab (c+(*PRUNE)cd) | xyz)/x
10604:     abcccd  
10605: No match
10606: 
10607: /^(ab (c+(*FAIL)cd) | xyz)/x
10608:     abcccd  
10609: No match
10610:     
10611: /--- Perl gets some of these wrong ---/ 
10612: 
10613: /(?>.(*ACCEPT))*?5/
10614:     abcde
10615:  0: a
10616: 
10617: /(.(*ACCEPT))*?5/
10618:     abcde
10619:  0: a
10620:  1: a
10621: 
10622: /(.(*ACCEPT))5/
10623:     abcde
10624:  0: a
10625:  1: a
10626: 
10627: /(.(*ACCEPT))*5/
10628:     abcde
10629:  0: a
10630:  1: a
10631: 
10632: /A\NB./BZ
10633: ------------------------------------------------------------------
10634:         Bra
10635:         A
10636:         Any
10637:         B
10638:         Any
10639:         Ket
10640:         End
10641: ------------------------------------------------------------------
10642:     ACBD
10643:  0: ACBD
10644:     *** Failers
10645: No match
10646:     A\nB
10647: No match
10648:     ACB\n   
10649: No match
10650: 
10651: /A\NB./sBZ
10652: ------------------------------------------------------------------
10653:         Bra
10654:         A
10655:         Any
10656:         B
10657:         AllAny
10658:         Ket
10659:         End
10660: ------------------------------------------------------------------
10661:     ACBD
10662:  0: ACBD
10663:     ACB\n 
10664:  0: ACB\x0a
10665:     *** Failers
10666: No match
10667:     A\nB  
10668: No match
10669:   
10670: /A\NB/<crlf>
10671:     A\nB
10672:  0: A\x0aB
10673:     A\rB
10674:  0: A\x0dB
10675:     ** Failers
10676: No match
10677:     A\r\nB    
10678: No match
10679: 
10680: /\R+b/BZ
10681: ------------------------------------------------------------------
10682:         Bra
10683:         \R++
10684:         b
10685:         Ket
10686:         End
10687: ------------------------------------------------------------------
10688: 
10689: /\R+\n/BZ
10690: ------------------------------------------------------------------
10691:         Bra
10692:         \R+
10693:         \x0a
10694:         Ket
10695:         End
10696: ------------------------------------------------------------------
10697: 
10698: /\R+\d/BZ
10699: ------------------------------------------------------------------
10700:         Bra
10701:         \R++
10702:         \d
10703:         Ket
10704:         End
10705: ------------------------------------------------------------------
10706: 
10707: /\d*\R/BZ
10708: ------------------------------------------------------------------
10709:         Bra
10710:         \d*+
10711:         \R
10712:         Ket
10713:         End
10714: ------------------------------------------------------------------
10715: 
10716: /\s*\R/BZ
10717: ------------------------------------------------------------------
10718:         Bra
10719:         \s*
10720:         \R
10721:         Ket
10722:         End
10723: ------------------------------------------------------------------
10724:     \x20\x0a
10725:  0:  \x0a
10726:     \x20\x0d
10727:  0:  \x0d
10728:     \x20\x0d\x0a
10729:  0:  \x0d\x0a
10730: 
10731: /\S*\R/BZ
10732: ------------------------------------------------------------------
10733:         Bra
10734:         \S*+
10735:         \R
10736:         Ket
10737:         End
10738: ------------------------------------------------------------------
10739:     a\x0a
10740:  0: a\x0a
10741: 
10742: /X\h*\R/BZ
10743: ------------------------------------------------------------------
10744:         Bra
10745:         X
10746:         \h*+
10747:         \R
10748:         Ket
10749:         End
10750: ------------------------------------------------------------------
10751:     X\x20\x0a
10752:  0: X \x0a
10753: 
10754: /X\H*\R/BZ
10755: ------------------------------------------------------------------
10756:         Bra
10757:         X
10758:         \H*
10759:         \R
10760:         Ket
10761:         End
10762: ------------------------------------------------------------------
10763:     X\x0d\x0a
10764:  0: X\x0d\x0a
10765: 
10766: /X\H+\R/BZ
10767: ------------------------------------------------------------------
10768:         Bra
10769:         X
10770:         \H+
10771:         \R
10772:         Ket
10773:         End
10774: ------------------------------------------------------------------
10775:     X\x0d\x0a
10776:  0: X\x0d\x0a
10777: 
10778: /X\H++\R/BZ
10779: ------------------------------------------------------------------
10780:         Bra
10781:         X
10782:         \H++
10783:         \R
10784:         Ket
10785:         End
10786: ------------------------------------------------------------------
10787:     X\x0d\x0a
10788: No match
10789: 
10790: /(?<=abc)def/
10791:     abc\P\P
10792: Partial match at offset 3: abc
10793: 
10794: /abc$/
10795:     abc
10796:  0: abc
10797:     abc\P
10798:  0: abc
10799:     abc\P\P
10800: Partial match: abc
10801: 
10802: /abc$/m
10803:     abc
10804:  0: abc
10805:     abc\n
10806:  0: abc
10807:     abc\P\P
10808: Partial match: abc
10809:     abc\n\P\P 
10810:  0: abc
10811:     abc\P
10812:  0: abc
10813:     abc\n\P
10814:  0: abc
10815: 
10816: /abc\z/
10817:     abc
10818:  0: abc
10819:     abc\P
10820:  0: abc
10821:     abc\P\P
10822: Partial match: abc
10823: 
10824: /abc\Z/
10825:     abc
10826:  0: abc
10827:     abc\P
10828:  0: abc
10829:     abc\P\P
10830: Partial match: abc
10831: 
10832: /abc\b/
10833:     abc
10834:  0: abc
10835:     abc\P
10836:  0: abc
10837:     abc\P\P
10838: Partial match: abc
10839: 
10840: /abc\B/
10841:     abc
10842: No match
10843:     abc\P
10844: Partial match: abc
10845:     abc\P\P
10846: Partial match: abc
10847: 
10848: /.+/
10849:     abc\>0
10850:  0: abc
10851:     abc\>1
10852:  0: bc
10853:     abc\>2
10854:  0: c
10855:     abc\>3
10856: No match
10857:     abc\>4
10858: Error -24 (bad offset value)
10859:     abc\>-4 
10860: Error -24 (bad offset value)
10861: 
10862: /^\cģ/
10863: Failed: \c must be followed by an ASCII character at offset 3
10864: 
10865: /(?P<abn>(?P=abn)xxx)/BZ
10866: ------------------------------------------------------------------
10867:         Bra
10868:         Once
10869:         CBra 1
10870:         \1
10871:         xxx
10872:         Ket
10873:         Ket
10874:         Ket
10875:         End
10876: ------------------------------------------------------------------
10877: 
10878: /(a\1z)/BZ
10879: ------------------------------------------------------------------
10880:         Bra
10881:         Once
10882:         CBra 1
10883:         a
10884:         \1
10885:         z
10886:         Ket
10887:         Ket
10888:         Ket
10889:         End
10890: ------------------------------------------------------------------
10891: 
10892: /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10893: Failed: syntax error in subpattern name (missing terminator) at offset 29
10894: 
10895: /(?P<abn>(?P=axn)xxx)/BZ
10896: Failed: reference to non-existent subpattern at offset 15
10897: 
10898: /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10899: ------------------------------------------------------------------
10900:         Bra
10901:         CBra 1
10902:         \2
10903:         xxx
10904:         Ket
10905:         CBra 2
10906:         yy
10907:         Ket
10908:         Ket
10909:         End
10910: ------------------------------------------------------------------
10911: 
10912: /-- These tests are here because Perl gets the first one wrong. --/
10913: 
10914: /(\R*)(.)/s
10915:     \r\n
10916:  0: \x0d
10917:  1: 
10918:  2: \x0d
10919:     \r\r\n\n\r 
10920:  0: \x0d\x0d\x0a\x0a\x0d
10921:  1: \x0d\x0d\x0a\x0a
10922:  2: \x0d
10923:     \r\r\n\n\r\n 
10924:  0: \x0d\x0d\x0a\x0a\x0d
10925:  1: \x0d\x0d\x0a\x0a
10926:  2: \x0d
10927: 
10928: /(\R)*(.)/s
10929:     \r\n
10930:  0: \x0d
10931:  1: <unset>
10932:  2: \x0d
10933:     \r\r\n\n\r 
10934:  0: \x0d\x0d\x0a\x0a\x0d
10935:  1: \x0a
10936:  2: \x0d
10937:     \r\r\n\n\r\n 
10938:  0: \x0d\x0d\x0a\x0a\x0d
10939:  1: \x0a
10940:  2: \x0d
10941: 
10942: /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
10943:     \r\n
10944:  0: \x0d
10945:  1: 
10946:  2: \x0d
10947:     \r\r\n\n\r 
10948:  0: \x0d\x0d\x0a\x0a\x0d
10949:  1: \x0d\x0d\x0a\x0a
10950:  2: \x0d
10951:     \r\r\n\n\r\n 
10952:  0: \x0d\x0d\x0a\x0a\x0d
10953:  1: \x0d\x0d\x0a\x0a
10954:  2: \x0d
10955: 
10956: /-- --/
10957: 
10958: /^abc$/BZ
10959: ------------------------------------------------------------------
10960:         Bra
10961:         ^
10962:         abc
10963:         $
10964:         Ket
10965:         End
10966: ------------------------------------------------------------------
10967: 
10968: /^abc$/BZm
10969: ------------------------------------------------------------------
10970:         Bra
10971:      /m ^
10972:         abc
10973:      /m $
10974:         Ket
10975:         End
10976: ------------------------------------------------------------------
10977: 
10978: /^(a)*+(\w)/S
10979:     aaaaX
10980:  0: aaaaX
10981:  1: a
10982:  2: X
10983:     ** Failers 
10984: No match
10985:     aaaa
10986: No match
10987: 
10988: /^(?:a)*+(\w)/S
10989:     aaaaX
10990:  0: aaaaX
10991:  1: X
10992:     ** Failers 
10993: No match
10994:     aaaa
10995: No match
10996: 
10997: /(a)++1234/SDZ
10998: ------------------------------------------------------------------
10999:         Bra
11000:         CBraPos 1
11001:         a
11002:         KetRpos
11003:         1234
11004:         Ket
11005:         End
11006: ------------------------------------------------------------------
11007: Capturing subpattern count = 1
11008: No options
11009: First char = 'a'
11010: Need char = '4'
11011: Subject length lower bound = 5
11012: No set of starting bytes
11013: 
11014: /([abc])++1234/SI
11015: Capturing subpattern count = 1
11016: No options
11017: No first char
11018: Need char = '4'
11019: Subject length lower bound = 5
11020: Starting byte set: a b c 
11021: 
11022: /(?<=(abc)+)X/
11023: Failed: lookbehind assertion is not fixed length at offset 10
11024: 
11025: /(^ab)/I
11026: Capturing subpattern count = 1
11027: Options: anchored
11028: No first char
11029: No need char
11030: 
11031: /(^ab)++/I
11032: Capturing subpattern count = 1
11033: Options: anchored
11034: No first char
11035: No need char
11036: 
11037: /(^ab|^)+/I
11038: Capturing subpattern count = 1
11039: Options: anchored
11040: No first char
11041: No need char
11042: 
11043: /(^ab|^)++/I
11044: Capturing subpattern count = 1
11045: Options: anchored
11046: No first char
11047: No need char
11048: 
11049: /(?:^ab)/I
11050: Capturing subpattern count = 0
11051: Options: anchored
11052: No first char
11053: No need char
11054: 
11055: /(?:^ab)++/I
11056: Capturing subpattern count = 0
11057: Options: anchored
11058: No first char
11059: No need char
11060: 
11061: /(?:^ab|^)+/I
11062: Capturing subpattern count = 0
11063: Options: anchored
11064: No first char
11065: No need char
11066: 
11067: /(?:^ab|^)++/I
11068: Capturing subpattern count = 0
11069: Options: anchored
11070: No first char
11071: No need char
11072: 
11073: /(.*ab)/I
11074: Capturing subpattern count = 1
11075: No options
11076: First char at start or follows newline
11077: Need char = 'b'
11078: 
11079: /(.*ab)++/I
11080: Capturing subpattern count = 1
11081: No options
11082: First char at start or follows newline
11083: Need char = 'b'
11084: 
11085: /(.*ab|.*)+/I
11086: Capturing subpattern count = 1
11087: No options
11088: First char at start or follows newline
11089: No need char
11090: 
11091: /(.*ab|.*)++/I
11092: Capturing subpattern count = 1
11093: No options
11094: First char at start or follows newline
11095: No need char
11096: 
11097: /(?:.*ab)/I
11098: Capturing subpattern count = 0
11099: No options
11100: First char at start or follows newline
11101: Need char = 'b'
11102: 
11103: /(?:.*ab)++/I
11104: Capturing subpattern count = 0
11105: No options
11106: First char at start or follows newline
11107: Need char = 'b'
11108: 
11109: /(?:.*ab|.*)+/I
11110: Capturing subpattern count = 0
11111: No options
11112: First char at start or follows newline
11113: No need char
11114: 
11115: /(?:.*ab|.*)++/I
11116: Capturing subpattern count = 0
11117: No options
11118: First char at start or follows newline
11119: No need char
11120: 
11121: /(?=a)[bcd]/I
11122: Capturing subpattern count = 0
11123: No options
11124: First char = 'a'
11125: No need char
11126: 
11127: /((?=a))[bcd]/I
11128: Capturing subpattern count = 1
11129: No options
11130: First char = 'a'
11131: No need char
11132: 
11133: /((?=a))+[bcd]/I
11134: Capturing subpattern count = 1
11135: No options
11136: First char = 'a'
11137: No need char
11138: 
11139: /((?=a))++[bcd]/I
11140: Capturing subpattern count = 1
11141: No options
11142: First char = 'a'
11143: No need char
11144: 
11145: /(?=a+)[bcd]/iI
11146: Capturing subpattern count = 0
11147: Options: caseless
11148: First char = 'a' (caseless)
11149: No need char
11150: 
11151: /(?=a+?)[bcd]/iI
11152: Capturing subpattern count = 0
11153: Options: caseless
11154: First char = 'a' (caseless)
11155: No need char
11156: 
11157: /(?=a++)[bcd]/iI
11158: Capturing subpattern count = 0
11159: Options: caseless
11160: First char = 'a' (caseless)
11161: No need char
11162: 
11163: /(?=a{3})[bcd]/iI
11164: Capturing subpattern count = 0
11165: Options: caseless
11166: First char = 'a' (caseless)
11167: Need char = 'a' (caseless)
11168: 
11169: /(abc)\1+/S
11170: 
11171: /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11172: 
11173: /(?1)(?:(b(*ACCEPT))){0}/
11174:     b
11175:  0: b
11176: 
11177: /(?1)(?:(b(*ACCEPT))){0}c/
11178:     bc
11179:  0: bc
11180:     ** Failers 
11181: No match
11182:     b 
11183: No match
11184: 
11185: /(?1)(?:((*ACCEPT))){0}c/
11186:     c
11187:  0: c
11188:     c\N 
11189:  0: c
11190: 
11191: /^.*?(?(?=a)a|b(*THEN)c)/
11192:     ba
11193: No match
11194: 
11195: /^.*?(?(?=a)a|bc)/
11196:     ba
11197:  0: ba
11198: 
11199: /^.*?(?(?=a)a(*THEN)b|c)/
11200:     ac
11201: No match
11202: 
11203: /^.*?(?(?=a)a(*THEN)b)c/
11204:     ac
11205: No match
11206: 
11207: /^.*?(a(*THEN)b)c/
11208:     aabc
11209: No match
11210:     
11211: /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11212:     aabc
11213:  0: aabc
11214: 
11215: /^.*?(a(*THEN)b|z)c/
11216:     aabc
11217:  0: aabc
11218:  1: ab
11219: 
11220: /^.*?(z|a(*THEN)b)c/
11221:     aabc
11222:  0: aabc
11223:  1: ab
11224: 
11225: /-- --/
11226: 
11227: /-- These studied versions are here because they are not Perl-compatible; the
11228:     studying means the mark is not seen. --/
11229: 
11230: /(*MARK:A)(*SKIP:B)(C|X)/KS
11231:     C
11232:  0: C
11233:  1: C
11234: MK: A
11235:     D
11236: No match, mark = A
11237:      
11238: /(*:A)A+(*SKIP:A)(B|Z)/KS
11239:     AAAC
11240: No match, mark = A
11241: 
11242: /-- --/
11243: 
11244: "(?=a*(*ACCEPT)b)c"
11245:     c
11246:  0: c
11247:     c\N 
11248:  0: c
11249:     
11250: /(?1)c(?(DEFINE)((*ACCEPT)b))/
11251:     c
11252:  0: c
11253:     c\N  
11254:  0: c
11255:     
11256: /(?>(*ACCEPT)b)c/
11257:     c
11258:  0: 
11259:     c\N  
11260: No match
11261: 
11262: /(?:(?>(a)))+a%/++
11263:     %aa%
11264:  0: aa%
11265:  0+ 
11266:  1: a
11267:  1+ a%
11268: 
11269: /(a)b|ac/++SS
11270:     ac\O3
11271:  0: ac
11272:  0+ 
11273:     
11274: /(a)(b)x|abc/++
11275:      abc\O6
11276:  0: abc
11277:  0+ 
11278: 
11279: /(a)bc|(a)(b)\2/
11280:     \O3abc
11281: Matched, but too many substrings
11282:  0: abc
11283:     \O4abc 
11284: Matched, but too many substrings
11285:  0: abc
11286: 
11287: /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11288: Capturing subpattern count = 2
11289: No options
11290: No first char
11291: No need char
11292: Subject length lower bound = 1
11293: No set of starting bytes
11294: 
11295: /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11296: Capturing subpattern count = 2
11297: No options
11298: No first char
11299: No need char
11300: Subject length lower bound = 3
11301: Starting byte set: a b 
11302: 
11303: /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11304: Capturing subpattern count = 2
11305: No options
11306: No first char
11307: No need char
11308: Subject length lower bound = 4
11309: Starting byte set: a b 
11310: 
11311: /(abc)(?1)/SI
11312: Capturing subpattern count = 1
11313: No options
11314: First char = 'a'
11315: Need char = 'c'
11316: Subject length lower bound = 6
11317: No set of starting bytes
11318: 
11319: /^(?>a)++/
11320:     aa\M
11321: Minimum match() limit = 5
11322: Minimum match() recursion limit = 2
11323:  0: aa
11324:     aaaaaaaaa\M 
11325: Minimum match() limit = 12
11326: Minimum match() recursion limit = 2
11327:  0: aaaaaaaaa
11328:     
11329: /(a)(?1)++/
11330:     aa\M
11331: Minimum match() limit = 7
11332: Minimum match() recursion limit = 4
11333:  0: aa
11334:  1: a
11335:     aaaaaaaaa\M  
11336: Minimum match() limit = 21
11337: Minimum match() recursion limit = 4
11338:  0: aaaaaaaaa
11339:  1: a
11340: 
11341: /(?:(foo)|(bar)|(baz))X/SS=
11342:     bazfooX
11343:  0: fooX
11344:  1: foo
11345:  2: <unset>
11346:  3: <unset>
11347:     foobazbarX
11348:  0: barX
11349:  1: <unset>
11350:  2: bar
11351:  3: <unset>
11352:     barfooX
11353:  0: fooX
11354:  1: foo
11355:  2: <unset>
11356:  3: <unset>
11357:     bazX
11358:  0: bazX
11359:  1: <unset>
11360:  2: <unset>
11361:  3: baz
11362:     foobarbazX    
11363:  0: bazX
11364:  1: <unset>
11365:  2: <unset>
11366:  3: baz
11367:     bazfooX\O0
11368: Matched, but too many substrings
11369:     bazfooX\O2
11370: Matched, but too many substrings
11371:  0: fooX
11372:     bazfooX\O4
11373: Matched, but too many substrings
11374:  0: fooX
11375:  1: <unset>
11376:     bazfooX\O6
11377: Matched, but too many substrings
11378:  0: fooX
11379:  1: foo
11380:  2: <unset>
11381:     bazfooX\O8
11382: Matched, but too many substrings
11383:  0: fooX
11384:  1: foo
11385:  2: <unset>
11386:  3: <unset>
11387:     bazfooX\O10
11388:  0: fooX
11389:  1: foo
11390:  2: <unset>
11391:  3: <unset>
11392: 
11393: /(?=abc){3}abc/BZ
11394: ------------------------------------------------------------------
11395:         Bra
11396:         Assert
11397:         abc
11398:         Ket
11399:         abc
11400:         Ket
11401:         End
11402: ------------------------------------------------------------------
11403: 
11404: /(?=abc)+abc/BZ
11405: ------------------------------------------------------------------
11406:         Bra
11407:         Assert
11408:         abc
11409:         Ket
11410:         abc
11411:         Ket
11412:         End
11413: ------------------------------------------------------------------
11414: 
11415: /(?=abc)++abc/BZ
11416: ------------------------------------------------------------------
11417:         Bra
11418:         Assert
11419:         abc
11420:         Ket
11421:         abc
11422:         Ket
11423:         End
11424: ------------------------------------------------------------------
11425: 
11426: /(?=abc){0}xyz/BZ
11427: ------------------------------------------------------------------
11428:         Bra
11429:         Skip zero
11430:         Assert
11431:         abc
11432:         Ket
11433:         xyz
11434:         Ket
11435:         End
11436: ------------------------------------------------------------------
11437: 
11438: /(?=(a))?./BZ
11439: ------------------------------------------------------------------
11440:         Bra
11441:         Brazero
11442:         Assert
11443:         CBra 1
11444:         a
11445:         Ket
11446:         Ket
11447:         Any
11448:         Ket
11449:         End
11450: ------------------------------------------------------------------
11451: 
11452: /(?=(a))??./BZ
11453: ------------------------------------------------------------------
11454:         Bra
11455:         Braminzero
11456:         Assert
11457:         CBra 1
11458:         a
11459:         Ket
11460:         Ket
11461:         Any
11462:         Ket
11463:         End
11464: ------------------------------------------------------------------
11465: 
11466: /^(?=(a)){0}b(?1)/BZ
11467: ------------------------------------------------------------------
11468:         Bra
11469:         ^
11470:         Skip zero
11471:         Assert
11472:         CBra 1
11473:         a
11474:         Ket
11475:         Ket
11476:         b
11477:         Recurse
11478:         Ket
11479:         End
11480: ------------------------------------------------------------------
11481: 
11482: /(?(DEFINE)(a))?b(?1)/BZ
11483: ------------------------------------------------------------------
11484:         Bra
11485:         Cond
11486:         Cond def
11487:         CBra 1
11488:         a
11489:         Ket
11490:         Ket
11491:         b
11492:         Recurse
11493:         Ket
11494:         End
11495: ------------------------------------------------------------------
11496: 
11497: /^(?=(?1))?[az]([abc])d/BZ
11498: ------------------------------------------------------------------
11499:         Bra
11500:         ^
11501:         Brazero
11502:         Assert
11503:         Recurse
11504:         Ket
11505:         [az]
11506:         CBra 1
11507:         [a-c]
11508:         Ket
11509:         d
11510:         Ket
11511:         End
11512: ------------------------------------------------------------------
11513: 
11514: /^(?!a){0}\w+/BZ
11515: ------------------------------------------------------------------
11516:         Bra
11517:         ^
11518:         Skip zero
11519:         Assert not
11520:         a
11521:         Ket
11522:         \w+
11523:         Ket
11524:         End
11525: ------------------------------------------------------------------
11526: 
11527: /(?<=(abc))?xyz/BZ
11528: ------------------------------------------------------------------
11529:         Bra
11530:         Brazero
11531:         AssertB
11532:         Reverse
11533:         CBra 1
11534:         abc
11535:         Ket
11536:         Ket
11537:         xyz
11538:         Ket
11539:         End
11540: ------------------------------------------------------------------
11541: 
11542: /[:a[:abc]b:]/BZ
11543: ------------------------------------------------------------------
11544:         Bra
11545:         [:[a-c]
11546:         b:]
11547:         Ket
11548:         End
11549: ------------------------------------------------------------------
11550: 
11551: /((?2))((?1))/SS
11552:     abc
11553: Error -26 (nested recursion at the same subject position)
11554: 
11555: /((?(R2)a+|(?1)b))/SS
11556:     aaaabcde
11557: Error -26 (nested recursion at the same subject position)
11558: 
11559: /(?(R)a*(?1)|((?R))b)/SS
11560:     aaaabcde
11561: Error -26 (nested recursion at the same subject position)
11562: 
11563: /(a+|(?R)b)/
11564: Failed: recursive call could loop indefinitely at offset 7
11565: 
11566: /^(a(*:A)(d|e(*:B))z|aeq)/C
11567:     adz
11568: --->adz
11569:  +0 ^       ^
11570:  +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11571:  +2 ^       a
11572:  +3 ^^      (*:A)
11573:  +8 ^^      (d|e(*:B))
11574: Latest Mark: A
11575:  +9 ^^      d
11576: +10 ^ ^     |
11577: +18 ^ ^     z
11578: +19 ^  ^    |
11579: +24 ^  ^    
11580:  0: adz
11581:  1: adz
11582:  2: d
11583:     aez
11584: --->aez
11585:  +0 ^       ^
11586:  +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11587:  +2 ^       a
11588:  +3 ^^      (*:A)
11589:  +8 ^^      (d|e(*:B))
11590: Latest Mark: A
11591:  +9 ^^      d
11592: +11 ^^      e
11593: +12 ^ ^     (*:B)
11594: +17 ^ ^     )
11595: Latest Mark: B
11596: +18 ^ ^     z
11597: +19 ^  ^    |
11598: +24 ^  ^    
11599:  0: aez
11600:  1: aez
11601:  2: e
11602:     aeqwerty
11603: --->aeqwerty
11604:  +0 ^            ^
11605:  +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11606:  +2 ^            a
11607:  +3 ^^           (*:A)
11608:  +8 ^^           (d|e(*:B))
11609: Latest Mark: A
11610:  +9 ^^           d
11611: +11 ^^           e
11612: +12 ^ ^          (*:B)
11613: +17 ^ ^          )
11614: Latest Mark: B
11615: +18 ^ ^          z
11616: +20 ^            a
11617: +21 ^^           e
11618: +22 ^ ^          q
11619: +23 ^  ^         )
11620: +24 ^  ^         
11621:  0: aeq
11622:  1: aeq
11623: 
11624: /.(*F)/
11625:     \P\Pabc
11626: No match
11627: 
11628: /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11629: Capturing subpattern count = 0
11630: Max lookbehind = 1
11631: No options
11632: First char = 't'
11633: Need char = 't'
11634: Subject length lower bound = 18
11635: No set of starting bytes
11636: 
11637: /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11638: Capturing subpattern count = 0
11639: Max lookbehind = 1
11640: No options
11641: No first char
11642: No need char
11643: Subject length lower bound = 8
11644: Starting byte set: < o t u 
11645: 
11646: /a(*SKIP)c|b(*ACCEPT)|/+S!I
11647: Capturing subpattern count = 0
11648: No options
11649: No first char
11650: No need char
11651: Subject length lower bound = -1
11652: No set of starting bytes
11653:     a
11654:  0: 
11655:  0+ 
11656: 
11657: /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11658: Capturing subpattern count = 0
11659: No options
11660: No first char
11661: No need char
11662: Subject length lower bound = -1
11663: Starting byte set: a b x 
11664:     ax
11665:  0: x
11666: 
11667: 'a*(*ACCEPT)b'+
11668:     \N\N
11669: No match
11670:     abc\N\N
11671:  0: a
11672:  0+ bc
11673:     bbb\N\N 
11674:  0: 
11675:  0+ bb
11676: 
11677: /(*ACCEPT)a/+I
11678: Capturing subpattern count = 0
11679: No options
11680: No first char
11681: No need char
11682:     bax
11683:  0: 
11684:  0+ bax
11685: 
11686: /z(*ACCEPT)a/+I
11687: Capturing subpattern count = 0
11688: No options
11689: First char = 'z'
11690: No need char
11691:     baxzbx
11692:  0: z
11693:  0+ bx
11694: 
11695: /a(?:.)*?a/ims                                                                  
11696:     \Mabbbbbbbbbbbbbbbbbbbbba
11697: Minimum match() limit = 65
11698: Minimum match() recursion limit = 2
11699:  0: abbbbbbbbbbbbbbbbbbbbba
11700:     
11701: /a(?:.(*THEN))*?a/ims
11702:     \Mabbbbbbbbbbbbbbbbbbbbba
11703: Minimum match() limit = 86
11704: Minimum match() recursion limit = 45
11705:  0: abbbbbbbbbbbbbbbbbbbbba
11706: 
11707: /a(?:.(*THEN:ABC))*?a/ims
11708:     \Mabbbbbbbbbbbbbbbbbbbbba
11709: Minimum match() limit = 86
11710: Minimum match() recursion limit = 45
11711:  0: abbbbbbbbbbbbbbbbbbbbba
11712: 
11713: /^(?>a+)(?>(z+))\w/BZ
11714: ------------------------------------------------------------------
11715:         Bra
11716:         ^
11717:         Once_NC
11718:         a+
11719:         Ket
11720:         Once
11721:         CBra 1
11722:         z+
11723:         Ket
11724:         Ket
11725:         \w
11726:         Ket
11727:         End
11728: ------------------------------------------------------------------
11729:     aaaazzzzb
11730:  0: aaaazzzzb
11731:  1: zzzz
11732:     ** Failers
11733: No match
11734:     aazz  
11735: No match
11736: 
11737: /(.)(\1|a(?2))/
11738:     bab
11739:  0: bab
11740:  1: b
11741:  2: ab
11742:     
11743: /\1|(.)(?R)\1/
11744:     cbbbc
11745:  0: cbbbc
11746:  1: c
11747:     
11748: /(.)((?(1)c|a)|a(?2))/
11749:     baa  
11750: No match
11751: 
11752: /(?P<abn>(?P=abn)xxx)/BZ
11753: ------------------------------------------------------------------
11754:         Bra
11755:         Once
11756:         CBra 1
11757:         \1
11758:         xxx
11759:         Ket
11760:         Ket
11761:         Ket
11762:         End
11763: ------------------------------------------------------------------
11764: 
11765: /(a\1z)/BZ
11766: ------------------------------------------------------------------
11767:         Bra
11768:         Once
11769:         CBra 1
11770:         a
11771:         \1
11772:         z
11773:         Ket
11774:         Ket
11775:         Ket
11776:         End
11777: ------------------------------------------------------------------
11778: 
11779: /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11780:      \Maabbccddee
11781: Minimum match() limit = 12
11782: Minimum match() recursion limit = 3
11783:  0: aabbccddee
11784: 
11785: /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11786:      \Maabbccddee
11787: Minimum match() limit = 22
11788: Minimum match() recursion limit = 21
11789:  0: aabbccddee
11790:  1: aa
11791:  2: bb
11792:  3: cc
11793:  4: dd
11794:  5: ee
11795: 
11796: /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11797:      \Maabbccddee
11798: Minimum match() limit = 18
11799: Minimum match() recursion limit = 13
11800:  0: aabbccddee
11801:  1: aa
11802:  2: cc
11803:  3: ee
11804: 
11805: /^a\x41z/<JS>
11806:     aAz
11807:  0: aAz
11808:     *** Failers
11809: No match
11810:     ax41z
11811: No match
11812: 
11813: /^a[m\x41]z/<JS>
11814:     aAz
11815:  0: aAz
11816: 
11817: /^a\x1z/<JS>
11818:     ax1z
11819:  0: ax1z
11820: 
11821: /^a\u0041z/<JS>
11822:     aAz
11823:  0: aAz
11824:     *** Failers
11825: No match
11826:     au0041z
11827: No match
11828: 
11829: /^a[m\u0041]z/<JS>
11830:     aAz
11831:  0: aAz
11832: 
11833: /^a\u041z/<JS>
11834:     au041z
11835:  0: au041z
11836:     *** Failers
11837: No match
11838:     aAz
11839: No match
11840: 
11841: /^a\U0041z/<JS>
11842:     aU0041z
11843:  0: aU0041z
11844:     *** Failers
11845: No match
11846:     aAz
11847: No match
11848: 
11849: /(?(?=c)c|d)++Y/BZ
11850: ------------------------------------------------------------------
11851:         Bra
11852:         BraPos
11853:         Cond
11854:         Assert
11855:         c
11856:         Ket
11857:         c
11858:         Alt
11859:         d
11860:         Ket
11861:         KetRpos
11862:         Y
11863:         Ket
11864:         End
11865: ------------------------------------------------------------------
11866: 
11867: /(?(?=c)c|d)*+Y/BZ
11868: ------------------------------------------------------------------
11869:         Bra
11870:         Braposzero
11871:         BraPos
11872:         Cond
11873:         Assert
11874:         c
11875:         Ket
11876:         c
11877:         Alt
11878:         d
11879:         Ket
11880:         KetRpos
11881:         Y
11882:         Ket
11883:         End
11884: ------------------------------------------------------------------
11885: 
11886: /a[\NB]c/
11887: Failed: \N is not supported in a class at offset 3
11888: 
11889: /a[B-\Nc]/ 
11890: Failed: \N is not supported in a class at offset 5
11891: 
11892: /(a)(?2){0,1999}?(b)/
11893: 
11894: /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11895: 
11896: /--- This test, with something more complicated than individual letters, causes
11897: different behaviour in Perl. Perhaps it disables some optimization; no tag is
11898: passed back for the failures, whereas in PCRE there is a tag. ---/
11899:     
11900: /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11901:     AABC
11902:  0: AB
11903:  1: A
11904:  2: B
11905: MK: A
11906:     XXYZ 
11907:  0: XXY
11908:  1: <unset>
11909:  2: <unset>
11910:  3: X
11911:  4: X
11912:  5: Y
11913: MK: B
11914:     ** Failers
11915: No match
11916:     XAQQ  
11917: No match, mark = A
11918:     XAQQXZZ  
11919: No match, mark = A
11920:     AXQQQ 
11921: No match, mark = A
11922:     AXXQQQ 
11923: No match, mark = B
11924: 
11925: /-- Perl doesn't give marks for these, though it does if the alternatives are
11926: replaced by single letters. --/
11927:     
11928: /(b|q)(*:m)f|a(*:n)w/K
11929:     aw 
11930:  0: aw
11931: MK: n
11932:     ** Failers 
11933: No match, mark = n
11934:     abc
11935: No match, mark = m
11936: 
11937: /(q|b)(*:m)f|a(*:n)w/K
11938:     aw 
11939:  0: aw
11940: MK: n
11941:     ** Failers 
11942: No match, mark = n
11943:     abc
11944: No match, mark = m
11945: 
11946: /-- After a partial match, the behaviour is as for a failure. --/
11947: 
11948: /^a(*:X)bcde/K
11949:    abc\P
11950: Partial match, mark=X: abc
11951:    
11952: /-- These are here because Perl doesn't return a mark, except for the first --/
11953: 
11954: /(?=(*:x))(q|)/K+
11955:     abc
11956:  0: 
11957:  0+ abc
11958:  1: 
11959: MK: x
11960: 
11961: /(?=(*:x))((*:y)q|)/K+
11962:     abc
11963:  0: 
11964:  0+ abc
11965:  1: 
11966: MK: x
11967: 
11968: /(?=(*:x))(?:(*:y)q|)/K+
11969:     abc
11970:  0: 
11971:  0+ abc
11972: MK: x
11973: 
11974: /(?=(*:x))(?>(*:y)q|)/K+
11975:     abc
11976:  0: 
11977:  0+ abc
11978: MK: x
11979: 
11980: /(?=a(*:x))(?!a(*:y)c)/K+
11981:     ab
11982:  0: 
11983:  0+ ab
11984: MK: x
11985: 
11986: /(?=a(*:x))(?=a(*:y)c|)/K+
11987:     ab
11988:  0: 
11989:  0+ ab
11990: MK: x
11991: 
11992: /(..)\1/
11993:     ab\P
11994: Partial match: ab
11995:     aba\P
11996: Partial match: aba
11997:     abab\P
11998:  0: abab
11999:  1: ab
12000: 
12001: /(..)\1/i
12002:     ab\P
12003: Partial match: ab
12004:     abA\P
12005: Partial match: abA
12006:     aBAb\P
12007:  0: aBAb
12008:  1: aB
12009: 
12010: /(..)\1{2,}/
12011:     ab\P
12012: Partial match: ab
12013:     aba\P
12014: Partial match: aba
12015:     abab\P
12016: Partial match: abab
12017:     ababa\P
12018: Partial match: ababa
12019:     ababab\P
12020:  0: ababab
12021:  1: ab
12022:     ababab\P\P
12023: Partial match: ababab
12024:     abababa\P
12025:  0: ababab
12026:  1: ab
12027:     abababa\P\P
12028: Partial match: abababa
12029: 
12030: /(..)\1{2,}/i
12031:     ab\P
12032: Partial match: ab
12033:     aBa\P
12034: Partial match: aBa
12035:     aBAb\P
12036: Partial match: aBAb
12037:     AbaBA\P
12038: Partial match: AbaBA
12039:     abABAb\P
12040:  0: abABAb
12041:  1: ab
12042:     aBAbaB\P\P
12043: Partial match: aBAbaB
12044:     abABabA\P
12045:  0: abABab
12046:  1: ab
12047:     abaBABa\P\P
12048: Partial match: abaBABa
12049: 
12050: /(..)\1{2,}?x/i
12051:     ab\P
12052: Partial match: ab
12053:     abA\P
12054: Partial match: abA
12055:     aBAb\P
12056: Partial match: aBAb
12057:     abaBA\P
12058: Partial match: abaBA
12059:     abAbaB\P
12060: Partial match: abAbaB
12061:     abaBabA\P
12062: Partial match: abaBabA
12063:     abAbABaBx\P
12064:  0: abAbABaBx
12065:  1: ab
12066: 
12067: /^(..)\1/
12068:     aba\P
12069: Partial match: aba
12070: 
12071: /^(..)\1{2,3}x/
12072:     aba\P
12073: Partial match: aba
12074:     ababa\P
12075: Partial match: ababa
12076:     ababa\P\P
12077: Partial match: ababa
12078:     abababx
12079:  0: abababx
12080:  1: ab
12081:     ababababx  
12082:  0: ababababx
12083:  1: ab
12084: 
12085: /^(..)\1{2,3}?x/
12086:     aba\P
12087: Partial match: aba
12088:     ababa\P
12089: Partial match: ababa
12090:     ababa\P\P
12091: Partial match: ababa
12092:     abababx
12093:  0: abababx
12094:  1: ab
12095:     ababababx  
12096:  0: ababababx
12097:  1: ab
12098:     
12099: /^(..)(\1{2,3})ab/
12100:     abababab
12101:  0: abababab
12102:  1: ab
12103:  2: abab
12104: 
12105: /^\R/
12106:     \r\P
12107:  0: \x0d
12108:     \r\P\P
12109: Partial match: \x0d
12110:     
12111: /^\R{2,3}x/
12112:     \r\P
12113: Partial match: \x0d
12114:     \r\P\P
12115: Partial match: \x0d
12116:     \r\r\P 
12117: Partial match: \x0d\x0d
12118:     \r\r\P\P
12119: Partial match: \x0d\x0d
12120:     \r\r\r\P  
12121: Partial match: \x0d\x0d\x0d
12122:     \r\r\r\P\P
12123: Partial match: \x0d\x0d\x0d
12124:     \r\rx
12125:  0: \x0d\x0dx
12126:     \r\r\rx    
12127:  0: \x0d\x0d\x0dx
12128: 
12129: /^\R{2,3}?x/
12130:     \r\P
12131: Partial match: \x0d
12132:     \r\P\P
12133: Partial match: \x0d
12134:     \r\r\P 
12135: Partial match: \x0d\x0d
12136:     \r\r\P\P
12137: Partial match: \x0d\x0d
12138:     \r\r\r\P  
12139: Partial match: \x0d\x0d\x0d
12140:     \r\r\r\P\P
12141: Partial match: \x0d\x0d\x0d
12142:     \r\rx
12143:  0: \x0d\x0dx
12144:     \r\r\rx    
12145:  0: \x0d\x0d\x0dx
12146:     
12147: /^\R?x/
12148:     \r\P
12149: Partial match: \x0d
12150:     \r\P\P 
12151: Partial match: \x0d
12152:     x
12153:  0: x
12154:     \rx  
12155:  0: \x0dx
12156: 
12157: /^\R+x/
12158:     \r\P
12159: Partial match: \x0d
12160:     \r\P\P 
12161: Partial match: \x0d
12162:     \r\n\P
12163: Partial match: \x0d\x0a
12164:     \r\n\P\P  
12165: Partial match: \x0d\x0a
12166:     \rx  
12167:  0: \x0dx
12168: 
12169: /^a$/<CRLF>
12170:     a\r\P
12171: Partial match: a\x0d
12172:     a\r\P\P 
12173: Partial match: a\x0d
12174: 
12175: /^a$/m<CRLF>
12176:     a\r\P
12177: Partial match: a\x0d
12178:     a\r\P\P 
12179: Partial match: a\x0d
12180: 
12181: /^(a$|a\r)/<CRLF>
12182:     a\r\P
12183:  0: a\x0d
12184:  1: a\x0d
12185:     a\r\P\P 
12186: Partial match: a\x0d
12187: 
12188: /^(a$|a\r)/m<CRLF>
12189:     a\r\P
12190:  0: a\x0d
12191:  1: a\x0d
12192:     a\r\P\P 
12193: Partial match: a\x0d
12194: 
12195: /./<CRLF>
12196:     \r\P
12197:  0: \x0d
12198:     \r\P\P 
12199: Partial match: \x0d
12200:   
12201: /.{2,3}/<CRLF>
12202:     \r\P 
12203: Partial match: \x0d
12204:     \r\P\P
12205: Partial match: \x0d
12206:     \r\r\P
12207:  0: \x0d\x0d
12208:     \r\r\P\P
12209: Partial match: \x0d\x0d
12210:     \r\r\r\P
12211:  0: \x0d\x0d\x0d
12212:     \r\r\r\P\P     
12213: Partial match: \x0d\x0d\x0d
12214: 
12215: /.{2,3}?/<CRLF>
12216:     \r\P 
12217: Partial match: \x0d
12218:     \r\P\P
12219: Partial match: \x0d
12220:     \r\r\P
12221:  0: \x0d\x0d
12222:     \r\r\P\P
12223: Partial match: \x0d\x0d
12224:     \r\r\r\P
12225:  0: \x0d\x0d
12226:     \r\r\r\P\P     
12227:  0: \x0d\x0d
12228: 
12229: "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12230:     ABCDGHI\O03
12231: Matched, but too many substrings
12232:  0: ABCD
12233:     
12234: /-- These are all run as real matches in test 1; here we are just checking the
12235: settings of the anchored and startline bits. --/ 
12236: 
12237: /(?>.*?a)(?<=ba)/I
12238: Capturing subpattern count = 0
12239: Max lookbehind = 2
12240: No options
12241: No first char
12242: Need char = 'a'
12243: 
12244: /(?:.*?a)(?<=ba)/I
12245: Capturing subpattern count = 0
12246: Max lookbehind = 2
12247: No options
12248: First char at start or follows newline
12249: Need char = 'a'
12250: 
12251: /.*?a(*PRUNE)b/I
12252: Capturing subpattern count = 0
12253: No options
12254: No first char
12255: Need char = 'b'
12256: 
12257: /.*?a(*PRUNE)b/sI
12258: Capturing subpattern count = 0
12259: Options: dotall
12260: No first char
12261: Need char = 'b'
12262: 
12263: /^a(*PRUNE)b/sI
12264: Capturing subpattern count = 0
12265: Options: anchored dotall
12266: No first char
12267: No need char
12268: 
12269: /.*?a(*SKIP)b/I
12270: Capturing subpattern count = 0
12271: No options
12272: No first char
12273: Need char = 'b'
12274: 
12275: /(?>.*?a)b/sI
12276: Capturing subpattern count = 0
12277: Options: dotall
12278: No first char
12279: Need char = 'b'
12280: 
12281: /(?>.*?a)b/I
12282: Capturing subpattern count = 0
12283: No options
12284: No first char
12285: Need char = 'b'
12286: 
12287: /(?>^a)b/sI
12288: Capturing subpattern count = 0
12289: Options: anchored dotall
12290: No first char
12291: No need char
12292: 
12293: /(?>.*?)(?<=(abcd)|(wxyz))/I
12294: Capturing subpattern count = 2
12295: Max lookbehind = 4
12296: No options
12297: No first char
12298: No need char
12299: 
12300: /(?>.*)(?<=(abcd)|(wxyz))/I
12301: Capturing subpattern count = 2
12302: Max lookbehind = 4
12303: No options
12304: No first char
12305: No need char
12306: 
12307: "(?>.*)foo"I
12308: Capturing subpattern count = 0
12309: No options
12310: No first char
12311: Need char = 'o'
12312: 
12313: "(?>.*?)foo"I
12314: Capturing subpattern count = 0
12315: No options
12316: No first char
12317: Need char = 'o'
12318: 
12319: /(?>^abc)/mI
12320: Capturing subpattern count = 0
12321: Options: multiline
12322: First char at start or follows newline
12323: Need char = 'c'
12324: 
12325: /(?>.*abc)/mI
12326: Capturing subpattern count = 0
12327: Options: multiline
12328: No first char
12329: Need char = 'c'
12330: 
12331: /(?:.*abc)/mI
12332: Capturing subpattern count = 0
12333: Options: multiline
12334: First char at start or follows newline
12335: Need char = 'c'
12336: 
12337: /-- Check PCRE_STUDY_EXTRA_NEEDED --/
12338: 
12339: /.?/S-I
12340: Capturing subpattern count = 0
12341: No options
12342: No first char
12343: No need char
12344: Study returned NULL
12345: 
12346: /.?/S!I
12347: Capturing subpattern count = 0
12348: No options
12349: No first char
12350: No need char
12351: Subject length lower bound = -1
12352: No set of starting bytes
12353: 
12354: /(?:(a)+(?C1)bb|aa(?C2)b)/
12355:     aab\C+
12356: Callout 1: last capture = 1
12357:  0: <unset>
12358:  1: a
12359: --->aab
12360:     ^ ^     b
12361: Callout 1: last capture = 1
12362:  0: <unset>
12363:  1: a
12364: --->aab
12365:     ^^      b
12366: Callout 2: last capture = -1
12367:  0: <unset>
12368: --->aab
12369:     ^ ^     b
12370:  0: aab
12371:    
12372: /(?:(a)++(?C1)bb|aa(?C2)b)/
12373:     aab\C+ 
12374: Callout 1: last capture = 1
12375:  0: <unset>
12376:  1: a
12377: --->aab
12378:     ^ ^     b
12379: Callout 2: last capture = -1
12380:  0: <unset>
12381: --->aab
12382:     ^ ^     b
12383:  0: aab
12384:     
12385: /(?:(?>(a))(?C1)bb|aa(?C2)b)/
12386:     aab\C+ 
12387: Callout 1: last capture = 1
12388:  0: <unset>
12389:  1: a
12390: --->aab
12391:     ^^      b
12392: Callout 2: last capture = -1
12393:  0: <unset>
12394: --->aab
12395:     ^ ^     b
12396:  0: aab
12397: 
12398: /(?:(?1)(?C1)x|ab(?C2))((a)){0}/                                                
12399:     aab\C+ 
12400: Callout 1: last capture = -1
12401:  0: <unset>
12402: --->aab
12403:     ^^      x
12404: Callout 1: last capture = -1
12405:  0: <unset>
12406: --->aab
12407:      ^^     x
12408: Callout 2: last capture = -1
12409:  0: <unset>
12410: --->aab
12411:      ^ ^    )
12412:  0: ab
12413: 
12414: /(?1)(?C1)((a)(?C2)){0}/   
12415:     aab\C+ 
12416: Callout 2: last capture = 2
12417:  0: <unset>
12418:  1: <unset>
12419:  2: a
12420: --->aab
12421:     ^^      )
12422: Callout 1: last capture = -1
12423:  0: <unset>
12424: --->aab
12425:     ^^      ((a)(?C2)){0}
12426:  0: a
12427: 
12428: /(?:(a)+(?C1)bb|aa(?C2)b)++/
12429:     aab\C+
12430: Callout 1: last capture = 1
12431:  0: <unset>
12432:  1: a
12433: --->aab
12434:     ^ ^     b
12435: Callout 1: last capture = 1
12436:  0: <unset>
12437:  1: a
12438: --->aab
12439:     ^^      b
12440: Callout 2: last capture = -1
12441:  0: <unset>
12442: --->aab
12443:     ^ ^     b
12444:  0: aab
12445:     aab\C+\O2
12446: Callout 1: last capture = 1
12447:  0: <unset>
12448: --->aab
12449:     ^ ^     b
12450: Callout 1: last capture = 1
12451:  0: <unset>
12452: --->aab
12453:     ^^      b
12454: Callout 2: last capture = -1
12455:  0: <unset>
12456: --->aab
12457:     ^ ^     b
12458:  0: aab
12459: 
12460: /(ab)x|ab/
12461:     ab\O3
12462:  0: ab
12463:     ab\O2 
12464:  0: ab
12465:   
12466: /(ab)/
12467:     ab\O3
12468: Matched, but too many substrings
12469:  0: ab
12470:     ab\O2 
12471: Matched, but too many substrings
12472:  0: ab
12473:     
12474: /(?<=123)(*MARK:xx)abc/K
12475:     xxxx123a\P\P
12476: Partial match at offset 7, mark=xx: 123a
12477:     xxxx123a\P
12478: Partial match at offset 7, mark=xx: 123a
12479:     
12480: /123\Kabc/
12481:     xxxx123a\P\P
12482: Partial match: 123a
12483:     xxxx123a\P
12484: Partial match: 123a
12485: 
12486: /^(?(?=a)aa|bb)/C
12487:     bb
12488: --->bb
12489:  +0 ^      ^
12490:  +1 ^      (?(?=a)aa|bb)
12491:  +3 ^      (?=a)
12492:  +6 ^      a
12493: +11 ^      b
12494: +12 ^^     b
12495: +13 ^ ^    )
12496: +14 ^ ^    
12497:  0: bb
12498: 
12499: /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
12500:     bb
12501: --->bb
12502:   1 ^      ^
12503:   2 ^      (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))
12504:  99 ^      (?=(?C3)a(?C4))
12505:   3 ^      a
12506:   8 ^      b
12507:   9 ^^     b
12508:  10 ^ ^    )
12509:  11 ^ ^    
12510:  0: bb
12511: 
12512: /-- Perl seems to have a bug with this one --/
12513: 
12514: /aaaaa(*COMMIT)(*PRUNE)b|a+c/
12515:     aaaaaac
12516:  0: aaaac
12517:     
12518: /-- Here are some that Perl treats differently because of the way it handles
12519: backtracking verbs. --/
12520: 
12521:  /(?!a(*COMMIT)b)ac|ad/
12522:      ac
12523:  0: ac
12524:      ad 
12525:  0: ad
12526: 
12527: /^(?!a(*THEN)b|ac)../
12528:      ac
12529: No match
12530:      ad 
12531:  0: ad
12532: 
12533: /^(?=a(*THEN)b|ac)/
12534:     ac
12535:  0: 
12536:     
12537: /\A.*?(?:a|b(*THEN)c)/
12538:     ba
12539:  0: ba
12540: 
12541: /\A.*?(?:a|b(*THEN)c)++/
12542:     ba
12543:  0: ba
12544: 
12545: /\A.*?(?:a|b(*THEN)c|d)/
12546:     ba
12547:  0: ba
12548: 
12549: /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
12550:     aac 
12551:  0: aac
12552: 
12553: /\A.*?(a|b(*THEN)c)/
12554:     ba
12555:  0: ba
12556:  1: a
12557: 
12558: /^(A(*THEN)B|A(*THEN)D)/
12559:     AD           
12560:  0: AD
12561:  1: AD
12562:     
12563: /(?!b(*THEN)a)bn|bnn/
12564:     bnn
12565:  0: bn
12566: 
12567: /(?(?=b(*SKIP)a)bn|bnn)/
12568:     bnn
12569: No match
12570: 
12571: /(?=b(*THEN)a|)bn|bnn/
12572:     bnn
12573:  0: bn
12574: 
12575: /-------------------------/ 
12576: 
12577: /(*LIMIT_MATCH=12bc)abc/
12578: Failed: (*VERB) not recognized or malformed at offset 7
12579: 
12580: /(*LIMIT_MATCH=4294967290)abc/
12581: Failed: (*VERB) not recognized or malformed at offset 7
12582: 
12583: /(*LIMIT_RECURSION=4294967280)abc/I
12584: Capturing subpattern count = 0
12585: Recursion limit = 4294967280
12586: No options
12587: First char = 'a'
12588: Need char = 'c'
12589: 
12590: /(a+)*zz/
12591:     aaaaaaaaaaaaaz
12592: No match
12593:     aaaaaaaaaaaaaz\q3000
12594: Error -8 (match limit exceeded)
12595: 
12596: /(a+)*zz/S-
12597:     aaaaaaaaaaaaaz\Q10 
12598: Error -21 (recursion limit exceeded)
12599: 
12600: /(*LIMIT_MATCH=3000)(a+)*zz/I
12601: Capturing subpattern count = 1
12602: Match limit = 3000
12603: No options
12604: No first char
12605: Need char = 'z'
12606:     aaaaaaaaaaaaaz
12607: Error -8 (match limit exceeded)
12608:     aaaaaaaaaaaaaz\q60000
12609: Error -8 (match limit exceeded)
12610: 
12611: /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
12612: Capturing subpattern count = 1
12613: Match limit = 3000
12614: No options
12615: No first char
12616: Need char = 'z'
12617:     aaaaaaaaaaaaaz
12618: Error -8 (match limit exceeded)
12619: 
12620: /(*LIMIT_MATCH=60000)(a+)*zz/I
12621: Capturing subpattern count = 1
12622: Match limit = 60000
12623: No options
12624: No first char
12625: Need char = 'z'
12626:     aaaaaaaaaaaaaz
12627: No match
12628:     aaaaaaaaaaaaaz\q3000
12629: Error -8 (match limit exceeded)
12630: 
12631: /(*LIMIT_RECURSION=10)(a+)*zz/IS-
12632: Capturing subpattern count = 1
12633: Recursion limit = 10
12634: No options
12635: No first char
12636: Need char = 'z'
12637: Subject length lower bound = 2
12638: Starting byte set: a z 
12639:     aaaaaaaaaaaaaz
12640: Error -21 (recursion limit exceeded)
12641:     aaaaaaaaaaaaaz\Q1000
12642: Error -21 (recursion limit exceeded)
12643: 
12644: /(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12645: Capturing subpattern count = 1
12646: Recursion limit = 10
12647: No options
12648: No first char
12649: Need char = 'z'
12650: Subject length lower bound = 2
12651: Starting byte set: a z 
12652:     aaaaaaaaaaaaaz
12653: Error -21 (recursion limit exceeded)
12654: 
12655: /(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12656: Capturing subpattern count = 1
12657: Recursion limit = 1000
12658: No options
12659: No first char
12660: Need char = 'z'
12661: Subject length lower bound = 2
12662: Starting byte set: a z 
12663:     aaaaaaaaaaaaaz
12664: No match
12665:     aaaaaaaaaaaaaz\Q10
12666: Error -21 (recursion limit exceeded)
12667: 
12668: /-- End of testinput2 --/

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