File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / pcre / testdata / testoutput2
Revision 1.1.1.3 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Oct 9 09:19:18 2012 UTC (11 years, 9 months ago) by misho
Branches: pcre, MAIN
CVS tags: v8_31, HEAD
pcre

    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: No options
  452: First char = 'f'
  453: Need char = 'o'
  454: Max lookbehind = 6
  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: Options: anchored multiline
  635: No first char
  636: No need char
  637: 
  638: /^abc/Im
  639: Capturing subpattern count = 0
  640: Options: multiline
  641: First char at start or follows newline
  642: Need char = 'c'
  643: 
  644: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
  645: Capturing subpattern count = 5
  646: Options: anchored
  647: No first char
  648: No need char
  649:   aaaaabbbbbcccccdef
  650:  0: aaaaabbbbbcccccdef
  651:  1: aaaaabbbbbcccccdef
  652:  2: aaaaa
  653:  3: b
  654:  4: bbbbccccc
  655:  5: def
  656: 
  657: /(?<=foo)[ab]/IS
  658: Capturing subpattern count = 0
  659: No options
  660: No first char
  661: No need char
  662: Max lookbehind = 3
  663: Subject length lower bound = 1
  664: Starting byte set: a b 
  665: 
  666: /(?<!foo)(alpha|omega)/IS
  667: Capturing subpattern count = 1
  668: No options
  669: No first char
  670: Need char = 'a'
  671: Max lookbehind = 3
  672: Subject length lower bound = 5
  673: Starting byte set: a o 
  674: 
  675: /(?!alphabet)[ab]/IS
  676: Capturing subpattern count = 0
  677: No options
  678: No first char
  679: No need char
  680: Subject length lower bound = 1
  681: Starting byte set: a b 
  682: 
  683: /(?<=foo\n)^bar/Im
  684: Capturing subpattern count = 0
  685: Contains explicit CR or LF match
  686: Options: multiline
  687: No first char
  688: Need char = 'r'
  689: Max lookbehind = 4
  690:     foo\nbarbar
  691:  0: bar
  692:     ***Failers
  693: No match
  694:     rhubarb
  695: No match
  696:     barbell
  697: No match
  698:     abc\nbarton
  699: No match
  700: 
  701: /^(?<=foo\n)bar/Im
  702: Capturing subpattern count = 0
  703: Contains explicit CR or LF match
  704: Options: multiline
  705: First char at start or follows newline
  706: Need char = 'r'
  707: Max lookbehind = 4
  708:     foo\nbarbar
  709:  0: bar
  710:     ***Failers
  711: No match
  712:     rhubarb
  713: No match
  714:     barbell
  715: No match
  716:     abc\nbarton
  717: No match
  718: 
  719: /(?>^abc)/Im
  720: Capturing subpattern count = 0
  721: Options: multiline
  722: First char at start or follows newline
  723: Need char = 'c'
  724:     abc
  725:  0: abc
  726:     def\nabc
  727:  0: abc
  728:     *** Failers
  729: No match
  730:     defabc
  731: No match
  732: 
  733: /(?<=ab(c+)d)ef/
  734: Failed: lookbehind assertion is not fixed length at offset 11
  735: 
  736: /(?<=ab(?<=c+)d)ef/
  737: Failed: lookbehind assertion is not fixed length at offset 12
  738: 
  739: /(?<=ab(c|de)f)g/
  740: Failed: lookbehind assertion is not fixed length at offset 13
  741: 
  742: /The next three are in testinput2 because they have variable length branches/
  743: 
  744: /(?<=bullock|donkey)-cart/I
  745: Capturing subpattern count = 0
  746: No options
  747: First char = '-'
  748: Need char = 't'
  749: Max lookbehind = 7
  750:     the bullock-cart
  751:  0: -cart
  752:     a donkey-cart race
  753:  0: -cart
  754:     *** Failers
  755: No match
  756:     cart
  757: No match
  758:     horse-and-cart
  759: No match
  760: 
  761: /(?<=ab(?i)x|y|z)/I
  762: Capturing subpattern count = 0
  763: No options
  764: No first char
  765: No need char
  766: Max lookbehind = 3
  767: 
  768: /(?>.*)(?<=(abcd)|(xyz))/I
  769: Capturing subpattern count = 2
  770: No options
  771: First char at start or follows newline
  772: No need char
  773: Max lookbehind = 4
  774:     alphabetabcd
  775:  0: alphabetabcd
  776:  1: abcd
  777:     endingxyz
  778:  0: endingxyz
  779:  1: <unset>
  780:  2: xyz
  781: 
  782: /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
  783: Capturing subpattern count = 0
  784: No options
  785: First char = 'Z'
  786: Need char = 'Z'
  787: Max lookbehind = 4
  788:     abxyZZ
  789:  0: ZZ
  790:     abXyZZ
  791:  0: ZZ
  792:     ZZZ
  793:  0: ZZ
  794:     zZZ
  795:  0: ZZ
  796:     bZZ
  797:  0: ZZ
  798:     BZZ
  799:  0: ZZ
  800:     *** Failers
  801: No match
  802:     ZZ
  803: No match
  804:     abXYZZ
  805: No match
  806:     zzz
  807: No match
  808:     bzz
  809: No match
  810: 
  811: /(?<!(foo)a)bar/I
  812: Capturing subpattern count = 1
  813: No options
  814: First char = 'b'
  815: Need char = 'r'
  816: Max lookbehind = 4
  817:     bar
  818:  0: bar
  819:     foobbar
  820:  0: bar
  821:     *** Failers
  822: No match
  823:     fooabar
  824: No match
  825: 
  826: /This one is here because Perl 5.005_02 doesn't fail it/I
  827: Capturing subpattern count = 0
  828: No options
  829: First char = 'T'
  830: Need char = 't'
  831: 
  832: /^(a)?(?(1)a|b)+$/I
  833: Capturing subpattern count = 1
  834: Options: anchored
  835: No first char
  836: No need char
  837:     *** Failers
  838: No match
  839:     a
  840: No match
  841: 
  842: /This one is here because Perl behaves differently; see also the following/I
  843: Capturing subpattern count = 0
  844: No options
  845: First char = 'T'
  846: Need char = 'g'
  847: 
  848: /^(a\1?){4}$/I
  849: Capturing subpattern count = 1
  850: Max back reference = 1
  851: Options: anchored
  852: No first char
  853: No need char
  854:     aaaa
  855: No match
  856:     aaaaaa
  857: No match
  858:     
  859: /Perl does not fail these two for the final subjects. Neither did PCRE until/
  860: /release 8.01. The problem is in backtracking into a subpattern that contains/
  861: No match
  862: /a recursive reference to itself. PCRE has now made these into atomic patterns./
  863: No match
  864: 
  865: /^(xa|=?\1a){2}$/
  866:     xa=xaa
  867:  0: xa=xaa
  868:  1: =xaa
  869:     ** Failers
  870: No match
  871:     xa=xaaa
  872: No match
  873: 
  874: /^(xa|=?\1a)+$/
  875:     xa=xaa
  876:  0: xa=xaa
  877:  1: =xaa
  878:     ** Failers
  879: No match
  880:     xa=xaaa
  881: No match
  882: 
  883: /These are syntax tests from Perl 5.005/I
  884: Capturing subpattern count = 0
  885: No options
  886: First char = 'T'
  887: Need char = '5'
  888: 
  889: /a[b-a]/
  890: Failed: range out of order in character class at offset 4
  891: 
  892: /a[]b/
  893: Failed: missing terminating ] for character class at offset 4
  894: 
  895: /a[/
  896: Failed: missing terminating ] for character class at offset 2
  897: 
  898: /*a/
  899: Failed: nothing to repeat at offset 0
  900: 
  901: /(*)b/
  902: Failed: nothing to repeat at offset 1
  903: 
  904: /abc)/
  905: Failed: unmatched parentheses at offset 3
  906: 
  907: /(abc/
  908: Failed: missing ) at offset 4
  909: 
  910: /a**/
  911: Failed: nothing to repeat at offset 2
  912: 
  913: /)(/
  914: Failed: unmatched parentheses at offset 0
  915: 
  916: /\1/
  917: Failed: reference to non-existent subpattern at offset 2
  918: 
  919: /\2/
  920: Failed: reference to non-existent subpattern at offset 2
  921: 
  922: /(a)|\2/
  923: Failed: reference to non-existent subpattern at offset 6
  924: 
  925: /a[b-a]/Ii
  926: Failed: range out of order in character class at offset 4
  927: 
  928: /a[]b/Ii
  929: Failed: missing terminating ] for character class at offset 4
  930: 
  931: /a[/Ii
  932: Failed: missing terminating ] for character class at offset 2
  933: 
  934: /*a/Ii
  935: Failed: nothing to repeat at offset 0
  936: 
  937: /(*)b/Ii
  938: Failed: nothing to repeat at offset 1
  939: 
  940: /abc)/Ii
  941: Failed: unmatched parentheses at offset 3
  942: 
  943: /(abc/Ii
  944: Failed: missing ) at offset 4
  945: 
  946: /a**/Ii
  947: Failed: nothing to repeat at offset 2
  948: 
  949: /)(/Ii
  950: Failed: unmatched parentheses at offset 0
  951: 
  952: /:(?:/
  953: Failed: missing ) at offset 4
  954: 
  955: /(?<%)b/
  956: Failed: unrecognized character after (?< at offset 3
  957: 
  958: /a(?{)b/
  959: Failed: unrecognized character after (? or (?- at offset 3
  960: 
  961: /a(?{{})b/
  962: Failed: unrecognized character after (? or (?- at offset 3
  963: 
  964: /a(?{}})b/
  965: Failed: unrecognized character after (? or (?- at offset 3
  966: 
  967: /a(?{"{"})b/
  968: Failed: unrecognized character after (? or (?- at offset 3
  969: 
  970: /a(?{"{"}})b/
  971: Failed: unrecognized character after (? or (?- at offset 3
  972: 
  973: /(?(1?)a|b)/
  974: Failed: malformed number or name after (?( at offset 4
  975: 
  976: /[a[:xyz:/
  977: Failed: missing terminating ] for character class at offset 8
  978: 
  979: /(?<=x+)y/
  980: Failed: lookbehind assertion is not fixed length at offset 6
  981: 
  982: /a{37,17}/
  983: Failed: numbers out of order in {} quantifier at offset 7
  984: 
  985: /abc/\
  986: Failed: \ at end of pattern at offset 4
  987: 
  988: /abc/\i
  989: Failed: \ at end of pattern at offset 4
  990: 
  991: /(a)bc(d)/I
  992: Capturing subpattern count = 2
  993: No options
  994: First char = 'a'
  995: Need char = 'd'
  996:     abcd
  997:  0: abcd
  998:  1: a
  999:  2: d
 1000:     abcd\C2
 1001:  0: abcd
 1002:  1: a
 1003:  2: d
 1004:  2C d (1)
 1005:     abcd\C5
 1006:  0: abcd
 1007:  1: a
 1008:  2: d
 1009: copy substring 5 failed -7
 1010: 
 1011: /(.{20})/I
 1012: Capturing subpattern count = 1
 1013: No options
 1014: No first char
 1015: No need char
 1016:     abcdefghijklmnopqrstuvwxyz
 1017:  0: abcdefghijklmnopqrst
 1018:  1: abcdefghijklmnopqrst
 1019:     abcdefghijklmnopqrstuvwxyz\C1
 1020:  0: abcdefghijklmnopqrst
 1021:  1: abcdefghijklmnopqrst
 1022:  1C abcdefghijklmnopqrst (20)
 1023:     abcdefghijklmnopqrstuvwxyz\G1
 1024:  0: abcdefghijklmnopqrst
 1025:  1: abcdefghijklmnopqrst
 1026:  1G abcdefghijklmnopqrst (20)
 1027: 
 1028: /(.{15})/I
 1029: Capturing subpattern count = 1
 1030: No options
 1031: No first char
 1032: No need char
 1033:     abcdefghijklmnopqrstuvwxyz
 1034:  0: abcdefghijklmno
 1035:  1: abcdefghijklmno
 1036:     abcdefghijklmnopqrstuvwxyz\C1\G1
 1037:  0: abcdefghijklmno
 1038:  1: abcdefghijklmno
 1039:  1C abcdefghijklmno (15)
 1040:  1G abcdefghijklmno (15)
 1041: 
 1042: /(.{16})/I
 1043: Capturing subpattern count = 1
 1044: No options
 1045: No first char
 1046: No need char
 1047:     abcdefghijklmnopqrstuvwxyz
 1048:  0: abcdefghijklmnop
 1049:  1: abcdefghijklmnop
 1050:     abcdefghijklmnopqrstuvwxyz\C1\G1\L
 1051:  0: abcdefghijklmnop
 1052:  1: abcdefghijklmnop
 1053:  1C abcdefghijklmnop (16)
 1054:  1G abcdefghijklmnop (16)
 1055:  0L abcdefghijklmnop
 1056:  1L abcdefghijklmnop
 1057: 
 1058: /^(a|(bc))de(f)/I
 1059: Capturing subpattern count = 3
 1060: Options: anchored
 1061: No first char
 1062: No need char
 1063:     adef\G1\G2\G3\G4\L
 1064:  0: adef
 1065:  1: a
 1066:  2: <unset>
 1067:  3: f
 1068:  1G a (1)
 1069:  2G  (0)
 1070:  3G f (1)
 1071: get substring 4 failed -7
 1072:  0L adef
 1073:  1L a
 1074:  2L 
 1075:  3L f
 1076:     bcdef\G1\G2\G3\G4\L
 1077:  0: bcdef
 1078:  1: bc
 1079:  2: bc
 1080:  3: f
 1081:  1G bc (2)
 1082:  2G bc (2)
 1083:  3G f (1)
 1084: get substring 4 failed -7
 1085:  0L bcdef
 1086:  1L bc
 1087:  2L bc
 1088:  3L f
 1089:     adefghijk\C0
 1090:  0: adef
 1091:  1: a
 1092:  2: <unset>
 1093:  3: f
 1094:  0C adef (4)
 1095: 
 1096: /^abc\00def/I
 1097: Capturing subpattern count = 0
 1098: Options: anchored
 1099: No first char
 1100: No need char
 1101:     abc\00def\L\C0
 1102:  0: abc\x00def
 1103:  0C abc\x00def (7)
 1104:  0L abc
 1105: 
 1106: /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
 1107: )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
 1108: )?)?)?)?)?)?)?)?)?otherword/I
 1109: Capturing subpattern count = 8
 1110: Contains explicit CR or LF match
 1111: No options
 1112: First char = 'w'
 1113: Need char = 'd'
 1114: 
 1115: /.*X/IDZ
 1116: ------------------------------------------------------------------
 1117:         Bra
 1118:         Any*
 1119:         X
 1120:         Ket
 1121:         End
 1122: ------------------------------------------------------------------
 1123: Capturing subpattern count = 0
 1124: No options
 1125: First char at start or follows newline
 1126: Need char = 'X'
 1127: 
 1128: /.*X/IDZs
 1129: ------------------------------------------------------------------
 1130:         Bra
 1131:         AllAny*
 1132:         X
 1133:         Ket
 1134:         End
 1135: ------------------------------------------------------------------
 1136: Capturing subpattern count = 0
 1137: Options: anchored dotall
 1138: No first char
 1139: Need char = 'X'
 1140: 
 1141: /(.*X|^B)/IDZ
 1142: ------------------------------------------------------------------
 1143:         Bra
 1144:         CBra 1
 1145:         Any*
 1146:         X
 1147:         Alt
 1148:         ^
 1149:         B
 1150:         Ket
 1151:         Ket
 1152:         End
 1153: ------------------------------------------------------------------
 1154: Capturing subpattern count = 1
 1155: No options
 1156: First char at start or follows newline
 1157: No need char
 1158: 
 1159: /(.*X|^B)/IDZs
 1160: ------------------------------------------------------------------
 1161:         Bra
 1162:         CBra 1
 1163:         AllAny*
 1164:         X
 1165:         Alt
 1166:         ^
 1167:         B
 1168:         Ket
 1169:         Ket
 1170:         End
 1171: ------------------------------------------------------------------
 1172: Capturing subpattern count = 1
 1173: Options: anchored dotall
 1174: No first char
 1175: No need char
 1176: 
 1177: /(?s)(.*X|^B)/IDZ
 1178: ------------------------------------------------------------------
 1179:         Bra
 1180:         CBra 1
 1181:         AllAny*
 1182:         X
 1183:         Alt
 1184:         ^
 1185:         B
 1186:         Ket
 1187:         Ket
 1188:         End
 1189: ------------------------------------------------------------------
 1190: Capturing subpattern count = 1
 1191: Options: anchored dotall
 1192: No first char
 1193: No need char
 1194: 
 1195: /(?s:.*X|^B)/IDZ
 1196: ------------------------------------------------------------------
 1197:         Bra
 1198:         Bra
 1199:         AllAny*
 1200:         X
 1201:         Alt
 1202:         ^
 1203:         B
 1204:         Ket
 1205:         Ket
 1206:         End
 1207: ------------------------------------------------------------------
 1208: Capturing subpattern count = 0
 1209: Options: anchored
 1210: No first char
 1211: No need char
 1212: 
 1213: /\Biss\B/I+
 1214: Capturing subpattern count = 0
 1215: No options
 1216: First char = 'i'
 1217: Need char = 's'
 1218: Max lookbehind = 1
 1219:     Mississippi
 1220:  0: iss
 1221:  0+ issippi
 1222: 
 1223: /iss/IG+
 1224: Capturing subpattern count = 0
 1225: No options
 1226: First char = 'i'
 1227: Need char = 's'
 1228:     Mississippi
 1229:  0: iss
 1230:  0+ issippi
 1231:  0: iss
 1232:  0+ ippi
 1233: 
 1234: /\Biss\B/IG+
 1235: Capturing subpattern count = 0
 1236: No options
 1237: First char = 'i'
 1238: Need char = 's'
 1239: Max lookbehind = 1
 1240:     Mississippi
 1241:  0: iss
 1242:  0+ issippi
 1243: 
 1244: /\Biss\B/Ig+
 1245: Capturing subpattern count = 0
 1246: No options
 1247: First char = 'i'
 1248: Need char = 's'
 1249: Max lookbehind = 1
 1250:     Mississippi
 1251:  0: iss
 1252:  0+ issippi
 1253:  0: iss
 1254:  0+ ippi
 1255:     *** Failers
 1256: No match
 1257:     Mississippi\A
 1258: No match
 1259: 
 1260: /(?<=[Ms])iss/Ig+
 1261: Capturing subpattern count = 0
 1262: No options
 1263: First char = 'i'
 1264: Need char = 's'
 1265: Max lookbehind = 1
 1266:     Mississippi
 1267:  0: iss
 1268:  0+ issippi
 1269:  0: iss
 1270:  0+ ippi
 1271: 
 1272: /(?<=[Ms])iss/IG+
 1273: Capturing subpattern count = 0
 1274: No options
 1275: First char = 'i'
 1276: Need char = 's'
 1277: Max lookbehind = 1
 1278:     Mississippi
 1279:  0: iss
 1280:  0+ issippi
 1281: 
 1282: /^iss/Ig+
 1283: Capturing subpattern count = 0
 1284: Options: anchored
 1285: No first char
 1286: No need char
 1287:     ississippi
 1288:  0: iss
 1289:  0+ issippi
 1290: 
 1291: /.*iss/Ig+
 1292: Capturing subpattern count = 0
 1293: No options
 1294: First char at start or follows newline
 1295: Need char = 's'
 1296:     abciss\nxyzisspqr
 1297:  0: abciss
 1298:  0+ \x0axyzisspqr
 1299:  0: xyziss
 1300:  0+ pqr
 1301: 
 1302: /.i./I+g
 1303: Capturing subpattern count = 0
 1304: No options
 1305: No first char
 1306: Need char = 'i'
 1307:     Mississippi
 1308:  0: Mis
 1309:  0+ sissippi
 1310:  0: sis
 1311:  0+ sippi
 1312:  0: sip
 1313:  0+ pi
 1314:     Mississippi\A
 1315:  0: Mis
 1316:  0+ sissippi
 1317:  0: sis
 1318:  0+ sippi
 1319:  0: sip
 1320:  0+ pi
 1321:     Missouri river
 1322:  0: Mis
 1323:  0+ souri river
 1324:  0: ri 
 1325:  0+ river
 1326:  0: riv
 1327:  0+ er
 1328:     Missouri river\A
 1329:  0: Mis
 1330:  0+ souri river
 1331: 
 1332: /^.is/I+g
 1333: Capturing subpattern count = 0
 1334: Options: anchored
 1335: No first char
 1336: No need char
 1337:     Mississippi
 1338:  0: Mis
 1339:  0+ sissippi
 1340: 
 1341: /^ab\n/Ig+
 1342: Capturing subpattern count = 0
 1343: Contains explicit CR or LF match
 1344: Options: anchored
 1345: No first char
 1346: No need char
 1347:     ab\nab\ncd
 1348:  0: ab\x0a
 1349:  0+ ab\x0acd
 1350: 
 1351: /^ab\n/Img+
 1352: Capturing subpattern count = 0
 1353: Contains explicit CR or LF match
 1354: Options: multiline
 1355: First char at start or follows newline
 1356: Need char = \x0a
 1357:     ab\nab\ncd
 1358:  0: ab\x0a
 1359:  0+ ab\x0acd
 1360:  0: ab\x0a
 1361:  0+ cd
 1362: 
 1363: /abc/I
 1364: Capturing subpattern count = 0
 1365: No options
 1366: First char = 'a'
 1367: Need char = 'c'
 1368: 
 1369: /abc|bac/I
 1370: Capturing subpattern count = 0
 1371: No options
 1372: No first char
 1373: Need char = 'c'
 1374: 
 1375: /(abc|bac)/I
 1376: Capturing subpattern count = 1
 1377: No options
 1378: No first char
 1379: Need char = 'c'
 1380: 
 1381: /(abc|(c|dc))/I
 1382: Capturing subpattern count = 2
 1383: No options
 1384: No first char
 1385: Need char = 'c'
 1386: 
 1387: /(abc|(d|de)c)/I
 1388: Capturing subpattern count = 2
 1389: No options
 1390: No first char
 1391: Need char = 'c'
 1392: 
 1393: /a*/I
 1394: Capturing subpattern count = 0
 1395: No options
 1396: No first char
 1397: No need char
 1398: 
 1399: /a+/I
 1400: Capturing subpattern count = 0
 1401: No options
 1402: First char = 'a'
 1403: No need char
 1404: 
 1405: /(baa|a+)/I
 1406: Capturing subpattern count = 1
 1407: No options
 1408: No first char
 1409: Need char = 'a'
 1410: 
 1411: /a{0,3}/I
 1412: Capturing subpattern count = 0
 1413: No options
 1414: No first char
 1415: No need char
 1416: 
 1417: /baa{3,}/I
 1418: Capturing subpattern count = 0
 1419: No options
 1420: First char = 'b'
 1421: Need char = 'a'
 1422: 
 1423: /"([^\\"]+|\\.)*"/I
 1424: Capturing subpattern count = 1
 1425: No options
 1426: First char = '"'
 1427: Need char = '"'
 1428: 
 1429: /(abc|ab[cd])/I
 1430: Capturing subpattern count = 1
 1431: No options
 1432: First char = 'a'
 1433: No need char
 1434: 
 1435: /(a|.)/I
 1436: Capturing subpattern count = 1
 1437: No options
 1438: No first char
 1439: No need char
 1440: 
 1441: /a|ba|\w/I
 1442: Capturing subpattern count = 0
 1443: No options
 1444: No first char
 1445: No need char
 1446: 
 1447: /abc(?=pqr)/I
 1448: Capturing subpattern count = 0
 1449: No options
 1450: First char = 'a'
 1451: Need char = 'r'
 1452: 
 1453: /...(?<=abc)/I
 1454: Capturing subpattern count = 0
 1455: No options
 1456: No first char
 1457: No need char
 1458: Max lookbehind = 3
 1459: 
 1460: /abc(?!pqr)/I
 1461: Capturing subpattern count = 0
 1462: No options
 1463: First char = 'a'
 1464: Need char = 'c'
 1465: 
 1466: /ab./I
 1467: Capturing subpattern count = 0
 1468: No options
 1469: First char = 'a'
 1470: Need char = 'b'
 1471: 
 1472: /ab[xyz]/I
 1473: Capturing subpattern count = 0
 1474: No options
 1475: First char = 'a'
 1476: Need char = 'b'
 1477: 
 1478: /abc*/I
 1479: Capturing subpattern count = 0
 1480: No options
 1481: First char = 'a'
 1482: Need char = 'b'
 1483: 
 1484: /ab.c*/I
 1485: Capturing subpattern count = 0
 1486: No options
 1487: First char = 'a'
 1488: Need char = 'b'
 1489: 
 1490: /a.c*/I
 1491: Capturing subpattern count = 0
 1492: No options
 1493: First char = 'a'
 1494: No need char
 1495: 
 1496: /.c*/I
 1497: Capturing subpattern count = 0
 1498: No options
 1499: No first char
 1500: No need char
 1501: 
 1502: /ac*/I
 1503: Capturing subpattern count = 0
 1504: No options
 1505: First char = 'a'
 1506: No need char
 1507: 
 1508: /(a.c*|b.c*)/I
 1509: Capturing subpattern count = 1
 1510: No options
 1511: No first char
 1512: No need char
 1513: 
 1514: /a.c*|aba/I
 1515: Capturing subpattern count = 0
 1516: No options
 1517: First char = 'a'
 1518: No need char
 1519: 
 1520: /.+a/I
 1521: Capturing subpattern count = 0
 1522: No options
 1523: No first char
 1524: Need char = 'a'
 1525: 
 1526: /(?=abcda)a.*/I
 1527: Capturing subpattern count = 0
 1528: No options
 1529: First char = 'a'
 1530: Need char = 'a'
 1531: 
 1532: /(?=a)a.*/I
 1533: Capturing subpattern count = 0
 1534: No options
 1535: First char = 'a'
 1536: No need char
 1537: 
 1538: /a(b)*/I
 1539: Capturing subpattern count = 1
 1540: No options
 1541: First char = 'a'
 1542: No need char
 1543: 
 1544: /a\d*/I
 1545: Capturing subpattern count = 0
 1546: No options
 1547: First char = 'a'
 1548: No need char
 1549: 
 1550: /ab\d*/I
 1551: Capturing subpattern count = 0
 1552: No options
 1553: First char = 'a'
 1554: Need char = 'b'
 1555: 
 1556: /a(\d)*/I
 1557: Capturing subpattern count = 1
 1558: No options
 1559: First char = 'a'
 1560: No need char
 1561: 
 1562: /abcde{0,0}/I
 1563: Capturing subpattern count = 0
 1564: No options
 1565: First char = 'a'
 1566: Need char = 'd'
 1567: 
 1568: /ab\d+/I
 1569: Capturing subpattern count = 0
 1570: No options
 1571: First char = 'a'
 1572: Need char = 'b'
 1573: 
 1574: /a(?(1)b)(.)/I
 1575: Capturing subpattern count = 1
 1576: No options
 1577: First char = 'a'
 1578: No need char
 1579: 
 1580: /a(?(1)bag|big)(.)/I
 1581: Capturing subpattern count = 1
 1582: No options
 1583: First char = 'a'
 1584: Need char = 'g'
 1585: 
 1586: /a(?(1)bag|big)*(.)/I
 1587: Capturing subpattern count = 1
 1588: No options
 1589: First char = 'a'
 1590: No need char
 1591: 
 1592: /a(?(1)bag|big)+(.)/I
 1593: Capturing subpattern count = 1
 1594: No options
 1595: First char = 'a'
 1596: Need char = 'g'
 1597: 
 1598: /a(?(1)b..|b..)(.)/I
 1599: Capturing subpattern count = 1
 1600: No options
 1601: First char = 'a'
 1602: Need char = 'b'
 1603: 
 1604: /ab\d{0}e/I
 1605: Capturing subpattern count = 0
 1606: No options
 1607: First char = 'a'
 1608: Need char = 'e'
 1609: 
 1610: /a?b?/I
 1611: Capturing subpattern count = 0
 1612: No options
 1613: No first char
 1614: No need char
 1615:     a
 1616:  0: a
 1617:     b
 1618:  0: b
 1619:     ab
 1620:  0: ab
 1621:     \
 1622:  0: 
 1623:     *** Failers
 1624:  0: 
 1625:     \N
 1626: No match
 1627: 
 1628: /|-/I
 1629: Capturing subpattern count = 0
 1630: No options
 1631: No first char
 1632: No need char
 1633:     abcd
 1634:  0: 
 1635:     -abc
 1636:  0: 
 1637:     \Nab-c
 1638:  0: -
 1639:     *** Failers
 1640:  0: 
 1641:     \Nabc
 1642: No match
 1643: 
 1644: /^.?abcd/IS
 1645: Capturing subpattern count = 0
 1646: Options: anchored
 1647: No first char
 1648: Need char = 'd'
 1649: Subject length lower bound = 4
 1650: No set of starting bytes
 1651: 
 1652: /\(             # ( at start
 1653:   (?:           # Non-capturing bracket
 1654:   (?>[^()]+)    # Either a sequence of non-brackets (no backtracking)
 1655:   |             # Or
 1656:   (?R)          # Recurse - i.e. nested bracketed string
 1657:   )*            # Zero or more contents
 1658:   \)            # Closing )
 1659:   /Ix
 1660: Capturing subpattern count = 0
 1661: Options: extended
 1662: First char = '('
 1663: Need char = ')'
 1664:     (abcd)
 1665:  0: (abcd)
 1666:     (abcd)xyz
 1667:  0: (abcd)
 1668:     xyz(abcd)
 1669:  0: (abcd)
 1670:     (ab(xy)cd)pqr
 1671:  0: (ab(xy)cd)
 1672:     (ab(xycd)pqr
 1673:  0: (xycd)
 1674:     () abc ()
 1675:  0: ()
 1676:     12(abcde(fsh)xyz(foo(bar))lmno)89
 1677:  0: (abcde(fsh)xyz(foo(bar))lmno)
 1678:     *** Failers
 1679: No match
 1680:     abcd
 1681: No match
 1682:     abcd)
 1683: No match
 1684:     (abcd
 1685: No match
 1686: 
 1687: /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
 1688: Capturing subpattern count = 1
 1689: Options: extended
 1690: First char = '('
 1691: Need char = ')'
 1692:     (ab(xy)cd)pqr
 1693:  0: (ab(xy)cd)
 1694:  1: cd
 1695:     1(abcd)(x(y)z)pqr
 1696:  0: (abcd)
 1697:  1: abcd
 1698:  0: (x(y)z)
 1699:  1: z
 1700: 
 1701: /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
 1702: Capturing subpattern count = 0
 1703: Options: extended
 1704: First char = '('
 1705: Need char = ')'
 1706:     (abcd)
 1707:  0: (abcd)
 1708:     (ab(xy)cd)
 1709:  0: (xy)
 1710:     (a(b(c)d)e)
 1711:  0: (c)
 1712:     ((ab))
 1713:  0: ((ab))
 1714:     *** Failers
 1715: No match
 1716:     ()
 1717: No match
 1718: 
 1719: /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
 1720: Capturing subpattern count = 0
 1721: Options: extended
 1722: First char = '('
 1723: Need char = ')'
 1724:     ()
 1725:  0: ()
 1726:     12(abcde(fsh)xyz(foo(bar))lmno)89
 1727:  0: (fsh)
 1728: 
 1729: /\(  ( (?>[^()]+) | (?R) )* \) /Ix
 1730: Capturing subpattern count = 1
 1731: Options: extended
 1732: First char = '('
 1733: Need char = ')'
 1734:     (ab(xy)cd)
 1735:  0: (ab(xy)cd)
 1736:  1: cd
 1737: 
 1738: /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
 1739: Capturing subpattern count = 2
 1740: Options: extended
 1741: First char = '('
 1742: Need char = ')'
 1743:     (ab(xy)cd)
 1744:  0: (ab(xy)cd)
 1745:  1: ab(xy)cd
 1746:  2: cd
 1747: 
 1748: /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
 1749: Capturing subpattern count = 3
 1750: Options: extended
 1751: First char = '('
 1752: Need char = ')'
 1753:     (ab(xy)cd)
 1754:  0: (ab(xy)cd)
 1755:  1: <unset>
 1756:  2: ab(xy)cd
 1757:  3: cd
 1758:     (123ab(xy)cd)
 1759:  0: (123ab(xy)cd)
 1760:  1: 123
 1761:  2: ab(xy)cd
 1762:  3: cd
 1763: 
 1764: /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
 1765: Capturing subpattern count = 3
 1766: Options: extended
 1767: First char = '('
 1768: Need char = ')'
 1769:     (ab(xy)cd)
 1770:  0: (ab(xy)cd)
 1771:  1: ab(xy)cd
 1772:  2: <unset>
 1773:  3: cd
 1774:     (123ab(xy)cd)
 1775:  0: (123ab(xy)cd)
 1776:  1: 123ab(xy)cd
 1777:  2: 123
 1778:  3: cd
 1779: 
 1780: /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
 1781: Capturing subpattern count = 11
 1782: Options: extended
 1783: First char = '('
 1784: Need char = ')'
 1785:     (ab(xy)cd)
 1786:  0: (ab(xy)cd)
 1787:  1: ab(xy)cd
 1788:  2: ab(xy)cd
 1789:  3: ab(xy)cd
 1790:  4: ab(xy)cd
 1791:  5: ab(xy)cd
 1792:  6: ab(xy)cd
 1793:  7: ab(xy)cd
 1794:  8: ab(xy)cd
 1795:  9: ab(xy)cd
 1796: 10: ab(xy)cd
 1797: 11: cd
 1798: 
 1799: /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
 1800: Capturing subpattern count = 3
 1801: Options: extended
 1802: First char = '('
 1803: Need char = ')'
 1804:     (abcd(xyz<p>qrs)123)
 1805:  0: (abcd(xyz<p>qrs)123)
 1806:  1: abcd(xyz<p>qrs)123
 1807:  2: 123
 1808: 
 1809: /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
 1810: Capturing subpattern count = 3
 1811: Options: extended
 1812: First char = '('
 1813: Need char = ')'
 1814:     (ab(cd)ef)
 1815:  0: (ab(cd)ef)
 1816:  1: ab(cd)ef
 1817:  2: ef
 1818:  3: (cd)
 1819:     (ab(cd(ef)gh)ij)
 1820:  0: (ab(cd(ef)gh)ij)
 1821:  1: ab(cd(ef)gh)ij
 1822:  2: ij
 1823:  3: (cd(ef)gh)
 1824: 
 1825: /^[[:alnum:]]/DZ
 1826: ------------------------------------------------------------------
 1827:         Bra
 1828:         ^
 1829:         [0-9A-Za-z]
 1830:         Ket
 1831:         End
 1832: ------------------------------------------------------------------
 1833: Capturing subpattern count = 0
 1834: Options: anchored
 1835: No first char
 1836: No need char
 1837: 
 1838: /^[[:^alnum:]]/DZ
 1839: ------------------------------------------------------------------
 1840:         Bra
 1841:         ^
 1842:         [\x00-/:-@[-`{-\xff] (neg)
 1843:         Ket
 1844:         End
 1845: ------------------------------------------------------------------
 1846: Capturing subpattern count = 0
 1847: Options: anchored
 1848: No first char
 1849: No need char
 1850: 
 1851: /^[[:alpha:]]/DZ
 1852: ------------------------------------------------------------------
 1853:         Bra
 1854:         ^
 1855:         [A-Za-z]
 1856:         Ket
 1857:         End
 1858: ------------------------------------------------------------------
 1859: Capturing subpattern count = 0
 1860: Options: anchored
 1861: No first char
 1862: No need char
 1863: 
 1864: /^[[:^alpha:]]/DZ
 1865: ------------------------------------------------------------------
 1866:         Bra
 1867:         ^
 1868:         [\x00-@[-`{-\xff] (neg)
 1869:         Ket
 1870:         End
 1871: ------------------------------------------------------------------
 1872: Capturing subpattern count = 0
 1873: Options: anchored
 1874: No first char
 1875: No need char
 1876: 
 1877: /[_[:alpha:]]/IS
 1878: Capturing subpattern count = 0
 1879: No options
 1880: No first char
 1881: No need char
 1882: Subject length lower bound = 1
 1883: 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 
 1884:   _ 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 
 1885: 
 1886: /^[[:ascii:]]/DZ
 1887: ------------------------------------------------------------------
 1888:         Bra
 1889:         ^
 1890:         [\x00-\x7f]
 1891:         Ket
 1892:         End
 1893: ------------------------------------------------------------------
 1894: Capturing subpattern count = 0
 1895: Options: anchored
 1896: No first char
 1897: No need char
 1898: 
 1899: /^[[:^ascii:]]/DZ
 1900: ------------------------------------------------------------------
 1901:         Bra
 1902:         ^
 1903:         [\x80-\xff] (neg)
 1904:         Ket
 1905:         End
 1906: ------------------------------------------------------------------
 1907: Capturing subpattern count = 0
 1908: Options: anchored
 1909: No first char
 1910: No need char
 1911: 
 1912: /^[[:blank:]]/DZ
 1913: ------------------------------------------------------------------
 1914:         Bra
 1915:         ^
 1916:         [\x09 ]
 1917:         Ket
 1918:         End
 1919: ------------------------------------------------------------------
 1920: Capturing subpattern count = 0
 1921: Options: anchored
 1922: No first char
 1923: No need char
 1924: 
 1925: /^[[:^blank:]]/DZ
 1926: ------------------------------------------------------------------
 1927:         Bra
 1928:         ^
 1929:         [\x00-\x08\x0a-\x1f!-\xff] (neg)
 1930:         Ket
 1931:         End
 1932: ------------------------------------------------------------------
 1933: Capturing subpattern count = 0
 1934: Options: anchored
 1935: No first char
 1936: No need char
 1937: 
 1938: /[\n\x0b\x0c\x0d[:blank:]]/IS
 1939: Capturing subpattern count = 0
 1940: Contains explicit CR or LF match
 1941: No options
 1942: No first char
 1943: No need char
 1944: Subject length lower bound = 1
 1945: Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 
 1946: 
 1947: /^[[:cntrl:]]/DZ
 1948: ------------------------------------------------------------------
 1949:         Bra
 1950:         ^
 1951:         [\x00-\x1f\x7f]
 1952:         Ket
 1953:         End
 1954: ------------------------------------------------------------------
 1955: Capturing subpattern count = 0
 1956: Options: anchored
 1957: No first char
 1958: No need char
 1959: 
 1960: /^[[:digit:]]/DZ
 1961: ------------------------------------------------------------------
 1962:         Bra
 1963:         ^
 1964:         [0-9]
 1965:         Ket
 1966:         End
 1967: ------------------------------------------------------------------
 1968: Capturing subpattern count = 0
 1969: Options: anchored
 1970: No first char
 1971: No need char
 1972: 
 1973: /^[[:graph:]]/DZ
 1974: ------------------------------------------------------------------
 1975:         Bra
 1976:         ^
 1977:         [!-~]
 1978:         Ket
 1979:         End
 1980: ------------------------------------------------------------------
 1981: Capturing subpattern count = 0
 1982: Options: anchored
 1983: No first char
 1984: No need char
 1985: 
 1986: /^[[:lower:]]/DZ
 1987: ------------------------------------------------------------------
 1988:         Bra
 1989:         ^
 1990:         [a-z]
 1991:         Ket
 1992:         End
 1993: ------------------------------------------------------------------
 1994: Capturing subpattern count = 0
 1995: Options: anchored
 1996: No first char
 1997: No need char
 1998: 
 1999: /^[[:print:]]/DZ
 2000: ------------------------------------------------------------------
 2001:         Bra
 2002:         ^
 2003:         [ -~]
 2004:         Ket
 2005:         End
 2006: ------------------------------------------------------------------
 2007: Capturing subpattern count = 0
 2008: Options: anchored
 2009: No first char
 2010: No need char
 2011: 
 2012: /^[[:punct:]]/DZ
 2013: ------------------------------------------------------------------
 2014:         Bra
 2015:         ^
 2016:         [!-/:-@[-`{-~]
 2017:         Ket
 2018:         End
 2019: ------------------------------------------------------------------
 2020: Capturing subpattern count = 0
 2021: Options: anchored
 2022: No first char
 2023: No need char
 2024: 
 2025: /^[[:space:]]/DZ
 2026: ------------------------------------------------------------------
 2027:         Bra
 2028:         ^
 2029:         [\x09-\x0d ]
 2030:         Ket
 2031:         End
 2032: ------------------------------------------------------------------
 2033: Capturing subpattern count = 0
 2034: Options: anchored
 2035: No first char
 2036: No need char
 2037: 
 2038: /^[[:upper:]]/DZ
 2039: ------------------------------------------------------------------
 2040:         Bra
 2041:         ^
 2042:         [A-Z]
 2043:         Ket
 2044:         End
 2045: ------------------------------------------------------------------
 2046: Capturing subpattern count = 0
 2047: Options: anchored
 2048: No first char
 2049: No need char
 2050: 
 2051: /^[[:xdigit:]]/DZ
 2052: ------------------------------------------------------------------
 2053:         Bra
 2054:         ^
 2055:         [0-9A-Fa-f]
 2056:         Ket
 2057:         End
 2058: ------------------------------------------------------------------
 2059: Capturing subpattern count = 0
 2060: Options: anchored
 2061: No first char
 2062: No need char
 2063: 
 2064: /^[[:word:]]/DZ
 2065: ------------------------------------------------------------------
 2066:         Bra
 2067:         ^
 2068:         [0-9A-Z_a-z]
 2069:         Ket
 2070:         End
 2071: ------------------------------------------------------------------
 2072: Capturing subpattern count = 0
 2073: Options: anchored
 2074: No first char
 2075: No need char
 2076: 
 2077: /^[[:^cntrl:]]/DZ
 2078: ------------------------------------------------------------------
 2079:         Bra
 2080:         ^
 2081:         [ -~\x80-\xff] (neg)
 2082:         Ket
 2083:         End
 2084: ------------------------------------------------------------------
 2085: Capturing subpattern count = 0
 2086: Options: anchored
 2087: No first char
 2088: No need char
 2089: 
 2090: /^[12[:^digit:]]/DZ
 2091: ------------------------------------------------------------------
 2092:         Bra
 2093:         ^
 2094:         [\x00-/12:-\xff] (neg)
 2095:         Ket
 2096:         End
 2097: ------------------------------------------------------------------
 2098: Capturing subpattern count = 0
 2099: Options: anchored
 2100: No first char
 2101: No need char
 2102: 
 2103: /^[[:^blank:]]/DZ
 2104: ------------------------------------------------------------------
 2105:         Bra
 2106:         ^
 2107:         [\x00-\x08\x0a-\x1f!-\xff] (neg)
 2108:         Ket
 2109:         End
 2110: ------------------------------------------------------------------
 2111: Capturing subpattern count = 0
 2112: Options: anchored
 2113: No first char
 2114: No need char
 2115: 
 2116: /[01[:alpha:]%]/DZ
 2117: ------------------------------------------------------------------
 2118:         Bra
 2119:         [%01A-Za-z]
 2120:         Ket
 2121:         End
 2122: ------------------------------------------------------------------
 2123: Capturing subpattern count = 0
 2124: No options
 2125: No first char
 2126: No need char
 2127: 
 2128: /[[.ch.]]/I
 2129: Failed: POSIX collating elements are not supported at offset 1
 2130: 
 2131: /[[=ch=]]/I
 2132: Failed: POSIX collating elements are not supported at offset 1
 2133: 
 2134: /[[:rhubarb:]]/I
 2135: Failed: unknown POSIX class name at offset 3
 2136: 
 2137: /[[:upper:]]/Ii
 2138: Capturing subpattern count = 0
 2139: Options: caseless
 2140: No first char
 2141: No need char
 2142:     A
 2143:  0: A
 2144:     a
 2145:  0: a
 2146: 
 2147: /[[:lower:]]/Ii
 2148: Capturing subpattern count = 0
 2149: Options: caseless
 2150: No first char
 2151: No need char
 2152:     A
 2153:  0: A
 2154:     a
 2155:  0: a
 2156: 
 2157: /((?-i)[[:lower:]])[[:lower:]]/Ii
 2158: Capturing subpattern count = 1
 2159: Options: caseless
 2160: No first char
 2161: No need char
 2162:     ab
 2163:  0: ab
 2164:  1: a
 2165:     aB
 2166:  0: aB
 2167:  1: a
 2168:     *** Failers
 2169:  0: ai
 2170:  1: a
 2171:     Ab
 2172: No match
 2173:     AB
 2174: No match
 2175: 
 2176: /[\200-\110]/I
 2177: Failed: range out of order in character class at offset 9
 2178: 
 2179: /^(?(0)f|b)oo/I
 2180: Failed: invalid condition (?(0) at offset 6
 2181: 
 2182: /This one's here because of the large output vector needed/I
 2183: Capturing subpattern count = 0
 2184: No options
 2185: First char = 'T'
 2186: Need char = 'd'
 2187: 
 2188: /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
 2189: Capturing subpattern count = 271
 2190: Max back reference = 270
 2191: No options
 2192: No first char
 2193: No need char
 2194:     \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
 2195:  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
 2196:  1: 1 
 2197:  2: 2 
 2198:  3: 3 
 2199:  4: 4 
 2200:  5: 5 
 2201:  6: 6 
 2202:  7: 7 
 2203:  8: 8 
 2204:  9: 9 
 2205: 10: 10 
 2206: 11: 11 
 2207: 12: 12 
 2208: 13: 13 
 2209: 14: 14 
 2210: 15: 15 
 2211: 16: 16 
 2212: 17: 17 
 2213: 18: 18 
 2214: 19: 19 
 2215: 20: 20 
 2216: 21: 21 
 2217: 22: 22 
 2218: 23: 23 
 2219: 24: 24 
 2220: 25: 25 
 2221: 26: 26 
 2222: 27: 27 
 2223: 28: 28 
 2224: 29: 29 
 2225: 30: 30 
 2226: 31: 31 
 2227: 32: 32 
 2228: 33: 33 
 2229: 34: 34 
 2230: 35: 35 
 2231: 36: 36 
 2232: 37: 37 
 2233: 38: 38 
 2234: 39: 39 
 2235: 40: 40 
 2236: 41: 41 
 2237: 42: 42 
 2238: 43: 43 
 2239: 44: 44 
 2240: 45: 45 
 2241: 46: 46 
 2242: 47: 47 
 2243: 48: 48 
 2244: 49: 49 
 2245: 50: 50 
 2246: 51: 51 
 2247: 52: 52 
 2248: 53: 53 
 2249: 54: 54 
 2250: 55: 55 
 2251: 56: 56 
 2252: 57: 57 
 2253: 58: 58 
 2254: 59: 59 
 2255: 60: 60 
 2256: 61: 61 
 2257: 62: 62 
 2258: 63: 63 
 2259: 64: 64 
 2260: 65: 65 
 2261: 66: 66 
 2262: 67: 67 
 2263: 68: 68 
 2264: 69: 69 
 2265: 70: 70 
 2266: 71: 71 
 2267: 72: 72 
 2268: 73: 73 
 2269: 74: 74 
 2270: 75: 75 
 2271: 76: 76 
 2272: 77: 77 
 2273: 78: 78 
 2274: 79: 79 
 2275: 80: 80 
 2276: 81: 81 
 2277: 82: 82 
 2278: 83: 83 
 2279: 84: 84 
 2280: 85: 85 
 2281: 86: 86 
 2282: 87: 87 
 2283: 88: 88 
 2284: 89: 89 
 2285: 90: 90 
 2286: 91: 91 
 2287: 92: 92 
 2288: 93: 93 
 2289: 94: 94 
 2290: 95: 95 
 2291: 96: 96 
 2292: 97: 97 
 2293: 98: 98 
 2294: 99: 99 
 2295: 100: 100 
 2296: 101: 101 
 2297: 102: 102 
 2298: 103: 103 
 2299: 104: 104 
 2300: 105: 105 
 2301: 106: 106 
 2302: 107: 107 
 2303: 108: 108 
 2304: 109: 109 
 2305: 110: 110 
 2306: 111: 111 
 2307: 112: 112 
 2308: 113: 113 
 2309: 114: 114 
 2310: 115: 115 
 2311: 116: 116 
 2312: 117: 117 
 2313: 118: 118 
 2314: 119: 119 
 2315: 120: 120 
 2316: 121: 121 
 2317: 122: 122 
 2318: 123: 123 
 2319: 124: 124 
 2320: 125: 125 
 2321: 126: 126 
 2322: 127: 127 
 2323: 128: 128 
 2324: 129: 129 
 2325: 130: 130 
 2326: 131: 131 
 2327: 132: 132 
 2328: 133: 133 
 2329: 134: 134 
 2330: 135: 135 
 2331: 136: 136 
 2332: 137: 137 
 2333: 138: 138 
 2334: 139: 139 
 2335: 140: 140 
 2336: 141: 141 
 2337: 142: 142 
 2338: 143: 143 
 2339: 144: 144 
 2340: 145: 145 
 2341: 146: 146 
 2342: 147: 147 
 2343: 148: 148 
 2344: 149: 149 
 2345: 150: 150 
 2346: 151: 151 
 2347: 152: 152 
 2348: 153: 153 
 2349: 154: 154 
 2350: 155: 155 
 2351: 156: 156 
 2352: 157: 157 
 2353: 158: 158 
 2354: 159: 159 
 2355: 160: 160 
 2356: 161: 161 
 2357: 162: 162 
 2358: 163: 163 
 2359: 164: 164 
 2360: 165: 165 
 2361: 166: 166 
 2362: 167: 167 
 2363: 168: 168 
 2364: 169: 169 
 2365: 170: 170 
 2366: 171: 171 
 2367: 172: 172 
 2368: 173: 173 
 2369: 174: 174 
 2370: 175: 175 
 2371: 176: 176 
 2372: 177: 177 
 2373: 178: 178 
 2374: 179: 179 
 2375: 180: 180 
 2376: 181: 181 
 2377: 182: 182 
 2378: 183: 183 
 2379: 184: 184 
 2380: 185: 185 
 2381: 186: 186 
 2382: 187: 187 
 2383: 188: 188 
 2384: 189: 189 
 2385: 190: 190 
 2386: 191: 191 
 2387: 192: 192 
 2388: 193: 193 
 2389: 194: 194 
 2390: 195: 195 
 2391: 196: 196 
 2392: 197: 197 
 2393: 198: 198 
 2394: 199: 199 
 2395: 200: 200 
 2396: 201: 201 
 2397: 202: 202 
 2398: 203: 203 
 2399: 204: 204 
 2400: 205: 205 
 2401: 206: 206 
 2402: 207: 207 
 2403: 208: 208 
 2404: 209: 209 
 2405: 210: 210 
 2406: 211: 211 
 2407: 212: 212 
 2408: 213: 213 
 2409: 214: 214 
 2410: 215: 215 
 2411: 216: 216 
 2412: 217: 217 
 2413: 218: 218 
 2414: 219: 219 
 2415: 220: 220 
 2416: 221: 221 
 2417: 222: 222 
 2418: 223: 223 
 2419: 224: 224 
 2420: 225: 225 
 2421: 226: 226 
 2422: 227: 227 
 2423: 228: 228 
 2424: 229: 229 
 2425: 230: 230 
 2426: 231: 231 
 2427: 232: 232 
 2428: 233: 233 
 2429: 234: 234 
 2430: 235: 235 
 2431: 236: 236 
 2432: 237: 237 
 2433: 238: 238 
 2434: 239: 239 
 2435: 240: 240 
 2436: 241: 241 
 2437: 242: 242 
 2438: 243: 243 
 2439: 244: 244 
 2440: 245: 245 
 2441: 246: 246 
 2442: 247: 247 
 2443: 248: 248 
 2444: 249: 249 
 2445: 250: 250 
 2446: 251: 251 
 2447: 252: 252 
 2448: 253: 253 
 2449: 254: 254 
 2450: 255: 255 
 2451: 256: 256 
 2452: 257: 257 
 2453: 258: 258 
 2454: 259: 259 
 2455: 260: 260 
 2456: 261: 261 
 2457: 262: 262 
 2458: 263: 263 
 2459: 264: 264 
 2460: 265: 265 
 2461: 266: 266 
 2462: 267: 267 
 2463: 268: 268 
 2464: 269: 269 
 2465: 270: ABC
 2466: 271: ABC
 2467: 
 2468: /This one's here because Perl does this differently and PCRE can't at present/I
 2469: Capturing subpattern count = 0
 2470: No options
 2471: First char = 'T'
 2472: Need char = 't'
 2473: 
 2474: /(main(O)?)+/I
 2475: Capturing subpattern count = 2
 2476: No options
 2477: First char = 'm'
 2478: Need char = 'n'
 2479:     mainmain
 2480:  0: mainmain
 2481:  1: main
 2482:     mainOmain
 2483:  0: mainOmain
 2484:  1: main
 2485:  2: O
 2486: 
 2487: /These are all cases where Perl does it differently (nested captures)/I
 2488: Capturing subpattern count = 1
 2489: No options
 2490: First char = 'T'
 2491: Need char = 's'
 2492: 
 2493: /^(a(b)?)+$/I
 2494: Capturing subpattern count = 2
 2495: Options: anchored
 2496: No first char
 2497: No need char
 2498:     aba
 2499:  0: aba
 2500:  1: a
 2501:  2: b
 2502: 
 2503: /^(aa(bb)?)+$/I
 2504: Capturing subpattern count = 2
 2505: Options: anchored
 2506: No first char
 2507: No need char
 2508:     aabbaa
 2509:  0: aabbaa
 2510:  1: aa
 2511:  2: bb
 2512: 
 2513: /^(aa|aa(bb))+$/I
 2514: Capturing subpattern count = 2
 2515: Options: anchored
 2516: No first char
 2517: No need char
 2518:     aabbaa
 2519:  0: aabbaa
 2520:  1: aa
 2521:  2: bb
 2522: 
 2523: /^(aa(bb)??)+$/I
 2524: Capturing subpattern count = 2
 2525: Options: anchored
 2526: No first char
 2527: No need char
 2528:     aabbaa
 2529:  0: aabbaa
 2530:  1: aa
 2531:  2: bb
 2532: 
 2533: /^(?:aa(bb)?)+$/I
 2534: Capturing subpattern count = 1
 2535: Options: anchored
 2536: No first char
 2537: No need char
 2538:     aabbaa
 2539:  0: aabbaa
 2540:  1: bb
 2541: 
 2542: /^(aa(b(b))?)+$/I
 2543: Capturing subpattern count = 3
 2544: Options: anchored
 2545: No first char
 2546: No need char
 2547:     aabbaa
 2548:  0: aabbaa
 2549:  1: aa
 2550:  2: bb
 2551:  3: b
 2552: 
 2553: /^(?:aa(b(b))?)+$/I
 2554: Capturing subpattern count = 2
 2555: Options: anchored
 2556: No first char
 2557: No need char
 2558:     aabbaa
 2559:  0: aabbaa
 2560:  1: bb
 2561:  2: b
 2562: 
 2563: /^(?:aa(b(?:b))?)+$/I
 2564: Capturing subpattern count = 1
 2565: Options: anchored
 2566: No first char
 2567: No need char
 2568:     aabbaa
 2569:  0: aabbaa
 2570:  1: bb
 2571: 
 2572: /^(?:aa(bb(?:b))?)+$/I
 2573: Capturing subpattern count = 1
 2574: Options: anchored
 2575: No first char
 2576: No need char
 2577:     aabbbaa
 2578:  0: aabbbaa
 2579:  1: bbb
 2580: 
 2581: /^(?:aa(b(?:bb))?)+$/I
 2582: Capturing subpattern count = 1
 2583: Options: anchored
 2584: No first char
 2585: No need char
 2586:     aabbbaa
 2587:  0: aabbbaa
 2588:  1: bbb
 2589: 
 2590: /^(?:aa(?:b(b))?)+$/I
 2591: Capturing subpattern count = 1
 2592: Options: anchored
 2593: No first char
 2594: No need char
 2595:     aabbaa
 2596:  0: aabbaa
 2597:  1: b
 2598: 
 2599: /^(?:aa(?:b(bb))?)+$/I
 2600: Capturing subpattern count = 1
 2601: Options: anchored
 2602: No first char
 2603: No need char
 2604:     aabbbaa
 2605:  0: aabbbaa
 2606:  1: bb
 2607: 
 2608: /^(aa(b(bb))?)+$/I
 2609: Capturing subpattern count = 3
 2610: Options: anchored
 2611: No first char
 2612: No need char
 2613:     aabbbaa
 2614:  0: aabbbaa
 2615:  1: aa
 2616:  2: bbb
 2617:  3: bb
 2618: 
 2619: /^(aa(bb(bb))?)+$/I
 2620: Capturing subpattern count = 3
 2621: Options: anchored
 2622: No first char
 2623: No need char
 2624:     aabbbbaa
 2625:  0: aabbbbaa
 2626:  1: aa
 2627:  2: bbbb
 2628:  3: bb
 2629: 
 2630: /--------------------------------------------------------------------/I
 2631: Capturing subpattern count = 0
 2632: No options
 2633: First char = '-'
 2634: Need char = '-'
 2635: 
 2636: /#/IxDZ
 2637: ------------------------------------------------------------------
 2638:         Bra
 2639:         Ket
 2640:         End
 2641: ------------------------------------------------------------------
 2642: Capturing subpattern count = 0
 2643: Options: extended
 2644: No first char
 2645: No need char
 2646: 
 2647: /a#/IxDZ
 2648: ------------------------------------------------------------------
 2649:         Bra
 2650:         a
 2651:         Ket
 2652:         End
 2653: ------------------------------------------------------------------
 2654: Capturing subpattern count = 0
 2655: Options: extended
 2656: First char = 'a'
 2657: No need char
 2658: 
 2659: /[\s]/DZ
 2660: ------------------------------------------------------------------
 2661:         Bra
 2662:         [\x09\x0a\x0c\x0d ]
 2663:         Ket
 2664:         End
 2665: ------------------------------------------------------------------
 2666: Capturing subpattern count = 0
 2667: No options
 2668: No first char
 2669: No need char
 2670: 
 2671: /[\S]/DZ
 2672: ------------------------------------------------------------------
 2673:         Bra
 2674:         [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
 2675:         Ket
 2676:         End
 2677: ------------------------------------------------------------------
 2678: Capturing subpattern count = 0
 2679: No options
 2680: No first char
 2681: No need char
 2682: 
 2683: /a(?i)b/DZ
 2684: ------------------------------------------------------------------
 2685:         Bra
 2686:         a
 2687:      /i b
 2688:         Ket
 2689:         End
 2690: ------------------------------------------------------------------
 2691: Capturing subpattern count = 0
 2692: No options
 2693: First char = 'a'
 2694: Need char = 'b' (caseless)
 2695:     ab
 2696:  0: ab
 2697:     aB
 2698:  0: aB
 2699:     *** Failers
 2700: No match
 2701:     AB
 2702: No match
 2703: 
 2704: /(a(?i)b)/DZ
 2705: ------------------------------------------------------------------
 2706:         Bra
 2707:         CBra 1
 2708:         a
 2709:      /i b
 2710:         Ket
 2711:         Ket
 2712:         End
 2713: ------------------------------------------------------------------
 2714: Capturing subpattern count = 1
 2715: No options
 2716: First char = 'a'
 2717: Need char = 'b' (caseless)
 2718:     ab
 2719:  0: ab
 2720:  1: ab
 2721:     aB
 2722:  0: aB
 2723:  1: aB
 2724:     *** Failers
 2725: No match
 2726:     AB
 2727: No match
 2728: 
 2729: /   (?i)abc/IxDZ
 2730: ------------------------------------------------------------------
 2731:         Bra
 2732:      /i abc
 2733:         Ket
 2734:         End
 2735: ------------------------------------------------------------------
 2736: Capturing subpattern count = 0
 2737: Options: caseless extended
 2738: First char = 'a' (caseless)
 2739: Need char = 'c' (caseless)
 2740: 
 2741: /#this is a comment
 2742:   (?i)abc/IxDZ
 2743: ------------------------------------------------------------------
 2744:         Bra
 2745:      /i abc
 2746:         Ket
 2747:         End
 2748: ------------------------------------------------------------------
 2749: Capturing subpattern count = 0
 2750: Options: caseless extended
 2751: First char = 'a' (caseless)
 2752: Need char = 'c' (caseless)
 2753: 
 2754: /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
 2755: ------------------------------------------------------------------
 2756:         Bra
 2757:         123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
 2758:         Ket
 2759:         End
 2760: ------------------------------------------------------------------
 2761: Capturing subpattern count = 0
 2762: No options
 2763: First char = '1'
 2764: Need char = '0'
 2765: 
 2766: /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
 2767: ------------------------------------------------------------------
 2768:         Bra
 2769:         123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
 2770:         Ket
 2771:         End
 2772: ------------------------------------------------------------------
 2773: Capturing subpattern count = 0
 2774: No options
 2775: First char = '1'
 2776: Need char = '0'
 2777: 
 2778: /\Q\E/DZ
 2779: ------------------------------------------------------------------
 2780:         Bra
 2781:         Ket
 2782:         End
 2783: ------------------------------------------------------------------
 2784: Capturing subpattern count = 0
 2785: No options
 2786: No first char
 2787: No need char
 2788:     \
 2789:  0: 
 2790: 
 2791: /\Q\Ex/DZ
 2792: ------------------------------------------------------------------
 2793:         Bra
 2794:         x
 2795:         Ket
 2796:         End
 2797: ------------------------------------------------------------------
 2798: Capturing subpattern count = 0
 2799: No options
 2800: First char = 'x'
 2801: No need char
 2802: 
 2803: / \Q\E/DZ
 2804: ------------------------------------------------------------------
 2805:         Bra
 2806:          
 2807:         Ket
 2808:         End
 2809: ------------------------------------------------------------------
 2810: Capturing subpattern count = 0
 2811: No options
 2812: First char = ' '
 2813: No need char
 2814: 
 2815: /a\Q\E/DZ
 2816: ------------------------------------------------------------------
 2817:         Bra
 2818:         a
 2819:         Ket
 2820:         End
 2821: ------------------------------------------------------------------
 2822: Capturing subpattern count = 0
 2823: No options
 2824: First char = 'a'
 2825: No need char
 2826:   abc
 2827:  0: a
 2828:   bca
 2829:  0: a
 2830:   bac
 2831:  0: a
 2832: 
 2833: /a\Q\Eb/DZ
 2834: ------------------------------------------------------------------
 2835:         Bra
 2836:         ab
 2837:         Ket
 2838:         End
 2839: ------------------------------------------------------------------
 2840: Capturing subpattern count = 0
 2841: No options
 2842: First char = 'a'
 2843: Need char = 'b'
 2844:   abc
 2845:  0: ab
 2846: 
 2847: /\Q\Eabc/DZ
 2848: ------------------------------------------------------------------
 2849:         Bra
 2850:         abc
 2851:         Ket
 2852:         End
 2853: ------------------------------------------------------------------
 2854: Capturing subpattern count = 0
 2855: No options
 2856: First char = 'a'
 2857: Need char = 'c'
 2858: 
 2859: /x*+\w/DZ
 2860: ------------------------------------------------------------------
 2861:         Bra
 2862:         x*+
 2863:         \w
 2864:         Ket
 2865:         End
 2866: ------------------------------------------------------------------
 2867: Capturing subpattern count = 0
 2868: No options
 2869: No first char
 2870: No need char
 2871:     *** Failers
 2872:  0: F
 2873:     xxxxx
 2874: No match
 2875: 
 2876: /x?+/DZ
 2877: ------------------------------------------------------------------
 2878:         Bra
 2879:         x?+
 2880:         Ket
 2881:         End
 2882: ------------------------------------------------------------------
 2883: Capturing subpattern count = 0
 2884: No options
 2885: No first char
 2886: No need char
 2887: 
 2888: /x++/DZ
 2889: ------------------------------------------------------------------
 2890:         Bra
 2891:         x++
 2892:         Ket
 2893:         End
 2894: ------------------------------------------------------------------
 2895: Capturing subpattern count = 0
 2896: No options
 2897: First char = 'x'
 2898: No need char
 2899: 
 2900: /x{1,3}+/DZ
 2901: ------------------------------------------------------------------
 2902:         Bra
 2903:         Once
 2904:         x
 2905:         x{0,2}
 2906:         Ket
 2907:         Ket
 2908:         End
 2909: ------------------------------------------------------------------
 2910: Capturing subpattern count = 0
 2911: No options
 2912: First char = 'x'
 2913: No need char
 2914: 
 2915: /(x)*+/DZ
 2916: ------------------------------------------------------------------
 2917:         Bra
 2918:         Braposzero
 2919:         CBraPos 1
 2920:         x
 2921:         KetRpos
 2922:         Ket
 2923:         End
 2924: ------------------------------------------------------------------
 2925: Capturing subpattern count = 1
 2926: No options
 2927: No first char
 2928: No need char
 2929: 
 2930: /^(\w++|\s++)*$/I
 2931: Capturing subpattern count = 1
 2932: Options: anchored
 2933: No first char
 2934: No need char
 2935:     now is the time for all good men to come to the aid of the party
 2936:  0: now is the time for all good men to come to the aid of the party
 2937:  1: party
 2938:     *** Failers
 2939: No match
 2940:     this is not a line with only words and spaces!
 2941: No match
 2942: 
 2943: /(\d++)(\w)/I
 2944: Capturing subpattern count = 2
 2945: No options
 2946: No first char
 2947: No need char
 2948:     12345a
 2949:  0: 12345a
 2950:  1: 12345
 2951:  2: a
 2952:     *** Failers
 2953: No match
 2954:     12345+
 2955: No match
 2956: 
 2957: /a++b/I
 2958: Capturing subpattern count = 0
 2959: No options
 2960: First char = 'a'
 2961: Need char = 'b'
 2962:     aaab
 2963:  0: aaab
 2964: 
 2965: /(a++b)/I
 2966: Capturing subpattern count = 1
 2967: No options
 2968: First char = 'a'
 2969: Need char = 'b'
 2970:     aaab
 2971:  0: aaab
 2972:  1: aaab
 2973: 
 2974: /(a++)b/I
 2975: Capturing subpattern count = 1
 2976: No options
 2977: First char = 'a'
 2978: Need char = 'b'
 2979:     aaab
 2980:  0: aaab
 2981:  1: aaa
 2982: 
 2983: /([^()]++|\([^()]*\))+/I
 2984: Capturing subpattern count = 1
 2985: No options
 2986: No first char
 2987: No need char
 2988:     ((abc(ade)ufh()()x
 2989:  0: abc(ade)ufh()()x
 2990:  1: x
 2991: 
 2992: /\(([^()]++|\([^()]+\))+\)/I
 2993: Capturing subpattern count = 1
 2994: No options
 2995: First char = '('
 2996: Need char = ')'
 2997:     (abc)
 2998:  0: (abc)
 2999:  1: abc
 3000:     (abc(def)xyz)
 3001:  0: (abc(def)xyz)
 3002:  1: xyz
 3003:     *** Failers
 3004: No match
 3005:     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 3006: No match
 3007: 
 3008: /(abc){1,3}+/DZ
 3009: ------------------------------------------------------------------
 3010:         Bra
 3011:         Once
 3012:         CBra 1
 3013:         abc
 3014:         Ket
 3015:         Brazero
 3016:         Bra
 3017:         CBra 1
 3018:         abc
 3019:         Ket
 3020:         Brazero
 3021:         CBra 1
 3022:         abc
 3023:         Ket
 3024:         Ket
 3025:         Ket
 3026:         Ket
 3027:         End
 3028: ------------------------------------------------------------------
 3029: Capturing subpattern count = 1
 3030: No options
 3031: First char = 'a'
 3032: Need char = 'c'
 3033: 
 3034: /a+?+/I
 3035: Failed: nothing to repeat at offset 3
 3036: 
 3037: /a{2,3}?+b/I
 3038: Failed: nothing to repeat at offset 7
 3039: 
 3040: /(?U)a+?+/I
 3041: Failed: nothing to repeat at offset 7
 3042: 
 3043: /a{2,3}?+b/IU
 3044: Failed: nothing to repeat at offset 7
 3045: 
 3046: /x(?U)a++b/DZ
 3047: ------------------------------------------------------------------
 3048:         Bra
 3049:         x
 3050:         a++
 3051:         b
 3052:         Ket
 3053:         End
 3054: ------------------------------------------------------------------
 3055: Capturing subpattern count = 0
 3056: No options
 3057: First char = 'x'
 3058: Need char = 'b'
 3059:     xaaaab
 3060:  0: xaaaab
 3061: 
 3062: /(?U)xa++b/DZ
 3063: ------------------------------------------------------------------
 3064:         Bra
 3065:         x
 3066:         a++
 3067:         b
 3068:         Ket
 3069:         End
 3070: ------------------------------------------------------------------
 3071: Capturing subpattern count = 0
 3072: Options: ungreedy
 3073: First char = 'x'
 3074: Need char = 'b'
 3075:     xaaaab
 3076:  0: xaaaab
 3077: 
 3078: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
 3079: ------------------------------------------------------------------
 3080:         Bra
 3081:         ^
 3082:         CBra 1
 3083:         CBra 2
 3084:         a+
 3085:         Ket
 3086:         CBra 3
 3087:         [ab]+?
 3088:         Ket
 3089:         CBra 4
 3090:         [bc]+
 3091:         Ket
 3092:         CBra 5
 3093:         \w*
 3094:         Ket
 3095:         Ket
 3096:         Ket
 3097:         End
 3098: ------------------------------------------------------------------
 3099: Capturing subpattern count = 5
 3100: Options: anchored
 3101: No first char
 3102: No need char
 3103: 
 3104: /^x(?U)a+b/DZ
 3105: ------------------------------------------------------------------
 3106:         Bra
 3107:         ^
 3108:         x
 3109:         a++
 3110:         b
 3111:         Ket
 3112:         End
 3113: ------------------------------------------------------------------
 3114: Capturing subpattern count = 0
 3115: Options: anchored
 3116: No first char
 3117: Need char = 'b'
 3118: 
 3119: /^x(?U)(a+)b/DZ
 3120: ------------------------------------------------------------------
 3121:         Bra
 3122:         ^
 3123:         x
 3124:         CBra 1
 3125:         a+?
 3126:         Ket
 3127:         b
 3128:         Ket
 3129:         End
 3130: ------------------------------------------------------------------
 3131: Capturing subpattern count = 1
 3132: Options: anchored
 3133: No first char
 3134: Need char = 'b'
 3135: 
 3136: /[.x.]/I
 3137: Failed: POSIX collating elements are not supported at offset 0
 3138: 
 3139: /[=x=]/I
 3140: Failed: POSIX collating elements are not supported at offset 0
 3141: 
 3142: /[:x:]/I
 3143: Failed: POSIX named classes are supported only within a class at offset 0
 3144: 
 3145: /\l/I
 3146: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3147: 
 3148: /\L/I
 3149: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3150: 
 3151: /\N{name}/I
 3152: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3153: 
 3154: /\u/I
 3155: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3156: 
 3157: /\U/I
 3158: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3159: 
 3160: /[/I
 3161: Failed: missing terminating ] for character class at offset 1
 3162: 
 3163: /[a-/I
 3164: Failed: missing terminating ] for character class at offset 3
 3165: 
 3166: /[[:space:]/I
 3167: Failed: missing terminating ] for character class at offset 10
 3168: 
 3169: /[\s]/IDZ
 3170: ------------------------------------------------------------------
 3171:         Bra
 3172:         [\x09\x0a\x0c\x0d ]
 3173:         Ket
 3174:         End
 3175: ------------------------------------------------------------------
 3176: Capturing subpattern count = 0
 3177: No options
 3178: No first char
 3179: No need char
 3180: 
 3181: /[[:space:]]/IDZ
 3182: ------------------------------------------------------------------
 3183:         Bra
 3184:         [\x09-\x0d ]
 3185:         Ket
 3186:         End
 3187: ------------------------------------------------------------------
 3188: Capturing subpattern count = 0
 3189: No options
 3190: No first char
 3191: No need char
 3192: 
 3193: /[[:space:]abcde]/IDZ
 3194: ------------------------------------------------------------------
 3195:         Bra
 3196:         [\x09-\x0d a-e]
 3197:         Ket
 3198:         End
 3199: ------------------------------------------------------------------
 3200: Capturing subpattern count = 0
 3201: No options
 3202: No first char
 3203: No need char
 3204: 
 3205: /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
 3206: Capturing subpattern count = 0
 3207: Options: extended
 3208: First char = '<'
 3209: Need char = '>'
 3210:     <>
 3211:  0: <>
 3212:     <abcd>
 3213:  0: <abcd>
 3214:     <abc <123> hij>
 3215:  0: <abc <123> hij>
 3216:     <abc <def> hij>
 3217:  0: <def>
 3218:     <abc<>def>
 3219:  0: <abc<>def>
 3220:     <abc<>
 3221:  0: <>
 3222:     *** Failers
 3223: No match
 3224:     <abc
 3225: No match
 3226: 
 3227: |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
 3228: ------------------------------------------------------------------
 3229:         Bra
 3230:         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
 3231:         \b
 3232:         Ket
 3233:         End
 3234: ------------------------------------------------------------------
 3235: Capturing subpattern count = 0
 3236: No options
 3237: First char = '8'
 3238: Need char = 'X'
 3239: Max lookbehind = 1
 3240: 
 3241: |\$\<\.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
 3242: ------------------------------------------------------------------
 3243:         Bra
 3244:         $<.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
 3245:         \b
 3246:         Ket
 3247:         End
 3248: ------------------------------------------------------------------
 3249: Capturing subpattern count = 0
 3250: No options
 3251: First char = '$'
 3252: Need char = 'X'
 3253: Max lookbehind = 1
 3254: 
 3255: /(.*)\d+\1/I
 3256: Capturing subpattern count = 1
 3257: Max back reference = 1
 3258: No options
 3259: No first char
 3260: No need char
 3261: 
 3262: /(.*)\d+/I
 3263: Capturing subpattern count = 1
 3264: No options
 3265: First char at start or follows newline
 3266: No need char
 3267: 
 3268: /(.*)\d+\1/Is
 3269: Capturing subpattern count = 1
 3270: Max back reference = 1
 3271: Options: dotall
 3272: No first char
 3273: No need char
 3274: 
 3275: /(.*)\d+/Is
 3276: Capturing subpattern count = 1
 3277: Options: anchored dotall
 3278: No first char
 3279: No need char
 3280: 
 3281: /(.*(xyz))\d+\2/I
 3282: Capturing subpattern count = 2
 3283: Max back reference = 2
 3284: No options
 3285: First char at start or follows newline
 3286: Need char = 'z'
 3287: 
 3288: /((.*))\d+\1/I
 3289: Capturing subpattern count = 2
 3290: Max back reference = 1
 3291: No options
 3292: No first char
 3293: No need char
 3294:     abc123bc
 3295:  0: bc123bc
 3296:  1: bc
 3297:  2: bc
 3298: 
 3299: /a[b]/I
 3300: Capturing subpattern count = 0
 3301: No options
 3302: First char = 'a'
 3303: Need char = 'b'
 3304: 
 3305: /(?=a).*/I
 3306: Capturing subpattern count = 0
 3307: No options
 3308: First char = 'a'
 3309: No need char
 3310: 
 3311: /(?=abc).xyz/IiI
 3312: Capturing subpattern count = 0
 3313: Options: caseless
 3314: First char = 'a' (caseless)
 3315: Need char = 'z' (caseless)
 3316: 
 3317: /(?=abc)(?i).xyz/I
 3318: Capturing subpattern count = 0
 3319: No options
 3320: First char = 'a'
 3321: Need char = 'z' (caseless)
 3322: 
 3323: /(?=a)(?=b)/I
 3324: Capturing subpattern count = 0
 3325: No options
 3326: First char = 'a'
 3327: No need char
 3328: 
 3329: /(?=.)a/I
 3330: Capturing subpattern count = 0
 3331: No options
 3332: First char = 'a'
 3333: No need char
 3334: 
 3335: /((?=abcda)a)/I
 3336: Capturing subpattern count = 1
 3337: No options
 3338: First char = 'a'
 3339: Need char = 'a'
 3340: 
 3341: /((?=abcda)ab)/I
 3342: Capturing subpattern count = 1
 3343: No options
 3344: First char = 'a'
 3345: Need char = 'b'
 3346: 
 3347: /()a/I
 3348: Capturing subpattern count = 1
 3349: No options
 3350: No first char
 3351: Need char = 'a'
 3352: 
 3353: /(?(1)ab|ac)(.)/I
 3354: Capturing subpattern count = 1
 3355: No options
 3356: First char = 'a'
 3357: No need char
 3358: 
 3359: /(?(1)abz|acz)(.)/I
 3360: Capturing subpattern count = 1
 3361: No options
 3362: First char = 'a'
 3363: Need char = 'z'
 3364: 
 3365: /(?(1)abz)(.)/I
 3366: Capturing subpattern count = 1
 3367: No options
 3368: No first char
 3369: No need char
 3370: 
 3371: /(?(1)abz)(1)23/I
 3372: Capturing subpattern count = 1
 3373: No options
 3374: No first char
 3375: Need char = '3'
 3376: 
 3377: /(a)+/I
 3378: Capturing subpattern count = 1
 3379: No options
 3380: First char = 'a'
 3381: No need char
 3382: 
 3383: /(a){2,3}/I
 3384: Capturing subpattern count = 1
 3385: No options
 3386: First char = 'a'
 3387: Need char = 'a'
 3388: 
 3389: /(a)*/I
 3390: Capturing subpattern count = 1
 3391: No options
 3392: No first char
 3393: No need char
 3394: 
 3395: /[a]/I
 3396: Capturing subpattern count = 0
 3397: No options
 3398: First char = 'a'
 3399: No need char
 3400: 
 3401: /[ab]/I
 3402: Capturing subpattern count = 0
 3403: No options
 3404: No first char
 3405: No need char
 3406: 
 3407: /[ab]/IS
 3408: Capturing subpattern count = 0
 3409: No options
 3410: No first char
 3411: No need char
 3412: Subject length lower bound = 1
 3413: Starting byte set: a b 
 3414: 
 3415: /[^a]/I
 3416: Capturing subpattern count = 0
 3417: No options
 3418: No first char
 3419: No need char
 3420: 
 3421: /\d456/I
 3422: Capturing subpattern count = 0
 3423: No options
 3424: No first char
 3425: Need char = '6'
 3426: 
 3427: /\d456/IS
 3428: Capturing subpattern count = 0
 3429: No options
 3430: No first char
 3431: Need char = '6'
 3432: Subject length lower bound = 4
 3433: Starting byte set: 0 1 2 3 4 5 6 7 8 9 
 3434: 
 3435: /a^b/I
 3436: Capturing subpattern count = 0
 3437: No options
 3438: First char = 'a'
 3439: Need char = 'b'
 3440: 
 3441: /^a/Im
 3442: Capturing subpattern count = 0
 3443: Options: multiline
 3444: First char at start or follows newline
 3445: Need char = 'a'
 3446:   abcde
 3447:  0: a
 3448:   xy\nabc
 3449:  0: a
 3450:   *** Failers
 3451: No match
 3452:   xyabc
 3453: No match
 3454: 
 3455: /c|abc/I
 3456: Capturing subpattern count = 0
 3457: No options
 3458: No first char
 3459: Need char = 'c'
 3460: 
 3461: /(?i)[ab]/IS
 3462: Capturing subpattern count = 0
 3463: Options: caseless
 3464: No first char
 3465: No need char
 3466: Subject length lower bound = 1
 3467: Starting byte set: A B a b 
 3468: 
 3469: /[ab](?i)cd/IS
 3470: Capturing subpattern count = 0
 3471: No options
 3472: No first char
 3473: Need char = 'd' (caseless)
 3474: Subject length lower bound = 3
 3475: Starting byte set: a b 
 3476: 
 3477: /abc(?C)def/I
 3478: Capturing subpattern count = 0
 3479: No options
 3480: First char = 'a'
 3481: Need char = 'f'
 3482:     abcdef
 3483: --->abcdef
 3484:   0 ^  ^       d
 3485:  0: abcdef
 3486:     1234abcdef
 3487: --->1234abcdef
 3488:   0     ^  ^       d
 3489:  0: abcdef
 3490:     *** Failers
 3491: No match
 3492:     abcxyz
 3493: No match
 3494:     abcxyzf
 3495: --->abcxyzf
 3496:   0 ^  ^        d
 3497: No match
 3498: 
 3499: /abc(?C)de(?C1)f/I
 3500: Capturing subpattern count = 0
 3501: No options
 3502: First char = 'a'
 3503: Need char = 'f'
 3504:     123abcdef
 3505: --->123abcdef
 3506:   0    ^  ^       d
 3507:   1    ^    ^     f
 3508:  0: abcdef
 3509: 
 3510: /(?C1)\dabc(?C2)def/IS
 3511: Capturing subpattern count = 0
 3512: No options
 3513: No first char
 3514: Need char = 'f'
 3515: Subject length lower bound = 7
 3516: Starting byte set: 0 1 2 3 4 5 6 7 8 9 
 3517:     1234abcdef
 3518: --->1234abcdef
 3519:   1 ^              \d
 3520:   1  ^             \d
 3521:   1   ^            \d
 3522:   1    ^           \d
 3523:   2    ^   ^       d
 3524:  0: 4abcdef
 3525:     *** Failers
 3526: No match
 3527:     abcdef
 3528: No match
 3529: 
 3530: /(?C1)\dabc(?C2)def/ISS
 3531: Capturing subpattern count = 0
 3532: No options
 3533: No first char
 3534: Need char = 'f'
 3535:     1234abcdef
 3536: --->1234abcdef
 3537:   1 ^              \d
 3538:   1  ^             \d
 3539:   1   ^            \d
 3540:   1    ^           \d
 3541:   2    ^   ^       d
 3542:  0: 4abcdef
 3543:     *** Failers
 3544: No match
 3545:     abcdef
 3546: --->abcdef
 3547:   1 ^          \d
 3548:   1  ^         \d
 3549:   1   ^        \d
 3550:   1    ^       \d
 3551:   1     ^      \d
 3552:   1      ^     \d
 3553: No match
 3554: 
 3555: /(?C255)ab/I
 3556: Capturing subpattern count = 0
 3557: No options
 3558: First char = 'a'
 3559: Need char = 'b'
 3560: 
 3561: /(?C256)ab/I
 3562: Failed: number after (?C is > 255 at offset 6
 3563: 
 3564: /(?Cab)xx/I
 3565: Failed: closing ) for (?C expected at offset 3
 3566: 
 3567: /(?C12vr)x/I
 3568: Failed: closing ) for (?C expected at offset 5
 3569: 
 3570: /abc(?C)def/I
 3571: Capturing subpattern count = 0
 3572: No options
 3573: First char = 'a'
 3574: Need char = 'f'
 3575:     *** Failers
 3576: No match
 3577:     \x83\x0\x61bcdef
 3578: --->\x83\x00abcdef
 3579:   0         ^  ^       d
 3580:  0: abcdef
 3581: 
 3582: /(abc)(?C)de(?C1)f/I
 3583: Capturing subpattern count = 1
 3584: No options
 3585: First char = 'a'
 3586: Need char = 'f'
 3587:     123abcdef
 3588: --->123abcdef
 3589:   0    ^  ^       d
 3590:   1    ^    ^     f
 3591:  0: abcdef
 3592:  1: abc
 3593:     123abcdef\C+
 3594: Callout 0: last capture = 1
 3595:  0: <unset>
 3596:  1: abc
 3597: --->123abcdef
 3598:        ^  ^       d
 3599: Callout 1: last capture = 1
 3600:  0: <unset>
 3601:  1: abc
 3602: --->123abcdef
 3603:        ^    ^     f
 3604:  0: abcdef
 3605:  1: abc
 3606:     123abcdef\C-
 3607:  0: abcdef
 3608:  1: abc
 3609:     *** Failers
 3610: No match
 3611:     123abcdef\C!1
 3612: --->123abcdef
 3613:   0    ^  ^       d
 3614:   1    ^    ^     f
 3615: No match
 3616: 
 3617: /(?C0)(abc(?C1))*/I
 3618: Capturing subpattern count = 1
 3619: No options
 3620: No first char
 3621: No need char
 3622:     abcabcabc
 3623: --->abcabcabc
 3624:   0 ^             (abc(?C1))*
 3625:   1 ^  ^          )
 3626:   1 ^     ^       )
 3627:   1 ^        ^    )
 3628:  0: abcabcabc
 3629:  1: abc
 3630:     abcabc\C!1!3
 3631: --->abcabc
 3632:   0 ^          (abc(?C1))*
 3633:   1 ^  ^       )
 3634:   1 ^     ^    )
 3635:  0: abcabc
 3636:  1: abc
 3637:     *** Failers
 3638: --->*** Failers
 3639:   0 ^               (abc(?C1))*
 3640:  0: 
 3641:     abcabcabc\C!1!3
 3642: --->abcabcabc
 3643:   0 ^             (abc(?C1))*
 3644:   1 ^  ^          )
 3645:   1 ^     ^       )
 3646:   1 ^        ^    )
 3647:  0: abcabc
 3648:  1: abc
 3649: 
 3650: /(\d{3}(?C))*/I
 3651: Capturing subpattern count = 1
 3652: No options
 3653: No first char
 3654: No need char
 3655:     123\C+
 3656: Callout 0: last capture = -1
 3657:  0: <unset>
 3658: --->123
 3659:     ^  ^    )
 3660:  0: 123
 3661:  1: 123
 3662:     123456\C+
 3663: Callout 0: last capture = -1
 3664:  0: <unset>
 3665: --->123456
 3666:     ^  ^       )
 3667: Callout 0: last capture = 1
 3668:  0: <unset>
 3669:  1: 123
 3670: --->123456
 3671:     ^     ^    )
 3672:  0: 123456
 3673:  1: 456
 3674:     123456789\C+
 3675: Callout 0: last capture = -1
 3676:  0: <unset>
 3677: --->123456789
 3678:     ^  ^          )
 3679: Callout 0: last capture = 1
 3680:  0: <unset>
 3681:  1: 123
 3682: --->123456789
 3683:     ^     ^       )
 3684: Callout 0: last capture = 1
 3685:  0: <unset>
 3686:  1: 456
 3687: --->123456789
 3688:     ^        ^    )
 3689:  0: 123456789
 3690:  1: 789
 3691: 
 3692: /((xyz)(?C)p|(?C1)xyzabc)/I
 3693: Capturing subpattern count = 2
 3694: No options
 3695: First char = 'x'
 3696: No need char
 3697:     xyzabc\C+
 3698: Callout 0: last capture = 2
 3699:  0: <unset>
 3700:  1: <unset>
 3701:  2: xyz
 3702: --->xyzabc
 3703:     ^  ^       p
 3704: Callout 1: last capture = -1
 3705:  0: <unset>
 3706: --->xyzabc
 3707:     ^          x
 3708:  0: xyzabc
 3709:  1: xyzabc
 3710: 
 3711: /(X)((xyz)(?C)p|(?C1)xyzabc)/I
 3712: Capturing subpattern count = 3
 3713: No options
 3714: First char = 'X'
 3715: Need char = 'x'
 3716:     Xxyzabc\C+
 3717: Callout 0: last capture = 3
 3718:  0: <unset>
 3719:  1: X
 3720:  2: <unset>
 3721:  3: xyz
 3722: --->Xxyzabc
 3723:     ^   ^       p
 3724: Callout 1: last capture = 1
 3725:  0: <unset>
 3726:  1: X
 3727: --->Xxyzabc
 3728:     ^^          x
 3729:  0: Xxyzabc
 3730:  1: X
 3731:  2: xyzabc
 3732: 
 3733: /(?=(abc))(?C)abcdef/I
 3734: Capturing subpattern count = 1
 3735: No options
 3736: First char = 'a'
 3737: Need char = 'f'
 3738:     abcdef\C+
 3739: Callout 0: last capture = 1
 3740:  0: <unset>
 3741:  1: abc
 3742: --->abcdef
 3743:     ^          a
 3744:  0: abcdef
 3745:  1: abc
 3746: 
 3747: /(?!(abc)(?C1)d)(?C2)abcxyz/I
 3748: Capturing subpattern count = 1
 3749: No options
 3750: First char = 'a'
 3751: Need char = 'z'
 3752:     abcxyz\C+
 3753: Callout 1: last capture = 1
 3754:  0: <unset>
 3755:  1: abc
 3756: --->abcxyz
 3757:     ^  ^       d
 3758: Callout 2: last capture = -1
 3759:  0: <unset>
 3760: --->abcxyz
 3761:     ^          a
 3762:  0: abcxyz
 3763: 
 3764: /(?<=(abc)(?C))xyz/I
 3765: Capturing subpattern count = 1
 3766: No options
 3767: First char = 'x'
 3768: Need char = 'z'
 3769: Max lookbehind = 3
 3770:    abcxyz\C+
 3771: Callout 0: last capture = 1
 3772:  0: <unset>
 3773:  1: abc
 3774: --->abcxyz
 3775:        ^       )
 3776:  0: xyz
 3777:  1: abc
 3778: 
 3779: /a(b+)(c*)(?C1)/I
 3780: Capturing subpattern count = 2
 3781: No options
 3782: First char = 'a'
 3783: Need char = 'b'
 3784:     abbbbbccc\C*1
 3785: --->abbbbbccc
 3786:   1 ^        ^    
 3787: Callout data = 1
 3788:   1 ^       ^     
 3789: Callout data = 1
 3790:   1 ^      ^      
 3791: Callout data = 1
 3792:   1 ^     ^       
 3793: Callout data = 1
 3794:   1 ^    ^        
 3795: Callout data = 1
 3796:   1 ^   ^         
 3797: Callout data = 1
 3798:   1 ^  ^          
 3799: Callout data = 1
 3800:   1 ^ ^           
 3801: Callout data = 1
 3802: No match
 3803: 
 3804: /a(b+?)(c*?)(?C1)/I
 3805: Capturing subpattern count = 2
 3806: No options
 3807: First char = 'a'
 3808: Need char = 'b'
 3809:     abbbbbccc\C*1
 3810: --->abbbbbccc
 3811:   1 ^ ^           
 3812: Callout data = 1
 3813:   1 ^  ^          
 3814: Callout data = 1
 3815:   1 ^   ^         
 3816: Callout data = 1
 3817:   1 ^    ^        
 3818: Callout data = 1
 3819:   1 ^     ^       
 3820: Callout data = 1
 3821:   1 ^      ^      
 3822: Callout data = 1
 3823:   1 ^       ^     
 3824: Callout data = 1
 3825:   1 ^        ^    
 3826: Callout data = 1
 3827: No match
 3828: 
 3829: /(?C)abc/I
 3830: Capturing subpattern count = 0
 3831: No options
 3832: First char = 'a'
 3833: Need char = 'c'
 3834: 
 3835: /(?C)^abc/I
 3836: Capturing subpattern count = 0
 3837: Options: anchored
 3838: No first char
 3839: No need char
 3840: 
 3841: /(?C)a|b/IS
 3842: Capturing subpattern count = 0
 3843: No options
 3844: No first char
 3845: No need char
 3846: Subject length lower bound = 1
 3847: Starting byte set: a b 
 3848: 
 3849: /(?R)/I
 3850: Failed: recursive call could loop indefinitely at offset 3
 3851: 
 3852: /(a|(?R))/I
 3853: Failed: recursive call could loop indefinitely at offset 6
 3854: 
 3855: /(ab|(bc|(de|(?R))))/I
 3856: Failed: recursive call could loop indefinitely at offset 15
 3857: 
 3858: /x(ab|(bc|(de|(?R))))/I
 3859: Capturing subpattern count = 3
 3860: No options
 3861: First char = 'x'
 3862: No need char
 3863:     xab
 3864:  0: xab
 3865:  1: ab
 3866:     xbc
 3867:  0: xbc
 3868:  1: bc
 3869:  2: bc
 3870:     xde
 3871:  0: xde
 3872:  1: de
 3873:  2: de
 3874:  3: de
 3875:     xxab
 3876:  0: xxab
 3877:  1: xab
 3878:  2: xab
 3879:  3: xab
 3880:     xxxab
 3881:  0: xxxab
 3882:  1: xxab
 3883:  2: xxab
 3884:  3: xxab
 3885:     *** Failers
 3886: No match
 3887:     xyab
 3888: No match
 3889: 
 3890: /(ab|(bc|(de|(?1))))/I
 3891: Failed: recursive call could loop indefinitely at offset 15
 3892: 
 3893: /x(ab|(bc|(de|(?1)x)x)x)/I
 3894: Failed: recursive call could loop indefinitely at offset 16
 3895: 
 3896: /^([^()]|\((?1)*\))*$/I
 3897: Capturing subpattern count = 1
 3898: Options: anchored
 3899: No first char
 3900: No need char
 3901:     abc
 3902:  0: abc
 3903:  1: c
 3904:     a(b)c
 3905:  0: a(b)c
 3906:  1: c
 3907:     a(b(c))d
 3908:  0: a(b(c))d
 3909:  1: d
 3910:     *** Failers)
 3911: No match
 3912:     a(b(c)d
 3913: No match
 3914: 
 3915: /^>abc>([^()]|\((?1)*\))*<xyz<$/I
 3916: Capturing subpattern count = 1
 3917: Options: anchored
 3918: No first char
 3919: Need char = '<'
 3920:    >abc>123<xyz<
 3921:  0: >abc>123<xyz<
 3922:  1: 3
 3923:    >abc>1(2)3<xyz<
 3924:  0: >abc>1(2)3<xyz<
 3925:  1: 3
 3926:    >abc>(1(2)3)<xyz<
 3927:  0: >abc>(1(2)3)<xyz<
 3928:  1: (1(2)3)
 3929: 
 3930: /(a(?1)b)/DZ
 3931: ------------------------------------------------------------------
 3932:         Bra
 3933:         CBra 1
 3934:         a
 3935:         Recurse
 3936:         b
 3937:         Ket
 3938:         Ket
 3939:         End
 3940: ------------------------------------------------------------------
 3941: Capturing subpattern count = 1
 3942: No options
 3943: First char = 'a'
 3944: Need char = 'b'
 3945: 
 3946: /(a(?1)+b)/DZ
 3947: ------------------------------------------------------------------
 3948:         Bra
 3949:         CBra 1
 3950:         a
 3951:         Once
 3952:         Recurse
 3953:         KetRmax
 3954:         b
 3955:         Ket
 3956:         Ket
 3957:         End
 3958: ------------------------------------------------------------------
 3959: Capturing subpattern count = 1
 3960: No options
 3961: First char = 'a'
 3962: Need char = 'b'
 3963: 
 3964: /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
 3965: Capturing subpattern count = 2
 3966: Options: anchored
 3967: No first char
 3968: No need char
 3969:     12
 3970:  0: 12
 3971:  1: 12
 3972:     (((2+2)*-3)-7)
 3973:  0: (((2+2)*-3)-7)
 3974:  1: (((2+2)*-3)-7)
 3975:  2: -
 3976:     -12
 3977:  0: -12
 3978:  1: -12
 3979:     *** Failers
 3980: No match
 3981:     ((2+2)*-3)-7)
 3982: No match
 3983: 
 3984: /^(x(y|(?1){2})z)/I
 3985: Capturing subpattern count = 2
 3986: Options: anchored
 3987: No first char
 3988: No need char
 3989:     xyz
 3990:  0: xyz
 3991:  1: xyz
 3992:  2: y
 3993:     xxyzxyzz
 3994:  0: xxyzxyzz
 3995:  1: xxyzxyzz
 3996:  2: xyzxyz
 3997:     *** Failers
 3998: No match
 3999:     xxyzz
 4000: No match
 4001:     xxyzxyzxyzz
 4002: No match
 4003: 
 4004: /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
 4005: Capturing subpattern count = 2
 4006: Options: extended
 4007: First char = '<'
 4008: Need char = '>'
 4009:     <>
 4010:  0: <>
 4011:  1: <>
 4012:  2: <>
 4013:     <abcd>
 4014:  0: <abcd>
 4015:  1: <abcd>
 4016:  2: <abcd>
 4017:     <abc <123> hij>
 4018:  0: <abc <123> hij>
 4019:  1: <abc <123> hij>
 4020:  2: <abc <123> hij>
 4021:     <abc <def> hij>
 4022:  0: <def>
 4023:  1: <def>
 4024:  2: <def>
 4025:     <abc<>def>
 4026:  0: <abc<>def>
 4027:  1: <abc<>def>
 4028:  2: <abc<>def>
 4029:     <abc<>
 4030:  0: <>
 4031:  1: <>
 4032:  2: <>
 4033:     *** Failers
 4034: No match
 4035:     <abc
 4036: No match
 4037: 
 4038: /(?1)/I
 4039: Failed: reference to non-existent subpattern at offset 3
 4040: 
 4041: /((?2)(abc)/I
 4042: Failed: missing ) at offset 10
 4043: 
 4044: /^(abc)def(?1)/I
 4045: Capturing subpattern count = 1
 4046: Options: anchored
 4047: No first char
 4048: No need char
 4049:     abcdefabc
 4050:  0: abcdefabc
 4051:  1: abc
 4052: 
 4053: /^(a|b|c)=(?1)+/I
 4054: Capturing subpattern count = 1
 4055: Options: anchored
 4056: No first char
 4057: No need char
 4058:     a=a
 4059:  0: a=a
 4060:  1: a
 4061:     a=b
 4062:  0: a=b
 4063:  1: a
 4064:     a=bc
 4065:  0: a=bc
 4066:  1: a
 4067: 
 4068: /^(a|b|c)=((?1))+/I
 4069: Capturing subpattern count = 2
 4070: Options: anchored
 4071: No first char
 4072: No need char
 4073:     a=a
 4074:  0: a=a
 4075:  1: a
 4076:  2: a
 4077:     a=b
 4078:  0: a=b
 4079:  1: a
 4080:  2: b
 4081:     a=bc
 4082:  0: a=bc
 4083:  1: a
 4084:  2: c
 4085: 
 4086: /a(?P<name1>b|c)d(?P<longername2>e)/DZ
 4087: ------------------------------------------------------------------
 4088:         Bra
 4089:         a
 4090:         CBra 1
 4091:         b
 4092:         Alt
 4093:         c
 4094:         Ket
 4095:         d
 4096:         CBra 2
 4097:         e
 4098:         Ket
 4099:         Ket
 4100:         End
 4101: ------------------------------------------------------------------
 4102: Capturing subpattern count = 2
 4103: Named capturing subpatterns:
 4104:   longername2   2
 4105:   name1         1
 4106: No options
 4107: First char = 'a'
 4108: Need char = 'e'
 4109:     abde
 4110:  0: abde
 4111:  1: b
 4112:  2: e
 4113:     acde
 4114:  0: acde
 4115:  1: c
 4116:  2: e
 4117: 
 4118: /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
 4119: ------------------------------------------------------------------
 4120:         Bra
 4121:         Bra
 4122:         a
 4123:         CBra 1
 4124:         c
 4125:         CBra 2
 4126:         d
 4127:         Ket
 4128:         Ket
 4129:         Ket
 4130:         CBra 3
 4131:         a
 4132:         Ket
 4133:         Ket
 4134:         End
 4135: ------------------------------------------------------------------
 4136: Capturing subpattern count = 3
 4137: Named capturing subpatterns:
 4138:   a   3
 4139:   c   1
 4140:   d   2
 4141: No options
 4142: First char = 'a'
 4143: Need char = 'a'
 4144: 
 4145: /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
 4146: ------------------------------------------------------------------
 4147:         Bra
 4148:         CBra 1
 4149:         a
 4150:         Ket
 4151:         Any
 4152:         Any
 4153:         Any
 4154:         \1
 4155:         bbb
 4156:         Recurse
 4157:         d
 4158:         Ket
 4159:         End
 4160: ------------------------------------------------------------------
 4161: Capturing subpattern count = 1
 4162: Max back reference = 1
 4163: Named capturing subpatterns:
 4164:   a   1
 4165: No options
 4166: First char = 'a'
 4167: Need char = 'd'
 4168: 
 4169: /^\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
 4170: Capturing subpattern count = 4
 4171: Max back reference = 4
 4172: Named capturing subpatterns:
 4173:   four    4
 4174:   one     1
 4175:   three   3
 4176:   two     2
 4177: Options: anchored caseless
 4178: No first char
 4179: No need char
 4180:     1221
 4181:  0: 1221
 4182:  1: 1221
 4183:  2: 1
 4184:     Satan, oscillate my metallic sonatas!
 4185:  0: Satan, oscillate my metallic sonatas!
 4186:  1: <unset>
 4187:  2: <unset>
 4188:  3: Satan, oscillate my metallic sonatas
 4189:  4: S
 4190:     A man, a plan, a canal: Panama!
 4191:  0: A man, a plan, a canal: Panama!
 4192:  1: <unset>
 4193:  2: <unset>
 4194:  3: A man, a plan, a canal: Panama
 4195:  4: A
 4196:     Able was I ere I saw Elba.
 4197:  0: Able was I ere I saw Elba.
 4198:  1: <unset>
 4199:  2: <unset>
 4200:  3: Able was I ere I saw Elba
 4201:  4: A
 4202:     *** Failers
 4203: No match
 4204:     The quick brown fox
 4205: No match
 4206: 
 4207: /((?(R)a|b))\1(?1)?/I
 4208: Capturing subpattern count = 1
 4209: Max back reference = 1
 4210: No options
 4211: No first char
 4212: No need char
 4213:   bb
 4214:  0: bb
 4215:  1: b
 4216:   bbaa
 4217:  0: bba
 4218:  1: b
 4219: 
 4220: /(.*)a/Is
 4221: Capturing subpattern count = 1
 4222: Options: anchored dotall
 4223: No first char
 4224: Need char = 'a'
 4225: 
 4226: /(.*)a\1/Is
 4227: Capturing subpattern count = 1
 4228: Max back reference = 1
 4229: Options: dotall
 4230: No first char
 4231: Need char = 'a'
 4232: 
 4233: /(.*)a(b)\2/Is
 4234: Capturing subpattern count = 2
 4235: Max back reference = 2
 4236: Options: anchored dotall
 4237: No first char
 4238: Need char = 'b'
 4239: 
 4240: /((.*)a|(.*)b)z/Is
 4241: Capturing subpattern count = 3
 4242: Options: anchored dotall
 4243: No first char
 4244: Need char = 'z'
 4245: 
 4246: /((.*)a|(.*)b)z\1/Is
 4247: Capturing subpattern count = 3
 4248: Max back reference = 1
 4249: Options: dotall
 4250: No first char
 4251: Need char = 'z'
 4252: 
 4253: /((.*)a|(.*)b)z\2/Is
 4254: Capturing subpattern count = 3
 4255: Max back reference = 2
 4256: Options: dotall
 4257: No first char
 4258: Need char = 'z'
 4259: 
 4260: /((.*)a|(.*)b)z\3/Is
 4261: Capturing subpattern count = 3
 4262: Max back reference = 3
 4263: Options: dotall
 4264: No first char
 4265: Need char = 'z'
 4266: 
 4267: /((.*)a|^(.*)b)z\3/Is
 4268: Capturing subpattern count = 3
 4269: Max back reference = 3
 4270: Options: anchored dotall
 4271: No first char
 4272: Need char = 'z'
 4273: 
 4274: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
 4275: Capturing subpattern count = 31
 4276: Options: anchored dotall
 4277: No first char
 4278: No need char
 4279: 
 4280: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
 4281: Capturing subpattern count = 31
 4282: Max back reference = 31
 4283: Options: dotall
 4284: No first char
 4285: No need char
 4286: 
 4287: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
 4288: Capturing subpattern count = 32
 4289: Max back reference = 32
 4290: Options: dotall
 4291: No first char
 4292: No need char
 4293: 
 4294: /(a)(bc)/INDZ
 4295: ------------------------------------------------------------------
 4296:         Bra
 4297:         Bra
 4298:         a
 4299:         Ket
 4300:         Bra
 4301:         bc
 4302:         Ket
 4303:         Ket
 4304:         End
 4305: ------------------------------------------------------------------
 4306: Capturing subpattern count = 0
 4307: Options: no_auto_capture
 4308: First char = 'a'
 4309: Need char = 'c'
 4310:   abc
 4311:  0: abc
 4312: 
 4313: /(?P<one>a)(bc)/INDZ
 4314: ------------------------------------------------------------------
 4315:         Bra
 4316:         CBra 1
 4317:         a
 4318:         Ket
 4319:         Bra
 4320:         bc
 4321:         Ket
 4322:         Ket
 4323:         End
 4324: ------------------------------------------------------------------
 4325: Capturing subpattern count = 1
 4326: Named capturing subpatterns:
 4327:   one   1
 4328: Options: no_auto_capture
 4329: First char = 'a'
 4330: Need char = 'c'
 4331:   abc
 4332:  0: abc
 4333:  1: a
 4334: 
 4335: /(a)(?P<named>bc)/INDZ
 4336: ------------------------------------------------------------------
 4337:         Bra
 4338:         Bra
 4339:         a
 4340:         Ket
 4341:         CBra 1
 4342:         bc
 4343:         Ket
 4344:         Ket
 4345:         End
 4346: ------------------------------------------------------------------
 4347: Capturing subpattern count = 1
 4348: Named capturing subpatterns:
 4349:   named   1
 4350: Options: no_auto_capture
 4351: First char = 'a'
 4352: Need char = 'c'
 4353: 
 4354: /(a+)*zz/I
 4355: Capturing subpattern count = 1
 4356: No options
 4357: No first char
 4358: Need char = 'z'
 4359:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
 4360: Minimum match() limit = 8
 4361: Minimum match() recursion limit = 6
 4362:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
 4363:  1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 4364:   aaaaaaaaaaaaaz\M
 4365: Minimum match() limit = 32768
 4366: Minimum match() recursion limit = 42
 4367: No match
 4368: 
 4369: /(aaa(?C1)bbb|ab)/I
 4370: Capturing subpattern count = 1
 4371: No options
 4372: First char = 'a'
 4373: Need char = 'b'
 4374:    aaabbb
 4375: --->aaabbb
 4376:   1 ^  ^       b
 4377:  0: aaabbb
 4378:  1: aaabbb
 4379:    aaabbb\C*0
 4380: --->aaabbb
 4381:   1 ^  ^       b
 4382:  0: aaabbb
 4383:  1: aaabbb
 4384:    aaabbb\C*1
 4385: --->aaabbb
 4386:   1 ^  ^       b
 4387: Callout data = 1
 4388:  0: ab
 4389:  1: ab
 4390:    aaabbb\C*-1
 4391: --->aaabbb
 4392:   1 ^  ^       b
 4393: Callout data = -1
 4394: No match
 4395: 
 4396: /ab(?P<one>cd)ef(?P<two>gh)/I
 4397: Capturing subpattern count = 2
 4398: Named capturing subpatterns:
 4399:   one   1
 4400:   two   2
 4401: No options
 4402: First char = 'a'
 4403: Need char = 'h'
 4404:     abcdefgh
 4405:  0: abcdefgh
 4406:  1: cd
 4407:  2: gh
 4408:     abcdefgh\C1\Gtwo
 4409:  0: abcdefgh
 4410:  1: cd
 4411:  2: gh
 4412:  1C cd (2)
 4413:   G gh (2) two
 4414:     abcdefgh\Cone\Ctwo
 4415:  0: abcdefgh
 4416:  1: cd
 4417:  2: gh
 4418:   C cd (2) one
 4419:   C gh (2) two
 4420:     abcdefgh\Cthree
 4421: no parentheses with name "three"
 4422:  0: abcdefgh
 4423:  1: cd
 4424:  2: gh
 4425: copy substring three failed -7
 4426: 
 4427: /(?P<Tes>)(?P<Test>)/DZ
 4428: ------------------------------------------------------------------
 4429:         Bra
 4430:         CBra 1
 4431:         Ket
 4432:         CBra 2
 4433:         Ket
 4434:         Ket
 4435:         End
 4436: ------------------------------------------------------------------
 4437: Capturing subpattern count = 2
 4438: Named capturing subpatterns:
 4439:   Tes    1
 4440:   Test   2
 4441: No options
 4442: No first char
 4443: No need char
 4444: 
 4445: /(?P<Test>)(?P<Tes>)/DZ
 4446: ------------------------------------------------------------------
 4447:         Bra
 4448:         CBra 1
 4449:         Ket
 4450:         CBra 2
 4451:         Ket
 4452:         Ket
 4453:         End
 4454: ------------------------------------------------------------------
 4455: Capturing subpattern count = 2
 4456: Named capturing subpatterns:
 4457:   Tes    2
 4458:   Test   1
 4459: No options
 4460: No first char
 4461: No need char
 4462: 
 4463: /(?P<Z>zz)(?P<A>aa)/I
 4464: Capturing subpattern count = 2
 4465: Named capturing subpatterns:
 4466:   A   2
 4467:   Z   1
 4468: No options
 4469: First char = 'z'
 4470: Need char = 'a'
 4471:     zzaa\CZ
 4472:  0: zzaa
 4473:  1: zz
 4474:  2: aa
 4475:   C zz (2) Z
 4476:     zzaa\CA
 4477:  0: zzaa
 4478:  1: zz
 4479:  2: aa
 4480:   C aa (2) A
 4481: 
 4482: /(?P<x>eks)(?P<x>eccs)/I
 4483: Failed: two named subpatterns have the same name at offset 15
 4484: 
 4485: /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
 4486: Failed: two named subpatterns have the same name at offset 30
 4487: 
 4488: "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
 4489: Capturing subpattern count = 3
 4490: Named capturing subpatterns:
 4491:   elem   2
 4492: No options
 4493: First char = '['
 4494: Need char = ']'
 4495:     [10,20,30,5,5,4,4,2,43,23,4234]
 4496:  0: [10,20,30,5,5,4,4,2,43,23,4234]
 4497:  1: 10,20,30,5,5,4,4,2,43,23,4234
 4498:  2: 10
 4499:  3: ,4234
 4500:     *** Failers
 4501: No match
 4502:     []
 4503: No match
 4504: 
 4505: "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
 4506: Capturing subpattern count = 3
 4507: Named capturing subpatterns:
 4508:   elem   2
 4509: No options
 4510: First char = '['
 4511: Need char = ']'
 4512:     [10,20,30,5,5,4,4,2,43,23,4234]
 4513:  0: [10,20,30,5,5,4,4,2,43,23,4234]
 4514:  1: 10,20,30,5,5,4,4,2,43,23,4234
 4515:  2: 10
 4516:  3: ,4234
 4517:     []
 4518:  0: []
 4519: 
 4520: /(a(b(?2)c))?/DZ
 4521: ------------------------------------------------------------------
 4522:         Bra
 4523:         Brazero
 4524:         CBra 1
 4525:         a
 4526:         CBra 2
 4527:         b
 4528:         Recurse
 4529:         c
 4530:         Ket
 4531:         Ket
 4532:         Ket
 4533:         End
 4534: ------------------------------------------------------------------
 4535: Capturing subpattern count = 2
 4536: No options
 4537: No first char
 4538: No need char
 4539: 
 4540: /(a(b(?2)c))*/DZ
 4541: ------------------------------------------------------------------
 4542:         Bra
 4543:         Brazero
 4544:         CBra 1
 4545:         a
 4546:         CBra 2
 4547:         b
 4548:         Recurse
 4549:         c
 4550:         Ket
 4551:         KetRmax
 4552:         Ket
 4553:         End
 4554: ------------------------------------------------------------------
 4555: Capturing subpattern count = 2
 4556: No options
 4557: No first char
 4558: No need char
 4559: 
 4560: /(a(b(?2)c)){0,2}/DZ
 4561: ------------------------------------------------------------------
 4562:         Bra
 4563:         Brazero
 4564:         Bra
 4565:         CBra 1
 4566:         a
 4567:         CBra 2
 4568:         b
 4569:         Recurse
 4570:         c
 4571:         Ket
 4572:         Ket
 4573:         Brazero
 4574:         CBra 1
 4575:         a
 4576:         CBra 2
 4577:         b
 4578:         Recurse
 4579:         c
 4580:         Ket
 4581:         Ket
 4582:         Ket
 4583:         Ket
 4584:         End
 4585: ------------------------------------------------------------------
 4586: Capturing subpattern count = 2
 4587: No options
 4588: No first char
 4589: No need char
 4590: 
 4591: /[ab]{1}+/DZ
 4592: ------------------------------------------------------------------
 4593:         Bra
 4594:         Once
 4595:         [ab]{1,1}
 4596:         Ket
 4597:         Ket
 4598:         End
 4599: ------------------------------------------------------------------
 4600: Capturing subpattern count = 0
 4601: No options
 4602: No first char
 4603: No need char
 4604: 
 4605: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
 4606: Capturing subpattern count = 3
 4607: Options: caseless
 4608: No first char
 4609: Need char = 'g' (caseless)
 4610:      Baby Bjorn Active Carrier - With free SHIPPING!!
 4611:  0: Baby Bjorn Active Carrier - With free SHIPPING!!
 4612:  1: Baby Bjorn Active Carrier - With free SHIPPING!!
 4613: 
 4614: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
 4615: Capturing subpattern count = 3
 4616: Options: caseless
 4617: No first char
 4618: Need char = 'g' (caseless)
 4619: Subject length lower bound = 8
 4620: No set of starting bytes
 4621:      Baby Bjorn Active Carrier - With free SHIPPING!!
 4622:  0: Baby Bjorn Active Carrier - With free SHIPPING!!
 4623:  1: Baby Bjorn Active Carrier - With free SHIPPING!!
 4624: 
 4625: /a*.*b/ISDZ
 4626: ------------------------------------------------------------------
 4627:         Bra
 4628:         a*
 4629:         Any*
 4630:         b
 4631:         Ket
 4632:         End
 4633: ------------------------------------------------------------------
 4634: Capturing subpattern count = 0
 4635: No options
 4636: No first char
 4637: Need char = 'b'
 4638: Subject length lower bound = 1
 4639: No set of starting bytes
 4640: 
 4641: /(a|b)*.?c/ISDZ
 4642: ------------------------------------------------------------------
 4643:         Bra
 4644:         Brazero
 4645:         CBra 1
 4646:         a
 4647:         Alt
 4648:         b
 4649:         KetRmax
 4650:         Any?
 4651:         c
 4652:         Ket
 4653:         End
 4654: ------------------------------------------------------------------
 4655: Capturing subpattern count = 1
 4656: No options
 4657: No first char
 4658: Need char = 'c'
 4659: Subject length lower bound = 1
 4660: No set of starting bytes
 4661: 
 4662: /abc(?C255)de(?C)f/DZ
 4663: ------------------------------------------------------------------
 4664:         Bra
 4665:         abc
 4666:         Callout 255 10 1
 4667:         de
 4668:         Callout 0 16 1
 4669:         f
 4670:         Ket
 4671:         End
 4672: ------------------------------------------------------------------
 4673: Capturing subpattern count = 0
 4674: No options
 4675: First char = 'a'
 4676: Need char = 'f'
 4677: 
 4678: /abcde/ICDZ
 4679: ------------------------------------------------------------------
 4680:         Bra
 4681:         Callout 255 0 1
 4682:         a
 4683:         Callout 255 1 1
 4684:         b
 4685:         Callout 255 2 1
 4686:         c
 4687:         Callout 255 3 1
 4688:         d
 4689:         Callout 255 4 1
 4690:         e
 4691:         Callout 255 5 0
 4692:         Ket
 4693:         End
 4694: ------------------------------------------------------------------
 4695: Capturing subpattern count = 0
 4696: Options:
 4697: First char = 'a'
 4698: Need char = 'e'
 4699:   abcde
 4700: --->abcde
 4701:  +0 ^         a
 4702:  +1 ^^        b
 4703:  +2 ^ ^       c
 4704:  +3 ^  ^      d
 4705:  +4 ^   ^     e
 4706:  +5 ^    ^    
 4707:  0: abcde
 4708:   abcdfe
 4709: --->abcdfe
 4710:  +0 ^          a
 4711:  +1 ^^         b
 4712:  +2 ^ ^        c
 4713:  +3 ^  ^       d
 4714:  +4 ^   ^      e
 4715: No match
 4716: 
 4717: /a*b/ICDZS
 4718: ------------------------------------------------------------------
 4719:         Bra
 4720:         Callout 255 0 2
 4721:         a*+
 4722:         Callout 255 2 1
 4723:         b
 4724:         Callout 255 3 0
 4725:         Ket
 4726:         End
 4727: ------------------------------------------------------------------
 4728: Capturing subpattern count = 0
 4729: Options:
 4730: No first char
 4731: Need char = 'b'
 4732: Subject length lower bound = 1
 4733: Starting byte set: a b 
 4734:   ab
 4735: --->ab
 4736:  +0 ^      a*
 4737:  +2 ^^     b
 4738:  +3 ^ ^    
 4739:  0: ab
 4740:   aaaab
 4741: --->aaaab
 4742:  +0 ^         a*
 4743:  +2 ^   ^     b
 4744:  +3 ^    ^    
 4745:  0: aaaab
 4746:   aaaacb
 4747: --->aaaacb
 4748:  +0 ^          a*
 4749:  +2 ^   ^      b
 4750:  +0  ^         a*
 4751:  +2  ^  ^      b
 4752:  +0   ^        a*
 4753:  +2   ^ ^      b
 4754:  +0    ^       a*
 4755:  +2    ^^      b
 4756:  +0      ^     a*
 4757:  +2      ^     b
 4758:  +3      ^^    
 4759:  0: b
 4760: 
 4761: /a*b/ICDZSS
 4762: ------------------------------------------------------------------
 4763:         Bra
 4764:         Callout 255 0 2
 4765:         a*+
 4766:         Callout 255 2 1
 4767:         b
 4768:         Callout 255 3 0
 4769:         Ket
 4770:         End
 4771: ------------------------------------------------------------------
 4772: Capturing subpattern count = 0
 4773: Options:
 4774: No first char
 4775: Need char = 'b'
 4776:   ab
 4777: --->ab
 4778:  +0 ^      a*
 4779:  +2 ^^     b
 4780:  +3 ^ ^    
 4781:  0: ab
 4782:   aaaab
 4783: --->aaaab
 4784:  +0 ^         a*
 4785:  +2 ^   ^     b
 4786:  +3 ^    ^    
 4787:  0: aaaab
 4788:   aaaacb
 4789: --->aaaacb
 4790:  +0 ^          a*
 4791:  +2 ^   ^      b
 4792:  +0  ^         a*
 4793:  +2  ^  ^      b
 4794:  +0   ^        a*
 4795:  +2   ^ ^      b
 4796:  +0    ^       a*
 4797:  +2    ^^      b
 4798:  +0     ^      a*
 4799:  +2     ^      b
 4800:  +0      ^     a*
 4801:  +2      ^     b
 4802:  +3      ^^    
 4803:  0: b
 4804: 
 4805: /a+b/ICDZ
 4806: ------------------------------------------------------------------
 4807:         Bra
 4808:         Callout 255 0 2
 4809:         a++
 4810:         Callout 255 2 1
 4811:         b
 4812:         Callout 255 3 0
 4813:         Ket
 4814:         End
 4815: ------------------------------------------------------------------
 4816: Capturing subpattern count = 0
 4817: Options:
 4818: First char = 'a'
 4819: Need char = 'b'
 4820:   ab
 4821: --->ab
 4822:  +0 ^      a+
 4823:  +2 ^^     b
 4824:  +3 ^ ^    
 4825:  0: ab
 4826:   aaaab
 4827: --->aaaab
 4828:  +0 ^         a+
 4829:  +2 ^   ^     b
 4830:  +3 ^    ^    
 4831:  0: aaaab
 4832:   aaaacb
 4833: --->aaaacb
 4834:  +0 ^          a+
 4835:  +2 ^   ^      b
 4836:  +0  ^         a+
 4837:  +2  ^  ^      b
 4838:  +0   ^        a+
 4839:  +2   ^ ^      b
 4840:  +0    ^       a+
 4841:  +2    ^^      b
 4842: No match
 4843: 
 4844: /(abc|def)x/ICDZS
 4845: ------------------------------------------------------------------
 4846:         Bra
 4847:         Callout 255 0 9
 4848:         CBra 1
 4849:         Callout 255 1 1
 4850:         a
 4851:         Callout 255 2 1
 4852:         b
 4853:         Callout 255 3 1
 4854:         c
 4855:         Callout 255 4 0
 4856:         Alt
 4857:         Callout 255 5 1
 4858:         d
 4859:         Callout 255 6 1
 4860:         e
 4861:         Callout 255 7 1
 4862:         f
 4863:         Callout 255 8 0
 4864:         Ket
 4865:         Callout 255 9 1
 4866:         x
 4867:         Callout 255 10 0
 4868:         Ket
 4869:         End
 4870: ------------------------------------------------------------------
 4871: Capturing subpattern count = 1
 4872: Options:
 4873: No first char
 4874: Need char = 'x'
 4875: Subject length lower bound = 4
 4876: Starting byte set: a d 
 4877:   abcx
 4878: --->abcx
 4879:  +0 ^        (abc|def)
 4880:  +1 ^        a
 4881:  +2 ^^       b
 4882:  +3 ^ ^      c
 4883:  +4 ^  ^     |
 4884:  +9 ^  ^     x
 4885: +10 ^   ^    
 4886:  0: abcx
 4887:  1: abc
 4888:   defx
 4889: --->defx
 4890:  +0 ^        (abc|def)
 4891:  +1 ^        a
 4892:  +5 ^        d
 4893:  +6 ^^       e
 4894:  +7 ^ ^      f
 4895:  +8 ^  ^     )
 4896:  +9 ^  ^     x
 4897: +10 ^   ^    
 4898:  0: defx
 4899:  1: def
 4900:   ** Failers 
 4901: No match
 4902:   abcdefzx
 4903: --->abcdefzx
 4904:  +0 ^            (abc|def)
 4905:  +1 ^            a
 4906:  +2 ^^           b
 4907:  +3 ^ ^          c
 4908:  +4 ^  ^         |
 4909:  +9 ^  ^         x
 4910:  +5 ^            d
 4911:  +0    ^         (abc|def)
 4912:  +1    ^         a
 4913:  +5    ^         d
 4914:  +6    ^^        e
 4915:  +7    ^ ^       f
 4916:  +8    ^  ^      )
 4917:  +9    ^  ^      x
 4918: No match
 4919: 
 4920: /(abc|def)x/ICDZSS
 4921: ------------------------------------------------------------------
 4922:         Bra
 4923:         Callout 255 0 9
 4924:         CBra 1
 4925:         Callout 255 1 1
 4926:         a
 4927:         Callout 255 2 1
 4928:         b
 4929:         Callout 255 3 1
 4930:         c
 4931:         Callout 255 4 0
 4932:         Alt
 4933:         Callout 255 5 1
 4934:         d
 4935:         Callout 255 6 1
 4936:         e
 4937:         Callout 255 7 1
 4938:         f
 4939:         Callout 255 8 0
 4940:         Ket
 4941:         Callout 255 9 1
 4942:         x
 4943:         Callout 255 10 0
 4944:         Ket
 4945:         End
 4946: ------------------------------------------------------------------
 4947: Capturing subpattern count = 1
 4948: Options:
 4949: No first char
 4950: Need char = 'x'
 4951:   abcx
 4952: --->abcx
 4953:  +0 ^        (abc|def)
 4954:  +1 ^        a
 4955:  +2 ^^       b
 4956:  +3 ^ ^      c
 4957:  +4 ^  ^     |
 4958:  +9 ^  ^     x
 4959: +10 ^   ^    
 4960:  0: abcx
 4961:  1: abc
 4962:   defx
 4963: --->defx
 4964:  +0 ^        (abc|def)
 4965:  +1 ^        a
 4966:  +5 ^        d
 4967:  +6 ^^       e
 4968:  +7 ^ ^      f
 4969:  +8 ^  ^     )
 4970:  +9 ^  ^     x
 4971: +10 ^   ^    
 4972:  0: defx
 4973:  1: def
 4974:   ** Failers 
 4975: No match
 4976:   abcdefzx
 4977: --->abcdefzx
 4978:  +0 ^            (abc|def)
 4979:  +1 ^            a
 4980:  +2 ^^           b
 4981:  +3 ^ ^          c
 4982:  +4 ^  ^         |
 4983:  +9 ^  ^         x
 4984:  +5 ^            d
 4985:  +0  ^           (abc|def)
 4986:  +1  ^           a
 4987:  +5  ^           d
 4988:  +0   ^          (abc|def)
 4989:  +1   ^          a
 4990:  +5   ^          d
 4991:  +0    ^         (abc|def)
 4992:  +1    ^         a
 4993:  +5    ^         d
 4994:  +6    ^^        e
 4995:  +7    ^ ^       f
 4996:  +8    ^  ^      )
 4997:  +9    ^  ^      x
 4998:  +0     ^        (abc|def)
 4999:  +1     ^        a
 5000:  +5     ^        d
 5001:  +0      ^       (abc|def)
 5002:  +1      ^       a
 5003:  +5      ^       d
 5004:  +0       ^      (abc|def)
 5005:  +1       ^      a
 5006:  +5       ^      d
 5007:  +0        ^     (abc|def)
 5008:  +1        ^     a
 5009:  +5        ^     d
 5010: No match
 5011: 
 5012: /(ab|cd){3,4}/IC
 5013: Capturing subpattern count = 1
 5014: Options:
 5015: No first char
 5016: No need char
 5017:   ababab
 5018: --->ababab
 5019:  +0 ^          (ab|cd){3,4}
 5020:  +1 ^          a
 5021:  +2 ^^         b
 5022:  +3 ^ ^        |
 5023:  +1 ^ ^        a
 5024:  +2 ^  ^       b
 5025:  +3 ^   ^      |
 5026:  +1 ^   ^      a
 5027:  +2 ^    ^     b
 5028:  +3 ^     ^    |
 5029:  +1 ^     ^    a
 5030:  +4 ^     ^    c
 5031: +12 ^     ^    
 5032:  0: ababab
 5033:  1: ab
 5034:   abcdabcd
 5035: --->abcdabcd
 5036:  +0 ^            (ab|cd){3,4}
 5037:  +1 ^            a
 5038:  +2 ^^           b
 5039:  +3 ^ ^          |
 5040:  +1 ^ ^          a
 5041:  +4 ^ ^          c
 5042:  +5 ^  ^         d
 5043:  +6 ^   ^        )
 5044:  +1 ^   ^        a
 5045:  +2 ^    ^       b
 5046:  +3 ^     ^      |
 5047:  +1 ^     ^      a
 5048:  +4 ^     ^      c
 5049:  +5 ^      ^     d
 5050:  +6 ^       ^    )
 5051: +12 ^       ^    
 5052:  0: abcdabcd
 5053:  1: cd
 5054:   abcdcdcdcdcd
 5055: --->abcdcdcdcdcd
 5056:  +0 ^                (ab|cd){3,4}
 5057:  +1 ^                a
 5058:  +2 ^^               b
 5059:  +3 ^ ^              |
 5060:  +1 ^ ^              a
 5061:  +4 ^ ^              c
 5062:  +5 ^  ^             d
 5063:  +6 ^   ^            )
 5064:  +1 ^   ^            a
 5065:  +4 ^   ^            c
 5066:  +5 ^    ^           d
 5067:  +6 ^     ^          )
 5068:  +1 ^     ^          a
 5069:  +4 ^     ^          c
 5070:  +5 ^      ^         d
 5071:  +6 ^       ^        )
 5072: +12 ^       ^        
 5073:  0: abcdcdcd
 5074:  1: cd
 5075: 
 5076: /([ab]{,4}c|xy)/ICDZS
 5077: ------------------------------------------------------------------
 5078:         Bra
 5079:         Callout 255 0 14
 5080:         CBra 1
 5081:         Callout 255 1 4
 5082:         [ab]
 5083:         Callout 255 5 1
 5084:         {
 5085:         Callout 255 6 1
 5086:         ,
 5087:         Callout 255 7 1
 5088:         4
 5089:         Callout 255 8 1
 5090:         }
 5091:         Callout 255 9 1
 5092:         c
 5093:         Callout 255 10 0
 5094:         Alt
 5095:         Callout 255 11 1
 5096:         x
 5097:         Callout 255 12 1
 5098:         y
 5099:         Callout 255 13 0
 5100:         Ket
 5101:         Callout 255 14 0
 5102:         Ket
 5103:         End
 5104: ------------------------------------------------------------------
 5105: Capturing subpattern count = 1
 5106: Options:
 5107: No first char
 5108: No need char
 5109: Subject length lower bound = 2
 5110: Starting byte set: a b x 
 5111:     Note: that { does NOT introduce a quantifier
 5112: --->Note: that { does NOT introduce a quantifier
 5113:  +0         ^                                        ([ab]{,4}c|xy)
 5114:  +1         ^                                        [ab]
 5115:  +5         ^^                                       {
 5116: +11         ^                                        x
 5117:  +0                                 ^                ([ab]{,4}c|xy)
 5118:  +1                                 ^                [ab]
 5119:  +5                                 ^^               {
 5120: +11                                 ^                x
 5121:  +0                                     ^            ([ab]{,4}c|xy)
 5122:  +1                                     ^            [ab]
 5123:  +5                                     ^^           {
 5124: +11                                     ^            x
 5125: No match
 5126: 
 5127: /([ab]{,4}c|xy)/ICDZSS
 5128: ------------------------------------------------------------------
 5129:         Bra
 5130:         Callout 255 0 14
 5131:         CBra 1
 5132:         Callout 255 1 4
 5133:         [ab]
 5134:         Callout 255 5 1
 5135:         {
 5136:         Callout 255 6 1
 5137:         ,
 5138:         Callout 255 7 1
 5139:         4
 5140:         Callout 255 8 1
 5141:         }
 5142:         Callout 255 9 1
 5143:         c
 5144:         Callout 255 10 0
 5145:         Alt
 5146:         Callout 255 11 1
 5147:         x
 5148:         Callout 255 12 1
 5149:         y
 5150:         Callout 255 13 0
 5151:         Ket
 5152:         Callout 255 14 0
 5153:         Ket
 5154:         End
 5155: ------------------------------------------------------------------
 5156: Capturing subpattern count = 1
 5157: Options:
 5158: No first char
 5159: No need char
 5160:     Note: that { does NOT introduce a quantifier
 5161: --->Note: that { does NOT introduce a quantifier
 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: +11    ^                                             x
 5174:  +0     ^                                            ([ab]{,4}c|xy)
 5175:  +1     ^                                            [ab]
 5176: +11     ^                                            x
 5177:  +0      ^                                           ([ab]{,4}c|xy)
 5178:  +1      ^                                           [ab]
 5179: +11      ^                                           x
 5180:  +0       ^                                          ([ab]{,4}c|xy)
 5181:  +1       ^                                          [ab]
 5182: +11       ^                                          x
 5183:  +0        ^                                         ([ab]{,4}c|xy)
 5184:  +1        ^                                         [ab]
 5185: +11        ^                                         x
 5186:  +0         ^                                        ([ab]{,4}c|xy)
 5187:  +1         ^                                        [ab]
 5188:  +5         ^^                                       {
 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: +11                            ^                     x
 5247:  +0                             ^                    ([ab]{,4}c|xy)
 5248:  +1                             ^                    [ab]
 5249: +11                             ^                    x
 5250:  +0                              ^                   ([ab]{,4}c|xy)
 5251:  +1                              ^                   [ab]
 5252: +11                              ^                   x
 5253:  +0                               ^                  ([ab]{,4}c|xy)
 5254:  +1                               ^                  [ab]
 5255: +11                               ^                  x
 5256:  +0                                ^                 ([ab]{,4}c|xy)
 5257:  +1                                ^                 [ab]
 5258: +11                                ^                 x
 5259:  +0                                 ^                ([ab]{,4}c|xy)
 5260:  +1                                 ^                [ab]
 5261:  +5                                 ^^               {
 5262: +11                                 ^                x
 5263:  +0                                  ^               ([ab]{,4}c|xy)
 5264:  +1                                  ^               [ab]
 5265: +11                                  ^               x
 5266:  +0                                   ^              ([ab]{,4}c|xy)
 5267:  +1                                   ^              [ab]
 5268: +11                                   ^              x
 5269:  +0                                    ^             ([ab]{,4}c|xy)
 5270:  +1                                    ^             [ab]
 5271: +11                                    ^             x
 5272:  +0                                     ^            ([ab]{,4}c|xy)
 5273:  +1                                     ^            [ab]
 5274:  +5                                     ^^           {
 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:  +0                                         ^        ([ab]{,4}c|xy)
 5286:  +1                                         ^        [ab]
 5287: +11                                         ^        x
 5288:  +0                                          ^       ([ab]{,4}c|xy)
 5289:  +1                                          ^       [ab]
 5290: +11                                          ^       x
 5291:  +0                                           ^      ([ab]{,4}c|xy)
 5292:  +1                                           ^      [ab]
 5293: +11                                           ^      x
 5294:  +0                                            ^     ([ab]{,4}c|xy)
 5295:  +1                                            ^     [ab]
 5296: +11                                            ^     x
 5297:  +0                                             ^    ([ab]{,4}c|xy)
 5298:  +1                                             ^    [ab]
 5299: +11                                             ^    x
 5300: No match
 5301: 
 5302: /([ab]{1,4}c|xy){4,5}?123/ICDZ
 5303: ------------------------------------------------------------------
 5304:         Bra
 5305:         Callout 255 0 21
 5306:         CBra 1
 5307:         Callout 255 1 9
 5308:         [ab]{1,4}
 5309:         Callout 255 10 1
 5310:         c
 5311:         Callout 255 11 0
 5312:         Alt
 5313:         Callout 255 12 1
 5314:         x
 5315:         Callout 255 13 1
 5316:         y
 5317:         Callout 255 14 0
 5318:         Ket
 5319:         CBra 1
 5320:         Callout 255 1 9
 5321:         [ab]{1,4}
 5322:         Callout 255 10 1
 5323:         c
 5324:         Callout 255 11 0
 5325:         Alt
 5326:         Callout 255 12 1
 5327:         x
 5328:         Callout 255 13 1
 5329:         y
 5330:         Callout 255 14 0
 5331:         Ket
 5332:         CBra 1
 5333:         Callout 255 1 9
 5334:         [ab]{1,4}
 5335:         Callout 255 10 1
 5336:         c
 5337:         Callout 255 11 0
 5338:         Alt
 5339:         Callout 255 12 1
 5340:         x
 5341:         Callout 255 13 1
 5342:         y
 5343:         Callout 255 14 0
 5344:         Ket
 5345:         CBra 1
 5346:         Callout 255 1 9
 5347:         [ab]{1,4}
 5348:         Callout 255 10 1
 5349:         c
 5350:         Callout 255 11 0
 5351:         Alt
 5352:         Callout 255 12 1
 5353:         x
 5354:         Callout 255 13 1
 5355:         y
 5356:         Callout 255 14 0
 5357:         Ket
 5358:         Braminzero
 5359:         CBra 1
 5360:         Callout 255 1 9
 5361:         [ab]{1,4}
 5362:         Callout 255 10 1
 5363:         c
 5364:         Callout 255 11 0
 5365:         Alt
 5366:         Callout 255 12 1
 5367:         x
 5368:         Callout 255 13 1
 5369:         y
 5370:         Callout 255 14 0
 5371:         Ket
 5372:         Callout 255 21 1
 5373:         1
 5374:         Callout 255 22 1
 5375:         2
 5376:         Callout 255 23 1
 5377:         3
 5378:         Callout 255 24 0
 5379:         Ket
 5380:         End
 5381: ------------------------------------------------------------------
 5382: Capturing subpattern count = 1
 5383: Options:
 5384: No first char
 5385: Need char = '3'
 5386:     aacaacaacaacaac123
 5387: --->aacaacaacaacaac123
 5388:  +0 ^                      ([ab]{1,4}c|xy){4,5}?
 5389:  +1 ^                      [ab]{1,4}
 5390: +10 ^ ^                    c
 5391: +11 ^  ^                   |
 5392:  +1 ^  ^                   [ab]{1,4}
 5393: +10 ^    ^                 c
 5394: +11 ^     ^                |
 5395:  +1 ^     ^                [ab]{1,4}
 5396: +10 ^       ^              c
 5397: +11 ^        ^             |
 5398:  +1 ^        ^             [ab]{1,4}
 5399: +10 ^          ^           c
 5400: +11 ^           ^          |
 5401: +21 ^           ^          1
 5402:  +1 ^           ^          [ab]{1,4}
 5403: +10 ^             ^        c
 5404: +11 ^              ^       |
 5405: +21 ^              ^       1
 5406: +22 ^               ^      2
 5407: +23 ^                ^     3
 5408: +24 ^                 ^    
 5409:  0: aacaacaacaacaac123
 5410:  1: aac
 5411: 
 5412: /\b.*/I
 5413: Capturing subpattern count = 0
 5414: No options
 5415: No first char
 5416: No need char
 5417: Max lookbehind = 1
 5418:   ab cd\>1
 5419:  0:  cd
 5420: 
 5421: /\b.*/Is
 5422: Capturing subpattern count = 0
 5423: Options: dotall
 5424: No first char
 5425: No need char
 5426: Max lookbehind = 1
 5427:   ab cd\>1
 5428:  0:  cd
 5429: 
 5430: /(?!.bcd).*/I
 5431: Capturing subpattern count = 0
 5432: No options
 5433: No first char
 5434: No need char
 5435:   Xbcd12345
 5436:  0: bcd12345
 5437: 
 5438: /abcde/I
 5439: Capturing subpattern count = 0
 5440: No options
 5441: First char = 'a'
 5442: Need char = 'e'
 5443:     ab\P
 5444: Partial match: ab
 5445:     abc\P
 5446: Partial match: abc
 5447:     abcd\P
 5448: Partial match: abcd
 5449:     abcde\P
 5450:  0: abcde
 5451:     the quick brown abc\P
 5452: Partial match: abc
 5453:     ** Failers\P
 5454: No match
 5455:     the quick brown abxyz fox\P
 5456: No match
 5457: 
 5458: "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
 5459: Capturing subpattern count = 3
 5460: Options: anchored
 5461: No first char
 5462: Need char = '/'
 5463:     13/05/04\P
 5464:  0: 13/05/04
 5465:  1: 13
 5466:  2: 05
 5467:     13/5/2004\P
 5468:  0: 13/5/2004
 5469:  1: 13
 5470:  2: 5
 5471:  3: 20
 5472:     02/05/09\P
 5473:  0: 02/05/09
 5474:  1: 02
 5475:  2: 05
 5476:     1\P
 5477: Partial match: 1
 5478:     1/2\P
 5479: Partial match: 1/2
 5480:     1/2/0\P
 5481: Partial match: 1/2/0
 5482:     1/2/04\P
 5483:  0: 1/2/04
 5484:  1: 1
 5485:  2: 2
 5486:     0\P
 5487: Partial match: 0
 5488:     02/\P
 5489: Partial match: 02/
 5490:     02/0\P
 5491: Partial match: 02/0
 5492:     02/1\P
 5493: Partial match: 02/1
 5494:     ** Failers\P
 5495: No match
 5496:     \P
 5497: No match
 5498:     123\P
 5499: No match
 5500:     33/4/04\P
 5501: No match
 5502:     3/13/04\P
 5503: No match
 5504:     0/1/2003\P
 5505: No match
 5506:     0/\P
 5507: No match
 5508:     02/0/\P
 5509: No match
 5510:     02/13\P
 5511: No match
 5512: 
 5513: /0{0,2}ABC/I
 5514: Capturing subpattern count = 0
 5515: No options
 5516: No first char
 5517: Need char = 'C'
 5518: 
 5519: /\d{3,}ABC/I
 5520: Capturing subpattern count = 0
 5521: No options
 5522: No first char
 5523: Need char = 'C'
 5524: 
 5525: /\d*ABC/I
 5526: Capturing subpattern count = 0
 5527: No options
 5528: No first char
 5529: Need char = 'C'
 5530: 
 5531: /[abc]+DE/I
 5532: Capturing subpattern count = 0
 5533: No options
 5534: No first char
 5535: Need char = 'E'
 5536: 
 5537: /[abc]?123/I
 5538: Capturing subpattern count = 0
 5539: No options
 5540: No first char
 5541: Need char = '3'
 5542:     123\P
 5543:  0: 123
 5544:     a\P
 5545: Partial match: a
 5546:     b\P
 5547: Partial match: b
 5548:     c\P
 5549: Partial match: c
 5550:     c12\P
 5551: Partial match: c12
 5552:     c123\P
 5553:  0: c123
 5554: 
 5555: /^(?:\d){3,5}X/I
 5556: Capturing subpattern count = 0
 5557: Options: anchored
 5558: No first char
 5559: Need char = 'X'
 5560:     1\P
 5561: Partial match: 1
 5562:     123\P
 5563: Partial match: 123
 5564:     123X
 5565:  0: 123X
 5566:     1234\P
 5567: Partial match: 1234
 5568:     1234X
 5569:  0: 1234X
 5570:     12345\P
 5571: Partial match: 12345
 5572:     12345X
 5573:  0: 12345X
 5574:     *** Failers
 5575: No match
 5576:     1X
 5577: No match
 5578:     123456\P
 5579: No match
 5580: 
 5581: /abc/IS>testsavedregex
 5582: Capturing subpattern count = 0
 5583: No options
 5584: First char = 'a'
 5585: Need char = 'c'
 5586: Subject length lower bound = 3
 5587: No set of starting bytes
 5588: Compiled pattern written to testsavedregex
 5589: Study data written to testsavedregex
 5590: <testsavedregex
 5591: Compiled pattern loaded from testsavedregex
 5592: Study data loaded from testsavedregex
 5593:     abc
 5594:  0: abc
 5595:     ** Failers
 5596: No match
 5597:     bca
 5598: No match
 5599: 
 5600: /abc/ISS>testsavedregex
 5601: Capturing subpattern count = 0
 5602: No options
 5603: First char = 'a'
 5604: Need char = 'c'
 5605: Compiled pattern written to testsavedregex
 5606: <testsavedregex
 5607: Compiled pattern loaded from testsavedregex
 5608: No study data
 5609:     abc
 5610:  0: abc
 5611:     ** Failers
 5612: No match
 5613:     bca
 5614: No match
 5615: 
 5616: /abc/IFS>testsavedregex
 5617: Capturing subpattern count = 0
 5618: No options
 5619: First char = 'a'
 5620: Need char = 'c'
 5621: Subject length lower bound = 3
 5622: No set of starting bytes
 5623: Compiled pattern written to testsavedregex
 5624: Study data written to testsavedregex
 5625: <testsavedregex
 5626: Compiled pattern (byte-inverted) loaded from testsavedregex
 5627: Study data loaded from testsavedregex
 5628:     abc
 5629:  0: abc
 5630:     ** Failers
 5631: No match
 5632:     bca
 5633: No match
 5634: 
 5635: /abc/IFSS>testsavedregex
 5636: Capturing subpattern count = 0
 5637: No options
 5638: First char = 'a'
 5639: Need char = 'c'
 5640: Compiled pattern written to testsavedregex
 5641: <testsavedregex
 5642: Compiled pattern (byte-inverted) loaded from testsavedregex
 5643: No study data
 5644:     abc
 5645:  0: abc
 5646:     ** Failers
 5647: No match
 5648:     bca
 5649: No match
 5650: 
 5651: /(a|b)/IS>testsavedregex
 5652: Capturing subpattern count = 1
 5653: No options
 5654: No first char
 5655: No need char
 5656: Subject length lower bound = 1
 5657: Starting byte set: a b 
 5658: Compiled pattern written to testsavedregex
 5659: Study data written to testsavedregex
 5660: <testsavedregex
 5661: Compiled pattern loaded from testsavedregex
 5662: Study data loaded from testsavedregex
 5663:     abc
 5664:  0: a
 5665:  1: a
 5666:     ** Failers
 5667:  0: a
 5668:  1: a
 5669:     def
 5670: No match
 5671: 
 5672: /(a|b)/ISS>testsavedregex
 5673: Capturing subpattern count = 1
 5674: No options
 5675: No first char
 5676: No need char
 5677: Compiled pattern written to testsavedregex
 5678: <testsavedregex
 5679: Compiled pattern loaded from testsavedregex
 5680: No study data
 5681:     abc
 5682:  0: a
 5683:  1: a
 5684:     ** Failers
 5685:  0: a
 5686:  1: a
 5687:     def
 5688: No match
 5689: 
 5690: /(a|b)/ISF>testsavedregex
 5691: Capturing subpattern count = 1
 5692: No options
 5693: No first char
 5694: No need char
 5695: Subject length lower bound = 1
 5696: Starting byte set: a b 
 5697: Compiled pattern written to testsavedregex
 5698: Study data written to testsavedregex
 5699: <testsavedregex
 5700: Compiled pattern (byte-inverted) loaded from testsavedregex
 5701: Study data loaded from testsavedregex
 5702:     abc
 5703:  0: a
 5704:  1: a
 5705:     ** Failers
 5706:  0: a
 5707:  1: a
 5708:     def
 5709: No match
 5710: 
 5711: /(a|b)/ISSF>testsavedregex
 5712: Capturing subpattern count = 1
 5713: No options
 5714: No first char
 5715: No need char
 5716: Compiled pattern written to testsavedregex
 5717: <testsavedregex
 5718: Compiled pattern (byte-inverted) loaded from testsavedregex
 5719: No study data
 5720:     abc
 5721:  0: a
 5722:  1: a
 5723:     ** Failers
 5724:  0: a
 5725:  1: a
 5726:     def
 5727: No match
 5728: 
 5729: ~<(\w+)/?>(.)*</(\1)>~smgI
 5730: Capturing subpattern count = 3
 5731: Max back reference = 1
 5732: Options: multiline dotall
 5733: First char = '<'
 5734: Need char = '>'
 5735:     \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>
 5736:  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>
 5737:  1: seite
 5738:  2: \x0a
 5739:  3: seite
 5740: 
 5741: /^a/IF
 5742: Capturing subpattern count = 0
 5743: Options: anchored
 5744: No first char
 5745: No need char
 5746: 
 5747: /line\nbreak/I
 5748: Capturing subpattern count = 0
 5749: Contains explicit CR or LF match
 5750: No options
 5751: First char = 'l'
 5752: Need char = 'k'
 5753:     this is a line\nbreak
 5754:  0: line\x0abreak
 5755:     line one\nthis is a line\nbreak in the second line
 5756:  0: line\x0abreak
 5757: 
 5758: /line\nbreak/If
 5759: Capturing subpattern count = 0
 5760: Contains explicit CR or LF match
 5761: Options: firstline
 5762: First char = 'l'
 5763: Need char = 'k'
 5764:     this is a line\nbreak
 5765:  0: line\x0abreak
 5766:     ** Failers
 5767: No match
 5768:     line one\nthis is a line\nbreak in the second line
 5769: No match
 5770: 
 5771: /line\nbreak/Imf
 5772: Capturing subpattern count = 0
 5773: Contains explicit CR or LF match
 5774: Options: multiline firstline
 5775: First char = 'l'
 5776: Need char = 'k'
 5777:     this is a line\nbreak
 5778:  0: line\x0abreak
 5779:     ** Failers
 5780: No match
 5781:     line one\nthis is a line\nbreak in the second line
 5782: No match
 5783: 
 5784: /(?i)(?-i)AbCd/I
 5785: Capturing subpattern count = 0
 5786: No options
 5787: First char = 'A'
 5788: Need char = 'd'
 5789:     AbCd
 5790:  0: AbCd
 5791:     ** Failers
 5792: No match
 5793:     abcd
 5794: No match
 5795: 
 5796: /a{11111111111111111111}/I
 5797: Failed: number too big in {} quantifier at offset 22
 5798: 
 5799: /(){64294967295}/I
 5800: Failed: number too big in {} quantifier at offset 14
 5801: 
 5802: /(){2,4294967295}/I
 5803: Failed: number too big in {} quantifier at offset 15
 5804: 
 5805: "(?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
 5806: Capturing subpattern count = 1
 5807: Max back reference = 1
 5808: No options
 5809: First char = 'a' (caseless)
 5810: Need char = 'B'
 5811:     abcdefghijklAkB
 5812:  0: abcdefghijklAkB
 5813:  1: k
 5814: 
 5815: "(?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
 5816: Capturing subpattern count = 12
 5817: Max back reference = 11
 5818: Named capturing subpatterns:
 5819:   n0    1
 5820:   n1    2
 5821:   n10  11
 5822:   n11  12
 5823:   n2    3
 5824:   n3    4
 5825:   n4    5
 5826:   n5    6
 5827:   n6    7
 5828:   n7    8
 5829:   n8    9
 5830:   n9   10
 5831: No options
 5832: First char = 'a'
 5833: Need char = 'B'
 5834:     abcdefghijklAkB
 5835:  0: abcdefghijklAkB
 5836:  1: a
 5837:  2: b
 5838:  3: c
 5839:  4: d
 5840:  5: e
 5841:  6: f
 5842:  7: g
 5843:  8: h
 5844:  9: i
 5845: 10: j
 5846: 11: k
 5847: 12: l
 5848: 
 5849: "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
 5850: Capturing subpattern count = 12
 5851: Max back reference = 11
 5852: No options
 5853: First char = 'a'
 5854: Need char = 'B'
 5855:     abcdefghijklAkB
 5856:  0: abcdefghijklAkB
 5857:  1: a
 5858:  2: b
 5859:  3: c
 5860:  4: d
 5861:  5: e
 5862:  6: f
 5863:  7: g
 5864:  8: h
 5865:  9: i
 5866: 10: j
 5867: 11: k
 5868: 12: l
 5869: 
 5870: "(?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
 5871: Capturing subpattern count = 101
 5872: Named capturing subpatterns:
 5873:   name0     1
 5874:   name1     2
 5875:   name10   11
 5876:   name100 101
 5877:   name11   12
 5878:   name12   13
 5879:   name13   14
 5880:   name14   15
 5881:   name15   16
 5882:   name16   17
 5883:   name17   18
 5884:   name18   19
 5885:   name19   20
 5886:   name2     3
 5887:   name20   21
 5888:   name21   22
 5889:   name22   23
 5890:   name23   24
 5891:   name24   25
 5892:   name25   26
 5893:   name26   27
 5894:   name27   28
 5895:   name28   29
 5896:   name29   30
 5897:   name3     4
 5898:   name30   31
 5899:   name31   32
 5900:   name32   33
 5901:   name33   34
 5902:   name34   35
 5903:   name35   36
 5904:   name36   37
 5905:   name37   38
 5906:   name38   39
 5907:   name39   40
 5908:   name4     5
 5909:   name40   41
 5910:   name41   42
 5911:   name42   43
 5912:   name43   44
 5913:   name44   45
 5914:   name45   46
 5915:   name46   47
 5916:   name47   48
 5917:   name48   49
 5918:   name49   50
 5919:   name5     6
 5920:   name50   51
 5921:   name51   52
 5922:   name52   53
 5923:   name53   54
 5924:   name54   55
 5925:   name55   56
 5926:   name56   57
 5927:   name57   58
 5928:   name58   59
 5929:   name59   60
 5930:   name6     7
 5931:   name60   61
 5932:   name61   62
 5933:   name62   63
 5934:   name63   64
 5935:   name64   65
 5936:   name65   66
 5937:   name66   67
 5938:   name67   68
 5939:   name68   69
 5940:   name69   70
 5941:   name7     8
 5942:   name70   71
 5943:   name71   72
 5944:   name72   73
 5945:   name73   74
 5946:   name74   75
 5947:   name75   76
 5948:   name76   77
 5949:   name77   78
 5950:   name78   79
 5951:   name79   80
 5952:   name8     9
 5953:   name80   81
 5954:   name81   82
 5955:   name82   83
 5956:   name83   84
 5957:   name84   85
 5958:   name85   86
 5959:   name86   87
 5960:   name87   88
 5961:   name88   89
 5962:   name89   90
 5963:   name9    10
 5964:   name90   91
 5965:   name91   92
 5966:   name92   93
 5967:   name93   94
 5968:   name94   95
 5969:   name95   96
 5970:   name96   97
 5971:   name97   98
 5972:   name98   99
 5973:   name99  100
 5974: No options
 5975: First char = 'a'
 5976: Need char = 'a'
 5977:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 5978: Matched, but too many substrings
 5979:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 5980:  1: a
 5981:  2: a
 5982:  3: a
 5983:  4: a
 5984:  5: a
 5985:  6: a
 5986:  7: a
 5987:  8: a
 5988:  9: a
 5989: 10: a
 5990: 11: a
 5991: 12: a
 5992: 13: a
 5993: 14: a
 5994: 
 5995: "(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(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
 5996: Capturing subpattern count = 101
 5997: No options
 5998: First char = 'a'
 5999: Need char = 'a'
 6000:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 6001: Matched, but too many substrings
 6002:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 6003:  1: a
 6004:  2: a
 6005:  3: a
 6006:  4: a
 6007:  5: a
 6008:  6: a
 6009:  7: a
 6010:  8: a
 6011:  9: a
 6012: 10: a
 6013: 11: a
 6014: 12: a
 6015: 13: a
 6016: 14: a
 6017: 
 6018: /[^()]*(?:\((?R)\)[^()]*)*/I
 6019: Capturing subpattern count = 0
 6020: No options
 6021: No first char
 6022: No need char
 6023:     (this(and)that
 6024:  0: 
 6025:     (this(and)that)
 6026:  0: (this(and)that)
 6027:     (this(and)that)stuff
 6028:  0: (this(and)that)stuff
 6029: 
 6030: /[^()]*(?:\((?>(?R))\)[^()]*)*/I
 6031: Capturing subpattern count = 0
 6032: No options
 6033: No first char
 6034: No need char
 6035:     (this(and)that
 6036:  0: 
 6037:     (this(and)that)
 6038:  0: (this(and)that)
 6039: 
 6040: /[^()]*(?:\((?R)\))*[^()]*/I
 6041: Capturing subpattern count = 0
 6042: No options
 6043: No first char
 6044: No need char
 6045:     (this(and)that
 6046:  0: 
 6047:     (this(and)that)
 6048:  0: (this(and)that)
 6049: 
 6050: /(?:\((?R)\))*[^()]*/I
 6051: Capturing subpattern count = 0
 6052: No options
 6053: No first char
 6054: No need char
 6055:     (this(and)that
 6056:  0: 
 6057:     (this(and)that)
 6058:  0: 
 6059:     ((this))
 6060:  0: ((this))
 6061: 
 6062: /(?:\((?R)\))|[^()]*/I
 6063: Capturing subpattern count = 0
 6064: No options
 6065: No first char
 6066: No need char
 6067:     (this(and)that
 6068:  0: 
 6069:     (this(and)that)
 6070:  0: 
 6071:     (this)
 6072:  0: (this)
 6073:     ((this))
 6074:  0: ((this))
 6075: 
 6076: /\x{0000ff}/I
 6077: Capturing subpattern count = 0
 6078: No options
 6079: First char = \xff
 6080: No need char
 6081: 
 6082: /^((?P<A>a1)|(?P<A>a2)b)/I
 6083: Failed: two named subpatterns have the same name at offset 17
 6084: 
 6085: /^((?P<A>a1)|(?P<A>a2)b)/IJ
 6086: Capturing subpattern count = 3
 6087: Named capturing subpatterns:
 6088:   A   2
 6089:   A   3
 6090: Options: anchored dupnames
 6091: No first char
 6092: No need char
 6093:     a1b\CA
 6094:  0: a1
 6095:  1: a1
 6096:  2: a1
 6097:   C a1 (2) A
 6098:     a2b\CA
 6099:  0: a2b
 6100:  1: a2b
 6101:  2: <unset>
 6102:  3: a2
 6103:   C a2 (2) A
 6104:     ** Failers
 6105: No match
 6106:     a1b\CZ\CA
 6107: no parentheses with name "Z"
 6108:  0: a1
 6109:  1: a1
 6110:  2: a1
 6111: copy substring Z failed -7
 6112:   C a1 (2) A
 6113: 
 6114: /^(?P<A>a)(?P<A>b)/IJ
 6115: Capturing subpattern count = 2
 6116: Named capturing subpatterns:
 6117:   A   1
 6118:   A   2
 6119: Options: anchored dupnames
 6120: No first char
 6121: No need char
 6122:     ab\CA
 6123:  0: ab
 6124:  1: a
 6125:  2: b
 6126:   C a (1) A
 6127: 
 6128: /^(?P<A>a)(?P<A>b)|cd/IJ
 6129: Capturing subpattern count = 2
 6130: Named capturing subpatterns:
 6131:   A   1
 6132:   A   2
 6133: Options: dupnames
 6134: No first char
 6135: No need char
 6136:     ab\CA
 6137:  0: ab
 6138:  1: a
 6139:  2: b
 6140:   C a (1) A
 6141:     cd\CA
 6142:  0: cd
 6143: copy substring A failed -7
 6144: 
 6145: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
 6146: Capturing subpattern count = 4
 6147: Named capturing subpatterns:
 6148:   A   1
 6149:   A   2
 6150:   A   3
 6151:   A   4
 6152: Options: dupnames
 6153: No first char
 6154: No need char
 6155:     cdefgh\CA
 6156:  0: cdefgh
 6157:  1: <unset>
 6158:  2: <unset>
 6159:  3: ef
 6160:  4: gh
 6161:   C ef (2) A
 6162: 
 6163: /^((?P<A>a1)|(?P<A>a2)b)/IJ
 6164: Capturing subpattern count = 3
 6165: Named capturing subpatterns:
 6166:   A   2
 6167:   A   3
 6168: Options: anchored dupnames
 6169: No first char
 6170: No need char
 6171:     a1b\GA
 6172:  0: a1
 6173:  1: a1
 6174:  2: a1
 6175:   G a1 (2) A
 6176:     a2b\GA
 6177:  0: a2b
 6178:  1: a2b
 6179:  2: <unset>
 6180:  3: a2
 6181:   G a2 (2) A
 6182:     ** Failers
 6183: No match
 6184:     a1b\GZ\GA
 6185: no parentheses with name "Z"
 6186:  0: a1
 6187:  1: a1
 6188:  2: a1
 6189: get substring Z failed -7
 6190:   G a1 (2) A
 6191: 
 6192: /^(?P<A>a)(?P<A>b)/IJ
 6193: Capturing subpattern count = 2
 6194: Named capturing subpatterns:
 6195:   A   1
 6196:   A   2
 6197: Options: anchored dupnames
 6198: No first char
 6199: No need char
 6200:     ab\GA
 6201:  0: ab
 6202:  1: a
 6203:  2: b
 6204:   G a (1) A
 6205: 
 6206: /^(?P<A>a)(?P<A>b)|cd/IJ
 6207: Capturing subpattern count = 2
 6208: Named capturing subpatterns:
 6209:   A   1
 6210:   A   2
 6211: Options: dupnames
 6212: No first char
 6213: No need char
 6214:     ab\GA
 6215:  0: ab
 6216:  1: a
 6217:  2: b
 6218:   G a (1) A
 6219:     cd\GA
 6220:  0: cd
 6221: get substring A failed -7
 6222: 
 6223: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
 6224: Capturing subpattern count = 4
 6225: Named capturing subpatterns:
 6226:   A   1
 6227:   A   2
 6228:   A   3
 6229:   A   4
 6230: Options: dupnames
 6231: No first char
 6232: No need char
 6233:     cdefgh\GA
 6234:  0: cdefgh
 6235:  1: <unset>
 6236:  2: <unset>
 6237:  3: ef
 6238:  4: gh
 6239:   G ef (2) A
 6240: 
 6241: /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
 6242: Capturing subpattern count = 3
 6243: Named capturing subpatterns:
 6244:   A   2
 6245:   A   3
 6246: Options: anchored dupnames
 6247: Duplicate name status changes
 6248: No first char
 6249: No need char
 6250:     a1b\CA
 6251:  0: a1
 6252:  1: a1
 6253:  2: a1
 6254:   C a1 (2) A
 6255:     a2b\CA
 6256:  0: a2b
 6257:  1: a2b
 6258:  2: <unset>
 6259:  3: a2
 6260:   C a2 (2) A
 6261: 
 6262: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
 6263: Failed: two named subpatterns have the same name at offset 37
 6264: 
 6265: / In this next test, J is not set at the outer level; consequently it isn't
 6266: set in the pattern's options; consequently pcre_get_named_substring() produces
 6267: a random value. /Ix
 6268: Capturing subpattern count = 1
 6269: Options: extended
 6270: First char = 'I'
 6271: Need char = 'e'
 6272: 
 6273: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
 6274: Capturing subpattern count = 4
 6275: Named capturing subpatterns:
 6276:   A   1
 6277:   B   2
 6278:   B   3
 6279:   C   4
 6280: Options: anchored
 6281: Duplicate name status changes
 6282: No first char
 6283: No need char
 6284:     a bc d\CA\CB\CC
 6285:  0: a bc d
 6286:  1: a
 6287:  2: b
 6288:  3: c
 6289:  4: d
 6290:   C a (1) A
 6291:   C b (1) B
 6292:   C d (1) C
 6293: 
 6294: /^(?P<A>a)?(?(A)a|b)/I
 6295: Capturing subpattern count = 1
 6296: Named capturing subpatterns:
 6297:   A   1
 6298: Options: anchored
 6299: No first char
 6300: No need char
 6301:     aabc
 6302:  0: aa
 6303:  1: a
 6304:     bc
 6305:  0: b
 6306:     ** Failers
 6307: No match
 6308:     abc
 6309: No match
 6310: 
 6311: /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
 6312: Capturing subpattern count = 1
 6313: Named capturing subpatterns:
 6314:   ZZ   1
 6315: No options
 6316: No first char
 6317: Need char = 'X'
 6318:     bXaX
 6319:  0: bXaX
 6320:  1: X
 6321: 
 6322: /(?:(?(2y)a|b)(X))+/I
 6323: Failed: reference to non-existent subpattern at offset 9
 6324: 
 6325: /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
 6326: Failed: reference to non-existent subpattern at offset 9
 6327: 
 6328: /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
 6329: Capturing subpattern count = 1
 6330: Named capturing subpatterns:
 6331:   ZZ   1
 6332: No options
 6333: No first char
 6334: Need char = 'X'
 6335:     bbXaaX
 6336:  0: bbXaaX
 6337:  1: X
 6338: 
 6339: /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
 6340: Capturing subpattern count = 1
 6341: Named capturing subpatterns:
 6342:   ZZ   1
 6343: No options
 6344: No first char
 6345: Need char = 'X'
 6346:     (b)\\Xa\\X
 6347:  0: (b)\Xa\X
 6348:  1: X
 6349: 
 6350: /(?P<ABC/I
 6351: Failed: syntax error in subpattern name (missing terminator) at offset 7
 6352: 
 6353: /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
 6354: Capturing subpattern count = 1
 6355: Max back reference = 1
 6356: Named capturing subpatterns:
 6357:   A   1
 6358: No options
 6359: No first char
 6360: No need char
 6361:     bXXaYYaY
 6362:  0: bXXaYYaY
 6363:  1: Y
 6364:     bXYaXXaX
 6365:  0: bX
 6366:  1: X
 6367: 
 6368: /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
 6369: Capturing subpattern count = 10
 6370: Max back reference = 10
 6371: Named capturing subpatterns:
 6372:   A  10
 6373: No options
 6374: No first char
 6375: No need char
 6376:     bXXaYYaY
 6377:  0: bXXaYYaY
 6378:  1: 
 6379:  2: 
 6380:  3: 
 6381:  4: 
 6382:  5: 
 6383:  6: 
 6384:  7: 
 6385:  8: 
 6386:  9: 
 6387: 10: Y
 6388: 
 6389: /\s*,\s*/IS
 6390: Capturing subpattern count = 0
 6391: No options
 6392: No first char
 6393: Need char = ','
 6394: Subject length lower bound = 1
 6395: Starting byte set: \x09 \x0a \x0c \x0d \x20 , 
 6396:     \x0b,\x0b
 6397:  0: ,
 6398:     \x0c,\x0d
 6399:  0: \x0c,\x0d
 6400: 
 6401: /^abc/Im
 6402: Capturing subpattern count = 0
 6403: Options: multiline
 6404: First char at start or follows newline
 6405: Need char = 'c'
 6406:     xyz\nabc
 6407:  0: abc
 6408:     xyz\nabc\<lf>
 6409:  0: abc
 6410:     xyz\r\nabc\<lf>
 6411:  0: abc
 6412:     xyz\rabc\<cr>
 6413:  0: abc
 6414:     xyz\r\nabc\<crlf>
 6415:  0: abc
 6416:     ** Failers
 6417: No match
 6418:     xyz\nabc\<cr>
 6419: No match
 6420:     xyz\r\nabc\<cr>
 6421: No match
 6422:     xyz\nabc\<crlf>
 6423: No match
 6424:     xyz\rabc\<crlf>
 6425: No match
 6426:     xyz\rabc\<lf>
 6427: No match
 6428: 
 6429: /abc$/Im<lf>
 6430: Capturing subpattern count = 0
 6431: Options: multiline
 6432: Forced newline sequence: LF
 6433: First char = 'a'
 6434: Need char = 'c'
 6435:     xyzabc
 6436:  0: abc
 6437:     xyzabc\n
 6438:  0: abc
 6439:     xyzabc\npqr
 6440:  0: abc
 6441:     xyzabc\r\<cr>
 6442:  0: abc
 6443:     xyzabc\rpqr\<cr>
 6444:  0: abc
 6445:     xyzabc\r\n\<crlf>
 6446:  0: abc
 6447:     xyzabc\r\npqr\<crlf>
 6448:  0: abc
 6449:     ** Failers
 6450: No match
 6451:     xyzabc\r
 6452: No match
 6453:     xyzabc\rpqr
 6454: No match
 6455:     xyzabc\r\n
 6456: No match
 6457:     xyzabc\r\npqr
 6458: No match
 6459: 
 6460: /^abc/Im<cr>
 6461: Capturing subpattern count = 0
 6462: Options: multiline
 6463: Forced newline sequence: CR
 6464: First char at start or follows newline
 6465: Need char = 'c'
 6466:     xyz\rabcdef
 6467:  0: abc
 6468:     xyz\nabcdef\<lf>
 6469:  0: abc
 6470:     ** Failers
 6471: No match
 6472:     xyz\nabcdef
 6473: No match
 6474: 
 6475: /^abc/Im<lf>
 6476: Capturing subpattern count = 0
 6477: Options: multiline
 6478: Forced newline sequence: LF
 6479: First char at start or follows newline
 6480: Need char = 'c'
 6481:     xyz\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<crlf>
 6491: Capturing subpattern count = 0
 6492: Options: multiline
 6493: Forced newline sequence: CRLF
 6494: First char at start or follows newline
 6495: Need char = 'c'
 6496:     xyz\r\nabcdef
 6497:  0: abc
 6498:     xyz\rabcdef\<cr>
 6499:  0: abc
 6500:     ** Failers
 6501: No match
 6502:     xyz\rabcdef
 6503: No match
 6504: 
 6505: /^abc/Im<bad>
 6506: Unknown newline type at: <bad>
 6507: 
 6508: 
 6509: /abc/I
 6510: Capturing subpattern count = 0
 6511: No options
 6512: First char = 'a'
 6513: Need char = 'c'
 6514:     xyz\rabc\<bad>
 6515: Unknown newline type at: <bad>
 6516:     abc
 6517:  0: abc
 6518: 
 6519: /.*/I<lf>
 6520: Capturing subpattern count = 0
 6521: Options:
 6522: Forced newline sequence: LF
 6523: First char at start or follows newline
 6524: No need char
 6525:     abc\ndef
 6526:  0: abc
 6527:     abc\rdef
 6528:  0: abc\x0ddef
 6529:     abc\r\ndef
 6530:  0: abc\x0d
 6531:     \<cr>abc\ndef
 6532:  0: abc\x0adef
 6533:     \<cr>abc\rdef
 6534:  0: abc
 6535:     \<cr>abc\r\ndef
 6536:  0: abc
 6537:     \<crlf>abc\ndef
 6538:  0: abc\x0adef
 6539:     \<crlf>abc\rdef
 6540:  0: abc\x0ddef
 6541:     \<crlf>abc\r\ndef
 6542:  0: abc
 6543: 
 6544: /\w+(.)(.)?def/Is
 6545: Capturing subpattern count = 2
 6546: Options: dotall
 6547: No first char
 6548: Need char = 'f'
 6549:     abc\ndef
 6550:  0: abc\x0adef
 6551:  1: \x0a
 6552:     abc\rdef
 6553:  0: abc\x0ddef
 6554:  1: \x0d
 6555:     abc\r\ndef
 6556:  0: abc\x0d\x0adef
 6557:  1: \x0d
 6558:  2: \x0a
 6559: 
 6560: +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
 6561: Capturing subpattern count = 1
 6562: No options
 6563: No first char
 6564: No need char
 6565:    /* this is a C style comment */\M
 6566: Minimum match() limit = 120
 6567: Minimum match() recursion limit = 6
 6568:  0: /* this is a C style comment */
 6569:  1: /* this is a C style comment */
 6570: 
 6571: /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
 6572: Capturing subpattern count = 1
 6573: Named capturing subpatterns:
 6574:   B   1
 6575: No options
 6576: No first char
 6577: Need char = '.'
 6578: 
 6579: /()()()()()()()()()()()()()()()()()()()()
 6580:  ()()()()()()()()()()()()()()()()()()()()
 6581:  ()()()()()()()()()()()()()()()()()()()()
 6582:  ()()()()()()()()()()()()()()()()()()()()
 6583:  ()()()()()()()()()()()()()()()()()()()()
 6584:  (.(.))/Ix
 6585: Capturing subpattern count = 102
 6586: Options: extended
 6587: No first char
 6588: No need char
 6589:     XY\O400
 6590:  0: XY
 6591:  1: 
 6592:  2: 
 6593:  3: 
 6594:  4: 
 6595:  5: 
 6596:  6: 
 6597:  7: 
 6598:  8: 
 6599:  9: 
 6600: 10: 
 6601: 11: 
 6602: 12: 
 6603: 13: 
 6604: 14: 
 6605: 15: 
 6606: 16: 
 6607: 17: 
 6608: 18: 
 6609: 19: 
 6610: 20: 
 6611: 21: 
 6612: 22: 
 6613: 23: 
 6614: 24: 
 6615: 25: 
 6616: 26: 
 6617: 27: 
 6618: 28: 
 6619: 29: 
 6620: 30: 
 6621: 31: 
 6622: 32: 
 6623: 33: 
 6624: 34: 
 6625: 35: 
 6626: 36: 
 6627: 37: 
 6628: 38: 
 6629: 39: 
 6630: 40: 
 6631: 41: 
 6632: 42: 
 6633: 43: 
 6634: 44: 
 6635: 45: 
 6636: 46: 
 6637: 47: 
 6638: 48: 
 6639: 49: 
 6640: 50: 
 6641: 51: 
 6642: 52: 
 6643: 53: 
 6644: 54: 
 6645: 55: 
 6646: 56: 
 6647: 57: 
 6648: 58: 
 6649: 59: 
 6650: 60: 
 6651: 61: 
 6652: 62: 
 6653: 63: 
 6654: 64: 
 6655: 65: 
 6656: 66: 
 6657: 67: 
 6658: 68: 
 6659: 69: 
 6660: 70: 
 6661: 71: 
 6662: 72: 
 6663: 73: 
 6664: 74: 
 6665: 75: 
 6666: 76: 
 6667: 77: 
 6668: 78: 
 6669: 79: 
 6670: 80: 
 6671: 81: 
 6672: 82: 
 6673: 83: 
 6674: 84: 
 6675: 85: 
 6676: 86: 
 6677: 87: 
 6678: 88: 
 6679: 89: 
 6680: 90: 
 6681: 91: 
 6682: 92: 
 6683: 93: 
 6684: 94: 
 6685: 95: 
 6686: 96: 
 6687: 97: 
 6688: 98: 
 6689: 99: 
 6690: 100: 
 6691: 101: XY
 6692: 102: Y
 6693: 
 6694: /(a*b|(?i:c*(?-i)d))/IS
 6695: Capturing subpattern count = 1
 6696: No options
 6697: No first char
 6698: No need char
 6699: Subject length lower bound = 1
 6700: Starting byte set: C a b c d 
 6701: 
 6702: /()[ab]xyz/IS
 6703: Capturing subpattern count = 1
 6704: No options
 6705: No first char
 6706: Need char = 'z'
 6707: Subject length lower bound = 4
 6708: Starting byte set: a b 
 6709: 
 6710: /(|)[ab]xyz/IS
 6711: Capturing subpattern count = 1
 6712: No options
 6713: No first char
 6714: Need char = 'z'
 6715: Subject length lower bound = 4
 6716: Starting byte set: a b 
 6717: 
 6718: /(|c)[ab]xyz/IS
 6719: Capturing subpattern count = 1
 6720: No options
 6721: No first char
 6722: Need char = 'z'
 6723: Subject length lower bound = 4
 6724: Starting byte set: a b c 
 6725: 
 6726: /(|c?)[ab]xyz/IS
 6727: Capturing subpattern count = 1
 6728: No options
 6729: No first char
 6730: Need char = 'z'
 6731: Subject length lower bound = 4
 6732: Starting byte set: a b c 
 6733: 
 6734: /(d?|c?)[ab]xyz/IS
 6735: Capturing subpattern count = 1
 6736: No options
 6737: No first char
 6738: Need char = 'z'
 6739: Subject length lower bound = 4
 6740: Starting byte set: a b c d 
 6741: 
 6742: /(d?|c)[ab]xyz/IS
 6743: Capturing subpattern count = 1
 6744: No options
 6745: No first char
 6746: Need char = 'z'
 6747: Subject length lower bound = 4
 6748: Starting byte set: a b c d 
 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*?b\d/DZ
 6781: ------------------------------------------------------------------
 6782:         Bra
 6783:         ^
 6784:         a*+
 6785:         b
 6786:         \d
 6787:         Ket
 6788:         End
 6789: ------------------------------------------------------------------
 6790: Capturing subpattern count = 0
 6791: Options: anchored
 6792: No first char
 6793: Need char = 'b'
 6794: 
 6795: /^a+A\d/DZ
 6796: ------------------------------------------------------------------
 6797:         Bra
 6798:         ^
 6799:         a++
 6800:         A
 6801:         \d
 6802:         Ket
 6803:         End
 6804: ------------------------------------------------------------------
 6805: Capturing subpattern count = 0
 6806: Options: anchored
 6807: No first char
 6808: Need char = 'A'
 6809:     aaaA5
 6810:  0: aaaA5
 6811:     ** Failers
 6812: No match
 6813:     aaaa5
 6814: No match
 6815: 
 6816: /^a*A\d/IiDZ
 6817: ------------------------------------------------------------------
 6818:         Bra
 6819:         ^
 6820:      /i a*
 6821:      /i A
 6822:         \d
 6823:         Ket
 6824:         End
 6825: ------------------------------------------------------------------
 6826: Capturing subpattern count = 0
 6827: Options: anchored caseless
 6828: No first char
 6829: Need char = 'A' (caseless)
 6830:     aaaA5
 6831:  0: aaaA5
 6832:     aaaa5
 6833:  0: aaaa5
 6834: 
 6835: /(a*|b*)[cd]/IS
 6836: Capturing subpattern count = 1
 6837: No options
 6838: No first char
 6839: No need char
 6840: Subject length lower bound = 1
 6841: Starting byte set: a b c d 
 6842: 
 6843: /(a+|b*)[cd]/IS
 6844: Capturing subpattern count = 1
 6845: No options
 6846: No first char
 6847: No need char
 6848: Subject length lower bound = 1
 6849: Starting byte set: a b c d 
 6850: 
 6851: /(a*|b+)[cd]/IS
 6852: Capturing subpattern count = 1
 6853: No options
 6854: No first char
 6855: No need char
 6856: Subject length lower bound = 1
 6857: Starting byte set: a b c d 
 6858: 
 6859: /(a+|b+)[cd]/IS
 6860: Capturing subpattern count = 1
 6861: No options
 6862: No first char
 6863: No need char
 6864: Subject length lower bound = 2
 6865: Starting byte set: a b 
 6866: 
 6867: /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
 6868:  ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
 6869:  (((
 6870:  a
 6871:  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
 6872:  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
 6873:  )))
 6874: /Ix
 6875: Capturing subpattern count = 203
 6876: Options: extended
 6877: First char = 'a'
 6878: No need char
 6879:   large nest
 6880: Matched, but too many substrings
 6881:  0: a
 6882:  1: a
 6883:  2: a
 6884:  3: a
 6885:  4: a
 6886:  5: a
 6887:  6: a
 6888:  7: a
 6889:  8: a
 6890:  9: a
 6891: 10: a
 6892: 11: a
 6893: 12: a
 6894: 13: a
 6895: 14: a
 6896: 
 6897: /a*\d/BZ
 6898: ------------------------------------------------------------------
 6899:         Bra
 6900:         a*+
 6901:         \d
 6902:         Ket
 6903:         End
 6904: ------------------------------------------------------------------
 6905: 
 6906: /a*\D/BZ
 6907: ------------------------------------------------------------------
 6908:         Bra
 6909:         a*
 6910:         \D
 6911:         Ket
 6912:         End
 6913: ------------------------------------------------------------------
 6914: 
 6915: /0*\d/BZ
 6916: ------------------------------------------------------------------
 6917:         Bra
 6918:         0*
 6919:         \d
 6920:         Ket
 6921:         End
 6922: ------------------------------------------------------------------
 6923: 
 6924: /0*\D/BZ
 6925: ------------------------------------------------------------------
 6926:         Bra
 6927:         0*+
 6928:         \D
 6929:         Ket
 6930:         End
 6931: ------------------------------------------------------------------
 6932: 
 6933: /a*\s/BZ
 6934: ------------------------------------------------------------------
 6935:         Bra
 6936:         a*+
 6937:         \s
 6938:         Ket
 6939:         End
 6940: ------------------------------------------------------------------
 6941: 
 6942: /a*\S/BZ
 6943: ------------------------------------------------------------------
 6944:         Bra
 6945:         a*
 6946:         \S
 6947:         Ket
 6948:         End
 6949: ------------------------------------------------------------------
 6950: 
 6951: / *\s/BZ
 6952: ------------------------------------------------------------------
 6953:         Bra
 6954:          *
 6955:         \s
 6956:         Ket
 6957:         End
 6958: ------------------------------------------------------------------
 6959: 
 6960: / *\S/BZ
 6961: ------------------------------------------------------------------
 6962:         Bra
 6963:          *+
 6964:         \S
 6965:         Ket
 6966:         End
 6967: ------------------------------------------------------------------
 6968: 
 6969: /a*\w/BZ
 6970: ------------------------------------------------------------------
 6971:         Bra
 6972:         a*
 6973:         \w
 6974:         Ket
 6975:         End
 6976: ------------------------------------------------------------------
 6977: 
 6978: /a*\W/BZ
 6979: ------------------------------------------------------------------
 6980:         Bra
 6981:         a*+
 6982:         \W
 6983:         Ket
 6984:         End
 6985: ------------------------------------------------------------------
 6986: 
 6987: /=*\w/BZ
 6988: ------------------------------------------------------------------
 6989:         Bra
 6990:         =*+
 6991:         \w
 6992:         Ket
 6993:         End
 6994: ------------------------------------------------------------------
 6995: 
 6996: /=*\W/BZ
 6997: ------------------------------------------------------------------
 6998:         Bra
 6999:         =*
 7000:         \W
 7001:         Ket
 7002:         End
 7003: ------------------------------------------------------------------
 7004: 
 7005: /\d*a/BZ
 7006: ------------------------------------------------------------------
 7007:         Bra
 7008:         \d*+
 7009:         a
 7010:         Ket
 7011:         End
 7012: ------------------------------------------------------------------
 7013: 
 7014: /\d*2/BZ
 7015: ------------------------------------------------------------------
 7016:         Bra
 7017:         \d*
 7018:         2
 7019:         Ket
 7020:         End
 7021: ------------------------------------------------------------------
 7022: 
 7023: /\d*\d/BZ
 7024: ------------------------------------------------------------------
 7025:         Bra
 7026:         \d*
 7027:         \d
 7028:         Ket
 7029:         End
 7030: ------------------------------------------------------------------
 7031: 
 7032: /\d*\D/BZ
 7033: ------------------------------------------------------------------
 7034:         Bra
 7035:         \d*+
 7036:         \D
 7037:         Ket
 7038:         End
 7039: ------------------------------------------------------------------
 7040: 
 7041: /\d*\s/BZ
 7042: ------------------------------------------------------------------
 7043:         Bra
 7044:         \d*+
 7045:         \s
 7046:         Ket
 7047:         End
 7048: ------------------------------------------------------------------
 7049: 
 7050: /\d*\S/BZ
 7051: ------------------------------------------------------------------
 7052:         Bra
 7053:         \d*
 7054:         \S
 7055:         Ket
 7056:         End
 7057: ------------------------------------------------------------------
 7058: 
 7059: /\d*\w/BZ
 7060: ------------------------------------------------------------------
 7061:         Bra
 7062:         \d*
 7063:         \w
 7064:         Ket
 7065:         End
 7066: ------------------------------------------------------------------
 7067: 
 7068: /\d*\W/BZ
 7069: ------------------------------------------------------------------
 7070:         Bra
 7071:         \d*+
 7072:         \W
 7073:         Ket
 7074:         End
 7075: ------------------------------------------------------------------
 7076: 
 7077: /\D*a/BZ
 7078: ------------------------------------------------------------------
 7079:         Bra
 7080:         \D*
 7081:         a
 7082:         Ket
 7083:         End
 7084: ------------------------------------------------------------------
 7085: 
 7086: /\D*2/BZ
 7087: ------------------------------------------------------------------
 7088:         Bra
 7089:         \D*+
 7090:         2
 7091:         Ket
 7092:         End
 7093: ------------------------------------------------------------------
 7094: 
 7095: /\D*\d/BZ
 7096: ------------------------------------------------------------------
 7097:         Bra
 7098:         \D*+
 7099:         \d
 7100:         Ket
 7101:         End
 7102: ------------------------------------------------------------------
 7103: 
 7104: /\D*\D/BZ
 7105: ------------------------------------------------------------------
 7106:         Bra
 7107:         \D*
 7108:         \D
 7109:         Ket
 7110:         End
 7111: ------------------------------------------------------------------
 7112: 
 7113: /\D*\s/BZ
 7114: ------------------------------------------------------------------
 7115:         Bra
 7116:         \D*
 7117:         \s
 7118:         Ket
 7119:         End
 7120: ------------------------------------------------------------------
 7121: 
 7122: /\D*\S/BZ
 7123: ------------------------------------------------------------------
 7124:         Bra
 7125:         \D*
 7126:         \S
 7127:         Ket
 7128:         End
 7129: ------------------------------------------------------------------
 7130: 
 7131: /\D*\w/BZ
 7132: ------------------------------------------------------------------
 7133:         Bra
 7134:         \D*
 7135:         \w
 7136:         Ket
 7137:         End
 7138: ------------------------------------------------------------------
 7139: 
 7140: /\D*\W/BZ
 7141: ------------------------------------------------------------------
 7142:         Bra
 7143:         \D*
 7144:         \W
 7145:         Ket
 7146:         End
 7147: ------------------------------------------------------------------
 7148: 
 7149: /\s*a/BZ
 7150: ------------------------------------------------------------------
 7151:         Bra
 7152:         \s*+
 7153:         a
 7154:         Ket
 7155:         End
 7156: ------------------------------------------------------------------
 7157: 
 7158: /\s*2/BZ
 7159: ------------------------------------------------------------------
 7160:         Bra
 7161:         \s*+
 7162:         2
 7163:         Ket
 7164:         End
 7165: ------------------------------------------------------------------
 7166: 
 7167: /\s*\d/BZ
 7168: ------------------------------------------------------------------
 7169:         Bra
 7170:         \s*+
 7171:         \d
 7172:         Ket
 7173:         End
 7174: ------------------------------------------------------------------
 7175: 
 7176: /\s*\D/BZ
 7177: ------------------------------------------------------------------
 7178:         Bra
 7179:         \s*
 7180:         \D
 7181:         Ket
 7182:         End
 7183: ------------------------------------------------------------------
 7184: 
 7185: /\s*\s/BZ
 7186: ------------------------------------------------------------------
 7187:         Bra
 7188:         \s*
 7189:         \s
 7190:         Ket
 7191:         End
 7192: ------------------------------------------------------------------
 7193: 
 7194: /\s*\S/BZ
 7195: ------------------------------------------------------------------
 7196:         Bra
 7197:         \s*+
 7198:         \S
 7199:         Ket
 7200:         End
 7201: ------------------------------------------------------------------
 7202: 
 7203: /\s*\w/BZ
 7204: ------------------------------------------------------------------
 7205:         Bra
 7206:         \s*+
 7207:         \w
 7208:         Ket
 7209:         End
 7210: ------------------------------------------------------------------
 7211: 
 7212: /\s*\W/BZ
 7213: ------------------------------------------------------------------
 7214:         Bra
 7215:         \s*
 7216:         \W
 7217:         Ket
 7218:         End
 7219: ------------------------------------------------------------------
 7220: 
 7221: /\S*a/BZ
 7222: ------------------------------------------------------------------
 7223:         Bra
 7224:         \S*
 7225:         a
 7226:         Ket
 7227:         End
 7228: ------------------------------------------------------------------
 7229: 
 7230: /\S*2/BZ
 7231: ------------------------------------------------------------------
 7232:         Bra
 7233:         \S*
 7234:         2
 7235:         Ket
 7236:         End
 7237: ------------------------------------------------------------------
 7238: 
 7239: /\S*\d/BZ
 7240: ------------------------------------------------------------------
 7241:         Bra
 7242:         \S*
 7243:         \d
 7244:         Ket
 7245:         End
 7246: ------------------------------------------------------------------
 7247: 
 7248: /\S*\D/BZ
 7249: ------------------------------------------------------------------
 7250:         Bra
 7251:         \S*
 7252:         \D
 7253:         Ket
 7254:         End
 7255: ------------------------------------------------------------------
 7256: 
 7257: /\S*\s/BZ
 7258: ------------------------------------------------------------------
 7259:         Bra
 7260:         \S*+
 7261:         \s
 7262:         Ket
 7263:         End
 7264: ------------------------------------------------------------------
 7265: 
 7266: /\S*\S/BZ
 7267: ------------------------------------------------------------------
 7268:         Bra
 7269:         \S*
 7270:         \S
 7271:         Ket
 7272:         End
 7273: ------------------------------------------------------------------
 7274: 
 7275: /\S*\w/BZ
 7276: ------------------------------------------------------------------
 7277:         Bra
 7278:         \S*
 7279:         \w
 7280:         Ket
 7281:         End
 7282: ------------------------------------------------------------------
 7283: 
 7284: /\S*\W/BZ
 7285: ------------------------------------------------------------------
 7286:         Bra
 7287:         \S*
 7288:         \W
 7289:         Ket
 7290:         End
 7291: ------------------------------------------------------------------
 7292: 
 7293: /\w*a/BZ
 7294: ------------------------------------------------------------------
 7295:         Bra
 7296:         \w*
 7297:         a
 7298:         Ket
 7299:         End
 7300: ------------------------------------------------------------------
 7301: 
 7302: /\w*2/BZ
 7303: ------------------------------------------------------------------
 7304:         Bra
 7305:         \w*
 7306:         2
 7307:         Ket
 7308:         End
 7309: ------------------------------------------------------------------
 7310: 
 7311: /\w*\d/BZ
 7312: ------------------------------------------------------------------
 7313:         Bra
 7314:         \w*
 7315:         \d
 7316:         Ket
 7317:         End
 7318: ------------------------------------------------------------------
 7319: 
 7320: /\w*\D/BZ
 7321: ------------------------------------------------------------------
 7322:         Bra
 7323:         \w*
 7324:         \D
 7325:         Ket
 7326:         End
 7327: ------------------------------------------------------------------
 7328: 
 7329: /\w*\s/BZ
 7330: ------------------------------------------------------------------
 7331:         Bra
 7332:         \w*+
 7333:         \s
 7334:         Ket
 7335:         End
 7336: ------------------------------------------------------------------
 7337: 
 7338: /\w*\S/BZ
 7339: ------------------------------------------------------------------
 7340:         Bra
 7341:         \w*
 7342:         \S
 7343:         Ket
 7344:         End
 7345: ------------------------------------------------------------------
 7346: 
 7347: /\w*\w/BZ
 7348: ------------------------------------------------------------------
 7349:         Bra
 7350:         \w*
 7351:         \w
 7352:         Ket
 7353:         End
 7354: ------------------------------------------------------------------
 7355: 
 7356: /\w*\W/BZ
 7357: ------------------------------------------------------------------
 7358:         Bra
 7359:         \w*+
 7360:         \W
 7361:         Ket
 7362:         End
 7363: ------------------------------------------------------------------
 7364: 
 7365: /\W*a/BZ
 7366: ------------------------------------------------------------------
 7367:         Bra
 7368:         \W*+
 7369:         a
 7370:         Ket
 7371:         End
 7372: ------------------------------------------------------------------
 7373: 
 7374: /\W*2/BZ
 7375: ------------------------------------------------------------------
 7376:         Bra
 7377:         \W*+
 7378:         2
 7379:         Ket
 7380:         End
 7381: ------------------------------------------------------------------
 7382: 
 7383: /\W*\d/BZ
 7384: ------------------------------------------------------------------
 7385:         Bra
 7386:         \W*+
 7387:         \d
 7388:         Ket
 7389:         End
 7390: ------------------------------------------------------------------
 7391: 
 7392: /\W*\D/BZ
 7393: ------------------------------------------------------------------
 7394:         Bra
 7395:         \W*
 7396:         \D
 7397:         Ket
 7398:         End
 7399: ------------------------------------------------------------------
 7400: 
 7401: /\W*\s/BZ
 7402: ------------------------------------------------------------------
 7403:         Bra
 7404:         \W*
 7405:         \s
 7406:         Ket
 7407:         End
 7408: ------------------------------------------------------------------
 7409: 
 7410: /\W*\S/BZ
 7411: ------------------------------------------------------------------
 7412:         Bra
 7413:         \W*
 7414:         \S
 7415:         Ket
 7416:         End
 7417: ------------------------------------------------------------------
 7418: 
 7419: /\W*\w/BZ
 7420: ------------------------------------------------------------------
 7421:         Bra
 7422:         \W*+
 7423:         \w
 7424:         Ket
 7425:         End
 7426: ------------------------------------------------------------------
 7427: 
 7428: /\W*\W/BZ
 7429: ------------------------------------------------------------------
 7430:         Bra
 7431:         \W*
 7432:         \W
 7433:         Ket
 7434:         End
 7435: ------------------------------------------------------------------
 7436: 
 7437: /[^a]+a/BZ
 7438: ------------------------------------------------------------------
 7439:         Bra
 7440:         [^a]++
 7441:         a
 7442:         Ket
 7443:         End
 7444: ------------------------------------------------------------------
 7445: 
 7446: /[^a]+a/BZi
 7447: ------------------------------------------------------------------
 7448:         Bra
 7449:      /i [^a]++
 7450:      /i a
 7451:         Ket
 7452:         End
 7453: ------------------------------------------------------------------
 7454: 
 7455: /[^a]+A/BZi
 7456: ------------------------------------------------------------------
 7457:         Bra
 7458:      /i [^a]++
 7459:      /i A
 7460:         Ket
 7461:         End
 7462: ------------------------------------------------------------------
 7463: 
 7464: /[^a]+b/BZ
 7465: ------------------------------------------------------------------
 7466:         Bra
 7467:         [^a]+
 7468:         b
 7469:         Ket
 7470:         End
 7471: ------------------------------------------------------------------
 7472: 
 7473: /[^a]+\d/BZ
 7474: ------------------------------------------------------------------
 7475:         Bra
 7476:         [^a]+
 7477:         \d
 7478:         Ket
 7479:         End
 7480: ------------------------------------------------------------------
 7481: 
 7482: /a*[^a]/BZ
 7483: ------------------------------------------------------------------
 7484:         Bra
 7485:         a*
 7486:         [^a]
 7487:         Ket
 7488:         End
 7489: ------------------------------------------------------------------
 7490: 
 7491: /(?P<abc>x)(?P<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: Capturing subpattern count = 2
 7508: Named capturing subpatterns:
 7509:   abc   1
 7510:   xyz   2
 7511: No options
 7512: First char = 'x'
 7513: Need char = 'y'
 7514:     xy\Cabc\Cxyz
 7515:  0: xy
 7516:  1: x
 7517:  2: y
 7518:   C x (1) abc
 7519:   C y (1) xyz
 7520: 
 7521: /(?<abc'x)(?'xyz'y)/I
 7522: Failed: syntax error in subpattern name (missing terminator) at offset 6
 7523: 
 7524: /(?<abc>x)(?'xyz>y)/I
 7525: Failed: syntax error in subpattern name (missing terminator) at offset 15
 7526: 
 7527: /(?P'abc'x)(?P<xyz>y)/I
 7528: Failed: unrecognized character after (?P at offset 3
 7529: 
 7530: /^(?:(?(ZZ)a|b)(?<ZZ>X))+/
 7531:     bXaX
 7532:  0: bXaX
 7533:  1: X
 7534:     bXbX
 7535:  0: bX
 7536:  1: X
 7537:     ** Failers
 7538: No match
 7539:     aXaX
 7540: No match
 7541:     aXbX
 7542: No match
 7543: 
 7544: /^(?P>abc)(?<abcd>xxx)/
 7545: Failed: reference to non-existent subpattern at offset 8
 7546: 
 7547: /^(?P>abc)(?<abc>x|y)/
 7548:     xx
 7549:  0: xx
 7550:  1: x
 7551:     xy
 7552:  0: xy
 7553:  1: y
 7554:     yy
 7555:  0: yy
 7556:  1: y
 7557:     yx
 7558:  0: yx
 7559:  1: x
 7560: 
 7561: /^(?P>abc)(?P<abc>x|y)/
 7562:     xx
 7563:  0: xx
 7564:  1: x
 7565:     xy
 7566:  0: xy
 7567:  1: y
 7568:     yy
 7569:  0: yy
 7570:  1: y
 7571:     yx
 7572:  0: yx
 7573:  1: x
 7574: 
 7575: /^((?(abc)a|b)(?<abc>x|y))+/
 7576:     bxay
 7577:  0: bxay
 7578:  1: ay
 7579:  2: y
 7580:     bxby
 7581:  0: bx
 7582:  1: bx
 7583:  2: x
 7584:     ** Failers
 7585: No match
 7586:     axby
 7587: No match
 7588: 
 7589: /^(((?P=abc)|X)(?<abc>x|y))+/
 7590:     XxXxxx
 7591:  0: XxXxxx
 7592:  1: xx
 7593:  2: x
 7594:  3: x
 7595:     XxXyyx
 7596:  0: XxXyyx
 7597:  1: yx
 7598:  2: y
 7599:  3: x
 7600:     XxXyxx
 7601:  0: XxXy
 7602:  1: Xy
 7603:  2: X
 7604:  3: y
 7605:     ** Failers
 7606: No match
 7607:     x
 7608: No match
 7609: 
 7610: /^(?1)(abc)/
 7611:     abcabc
 7612:  0: abcabc
 7613:  1: abc
 7614: 
 7615: /^(?:(?:\1|X)(a|b))+/
 7616:     Xaaa
 7617:  0: Xaaa
 7618:  1: a
 7619:     Xaba
 7620:  0: Xa
 7621:  1: a
 7622: 
 7623: /^[\E\Qa\E-\Qz\E]+/BZ
 7624: ------------------------------------------------------------------
 7625:         Bra
 7626:         ^
 7627:         [a-z]+
 7628:         Ket
 7629:         End
 7630: ------------------------------------------------------------------
 7631: 
 7632: /^[a\Q]bc\E]/BZ
 7633: ------------------------------------------------------------------
 7634:         Bra
 7635:         ^
 7636:         [\]a-c]
 7637:         Ket
 7638:         End
 7639: ------------------------------------------------------------------
 7640: 
 7641: /^[a-\Q\E]/BZ
 7642: ------------------------------------------------------------------
 7643:         Bra
 7644:         ^
 7645:         [\-a]
 7646:         Ket
 7647:         End
 7648: ------------------------------------------------------------------
 7649: 
 7650: /^(?P>abc)[()](?<abc>)/BZ
 7651: ------------------------------------------------------------------
 7652:         Bra
 7653:         ^
 7654:         Recurse
 7655:         [()]
 7656:         CBra 1
 7657:         Ket
 7658:         Ket
 7659:         End
 7660: ------------------------------------------------------------------
 7661: 
 7662: /^((?(abc)y)[()](?P<abc>x))+/BZ
 7663: ------------------------------------------------------------------
 7664:         Bra
 7665:         ^
 7666:         CBra 1
 7667:         Cond
 7668:       2 Cond nref
 7669:         y
 7670:         Ket
 7671:         [()]
 7672:         CBra 2
 7673:         x
 7674:         Ket
 7675:         KetRmax
 7676:         Ket
 7677:         End
 7678: ------------------------------------------------------------------
 7679:     (xy)x
 7680:  0: (xy)x
 7681:  1: y)x
 7682:  2: x
 7683: 
 7684: /^(?P>abc)\Q()\E(?<abc>)/BZ
 7685: ------------------------------------------------------------------
 7686:         Bra
 7687:         ^
 7688:         Recurse
 7689:         ()
 7690:         CBra 1
 7691:         Ket
 7692:         Ket
 7693:         End
 7694: ------------------------------------------------------------------
 7695: 
 7696: /^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
 7697: ------------------------------------------------------------------
 7698:         Bra
 7699:         ^
 7700:         Recurse
 7701:         [(\]a]
 7702:         CBra 1
 7703:         Ket
 7704:         Ket
 7705:         End
 7706: ------------------------------------------------------------------
 7707: 
 7708: /^(?P>abc) # this is (a comment)
 7709:   (?<abc>)/BZx
 7710: ------------------------------------------------------------------
 7711:         Bra
 7712:         ^
 7713:         Recurse
 7714:         CBra 1
 7715:         Ket
 7716:         Ket
 7717:         End
 7718: ------------------------------------------------------------------
 7719: 
 7720: /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
 7721: Capturing subpattern count = 4
 7722: Max back reference = 4
 7723: Named capturing subpatterns:
 7724:   four    4
 7725:   one     1
 7726:   three   3
 7727:   two     2
 7728: Options: anchored caseless
 7729: No first char
 7730: No need char
 7731:     1221
 7732:  0: 1221
 7733:  1: 1221
 7734:  2: 1
 7735:     Satan, oscillate my metallic sonatas!
 7736:  0: Satan, oscillate my metallic sonatas!
 7737:  1: <unset>
 7738:  2: <unset>
 7739:  3: Satan, oscillate my metallic sonatas
 7740:  4: S
 7741:     A man, a plan, a canal: Panama!
 7742:  0: A man, a plan, a canal: Panama!
 7743:  1: <unset>
 7744:  2: <unset>
 7745:  3: A man, a plan, a canal: Panama
 7746:  4: A
 7747:     Able was I ere I saw Elba.
 7748:  0: Able was I ere I saw Elba.
 7749:  1: <unset>
 7750:  2: <unset>
 7751:  3: Able was I ere I saw Elba
 7752:  4: A
 7753:     *** Failers
 7754: No match
 7755:     The quick brown fox
 7756: No match
 7757: 
 7758: /(?=(\w+))\1:/I
 7759: Capturing subpattern count = 1
 7760: Max back reference = 1
 7761: No options
 7762: No first char
 7763: Need char = ':'
 7764:     abcd:
 7765:  0: abcd:
 7766:  1: abcd
 7767: 
 7768: /(?=(?'abc'\w+))\k<abc>:/I
 7769: Capturing subpattern count = 1
 7770: Max back reference = 1
 7771: Named capturing subpatterns:
 7772:   abc   1
 7773: No options
 7774: No first char
 7775: Need char = ':'
 7776:     abcd:
 7777:  0: abcd:
 7778:  1: abcd
 7779: 
 7780: /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
 7781:     adaa
 7782:  0: adaa
 7783:  1: a
 7784:  2: d
 7785:     ** Failers
 7786: No match
 7787:     addd
 7788: No match
 7789:     adbb
 7790: No match
 7791: 
 7792: /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
 7793:     bdaa
 7794:  0: bdaa
 7795:  1: b
 7796:  2: d
 7797:     bdab
 7798:  0: bdab
 7799:  1: b
 7800:  2: d
 7801:     ** Failers
 7802: No match
 7803:     bddd
 7804: No match
 7805: 
 7806: /(?(<bc))/
 7807: Failed: malformed number or name after (?( at offset 6
 7808: 
 7809: /(?(''))/
 7810: Failed: assertion expected after (?( at offset 4
 7811: 
 7812: /(?('R')stuff)/
 7813: Failed: reference to non-existent subpattern at offset 7
 7814: 
 7815: /((abc (?(R) (?(R1)1) (?(R2)2) X  |  (?1)  (?2)   (?R) ))) /x
 7816:     abcabc1Xabc2XabcXabcabc
 7817:  0: abcabc1Xabc2XabcX
 7818:  1: abcabc1Xabc2XabcX
 7819:  2: abcabc1Xabc2XabcX
 7820: 
 7821: /(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
 7822:     abcabc1Xabc2XabcXabcabc
 7823:  0: abcabc1Xabc2XabcX
 7824:  1: abcabc1Xabc2XabcX
 7825:  2: abcabc1Xabc2XabcX
 7826: 
 7827: /(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
 7828: Failed: reference to non-existent subpattern at offset 29
 7829: 
 7830: /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
 7831:     abcabc1Xabc2XabcXabcabc
 7832:  0: abcabc1Xabc2XabcX
 7833:  1: abcabc1Xabc2XabcX
 7834:  2: abcabc1Xabc2XabcX
 7835: 
 7836: /^(?(DEFINE) abc | xyz ) /x
 7837: Failed: DEFINE group contains more than one branch at offset 22
 7838: 
 7839: /(?(DEFINE) abc) xyz/xI
 7840: Capturing subpattern count = 0
 7841: Options: extended
 7842: First char = 'x'
 7843: Need char = 'z'
 7844: 
 7845: /(a|)*\d/
 7846:   \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 7847: No match
 7848:   \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
 7849: Matched, but too many substrings
 7850: 
 7851: /^a.b/<lf>
 7852:     a\rb
 7853:  0: a\x0db
 7854:     a\nb\<cr>
 7855:  0: a\x0ab
 7856:     a\x85b\<anycrlf> 
 7857:  0: a\x85b
 7858:     ** Failers
 7859: No match
 7860:     a\nb
 7861: No match
 7862:     a\nb\<any>
 7863: No match
 7864:     a\rb\<cr>
 7865: No match
 7866:     a\rb\<any>
 7867: No match
 7868:     a\x85b\<any> 
 7869: No match
 7870:     a\rb\<anycrlf>
 7871: No match
 7872: 
 7873: /^abc./mgx<any>
 7874:     abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
 7875:  0: abc1
 7876:  0: abc2
 7877:  0: abc3
 7878:  0: abc4
 7879:  0: abc5
 7880:  0: abc6
 7881:  0: abc7
 7882: 
 7883: /abc.$/mgx<any>
 7884:     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
 7885:  0: abc1
 7886:  0: abc2
 7887:  0: abc3
 7888:  0: abc4
 7889:  0: abc5
 7890:  0: abc6
 7891:  0: abc9
 7892: 
 7893: /a/<cr><any>
 7894: 
 7895: /a/<any><crlf>
 7896: Failed: inconsistent NEWLINE options at offset 0
 7897: 
 7898: /^a\Rb/<bsr_unicode>
 7899:     a\nb
 7900:  0: a\x0ab
 7901:     a\rb
 7902:  0: a\x0db
 7903:     a\r\nb
 7904:  0: a\x0d\x0ab
 7905:     a\x0bb
 7906:  0: a\x0bb
 7907:     a\x0cb
 7908:  0: a\x0cb
 7909:     a\x85b
 7910:  0: a\x85b
 7911:     ** Failers
 7912: No match
 7913:     a\n\rb
 7914: No match
 7915: 
 7916: /^a\R*b/<bsr_unicode>
 7917:     ab
 7918:  0: ab
 7919:     a\nb
 7920:  0: a\x0ab
 7921:     a\rb
 7922:  0: a\x0db
 7923:     a\r\nb
 7924:  0: a\x0d\x0ab
 7925:     a\x0bb
 7926:  0: a\x0bb
 7927:     a\x0cb
 7928:  0: a\x0cb
 7929:     a\x85b
 7930:  0: a\x85b
 7931:     a\n\rb
 7932:  0: a\x0a\x0db
 7933:     a\n\r\x85\x0cb
 7934:  0: a\x0a\x0d\x85\x0cb
 7935: 
 7936: /^a\R+b/<bsr_unicode>
 7937:     a\nb
 7938:  0: a\x0ab
 7939:     a\rb
 7940:  0: a\x0db
 7941:     a\r\nb
 7942:  0: a\x0d\x0ab
 7943:     a\x0bb
 7944:  0: a\x0bb
 7945:     a\x0cb
 7946:  0: a\x0cb
 7947:     a\x85b
 7948:  0: a\x85b
 7949:     a\n\rb
 7950:  0: a\x0a\x0db
 7951:     a\n\r\x85\x0cb
 7952:  0: a\x0a\x0d\x85\x0cb
 7953:     ** Failers
 7954: No match
 7955:     ab
 7956: No match
 7957: 
 7958: /^a\R{1,3}b/<bsr_unicode>
 7959:     a\nb
 7960:  0: a\x0ab
 7961:     a\n\rb
 7962:  0: a\x0a\x0db
 7963:     a\n\r\x85b
 7964:  0: a\x0a\x0d\x85b
 7965:     a\r\n\r\nb
 7966:  0: a\x0d\x0a\x0d\x0ab
 7967:     a\r\n\r\n\r\nb
 7968:  0: a\x0d\x0a\x0d\x0a\x0d\x0ab
 7969:     a\n\r\n\rb
 7970:  0: a\x0a\x0d\x0a\x0db
 7971:     a\n\n\r\nb
 7972:  0: a\x0a\x0a\x0d\x0ab
 7973:     ** Failers
 7974: No match
 7975:     a\n\n\n\rb
 7976: No match
 7977:     a\r
 7978: No match
 7979: 
 7980: /^a[\R]b/<bsr_unicode>
 7981:     aRb
 7982:  0: aRb
 7983:     ** Failers
 7984: No match
 7985:     a\nb
 7986: No match
 7987: 
 7988: /(?&abc)X(?<abc>P)/I
 7989: Capturing subpattern count = 1
 7990: Named capturing subpatterns:
 7991:   abc   1
 7992: No options
 7993: No first char
 7994: Need char = 'P'
 7995:     abcPXP123
 7996:  0: PXP
 7997:  1: P
 7998: 
 7999: /(?1)X(?<abc>P)/I
 8000: Capturing subpattern count = 1
 8001: Named capturing subpatterns:
 8002:   abc   1
 8003: No options
 8004: No first char
 8005: Need char = 'P'
 8006:     abcPXP123
 8007:  0: PXP
 8008:  1: P
 8009: 
 8010: /(?:a(?&abc)b)*(?<abc>x)/
 8011:     123axbaxbaxbx456
 8012:  0: axbaxbaxbx
 8013:  1: x
 8014:     123axbaxbaxb456
 8015:  0: x
 8016:  1: x
 8017: 
 8018: /(?:a(?&abc)b){1,5}(?<abc>x)/
 8019:     123axbaxbaxbx456
 8020:  0: axbaxbaxbx
 8021:  1: x
 8022: 
 8023: /(?:a(?&abc)b){2,5}(?<abc>x)/
 8024:     123axbaxbaxbx456
 8025:  0: axbaxbaxbx
 8026:  1: x
 8027: 
 8028: /(?:a(?&abc)b){2,}(?<abc>x)/
 8029:     123axbaxbaxbx456
 8030:  0: axbaxbaxbx
 8031:  1: x
 8032: 
 8033: /(abc)(?i:(?1))/
 8034:    defabcabcxyz
 8035:  0: abcabc
 8036:  1: abc
 8037:    DEFabcABCXYZ
 8038: No match
 8039: 
 8040: /(abc)(?:(?i)(?1))/
 8041:    defabcabcxyz
 8042:  0: abcabc
 8043:  1: abc
 8044:    DEFabcABCXYZ
 8045: No match
 8046: 
 8047: /^(a)\g-2/
 8048: Failed: reference to non-existent subpattern at offset 7
 8049: 
 8050: /^(a)\g/
 8051: Failed: a numbered reference must not be zero at offset 5
 8052: 
 8053: /^(a)\g{0}/
 8054: Failed: a numbered reference must not be zero at offset 8
 8055: 
 8056: /^(a)\g{3/
 8057: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
 8058: 
 8059: /^(a)\g{4a}/
 8060: Failed: reference to non-existent subpattern at offset 9
 8061: 
 8062: /^a.b/<lf>
 8063:     a\rb
 8064:  0: a\x0db
 8065:     *** Failers
 8066: No match
 8067:     a\nb
 8068: No match
 8069: 
 8070: /.+foo/
 8071:     afoo
 8072:  0: afoo
 8073:     ** Failers
 8074: No match
 8075:     \r\nfoo
 8076: No match
 8077:     \nfoo
 8078: No match
 8079: 
 8080: /.+foo/<crlf>
 8081:     afoo
 8082:  0: afoo
 8083:     \nfoo
 8084:  0: \x0afoo
 8085:     ** Failers
 8086: No match
 8087:     \r\nfoo
 8088: No match
 8089: 
 8090: /.+foo/<any>
 8091:     afoo
 8092:  0: afoo
 8093:     ** Failers
 8094: No match
 8095:     \nfoo
 8096: No match
 8097:     \r\nfoo
 8098: No match
 8099: 
 8100: /.+foo/s
 8101:     afoo
 8102:  0: afoo
 8103:     \r\nfoo
 8104:  0: \x0d\x0afoo
 8105:     \nfoo
 8106:  0: \x0afoo
 8107:     
 8108: /^$/mg<any>
 8109:     abc\r\rxyz
 8110:  0: 
 8111:     abc\n\rxyz  
 8112:  0: 
 8113:     ** Failers 
 8114: No match
 8115:     abc\r\nxyz
 8116: No match
 8117: 
 8118: /(?m)^$/<any>g+
 8119:     abc\r\n\r\n
 8120:  0: 
 8121:  0+ \x0d\x0a
 8122: 
 8123: /(?m)^$|^\r\n/<any>g+ 
 8124:     abc\r\n\r\n
 8125:  0: 
 8126:  0+ \x0d\x0a
 8127:  0: \x0d\x0a
 8128:  0+ 
 8129:     
 8130: /(?m)$/<any>g+ 
 8131:     abc\r\n\r\n
 8132:  0: 
 8133:  0+ \x0d\x0a\x0d\x0a
 8134:  0: 
 8135:  0+ \x0d\x0a
 8136:  0: 
 8137:  0+ 
 8138: 
 8139: /abc.$/mgx<anycrlf>
 8140:     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
 8141:  0: abc1
 8142:  0: abc4
 8143:  0: abc5
 8144:  0: abc9
 8145: 
 8146: /^X/m
 8147:     XABC
 8148:  0: X
 8149:     ** Failers 
 8150: No match
 8151:     XABC\B
 8152: No match
 8153: 
 8154: /(ab|c)(?-1)/BZ
 8155: ------------------------------------------------------------------
 8156:         Bra
 8157:         CBra 1
 8158:         ab
 8159:         Alt
 8160:         c
 8161:         Ket
 8162:         Recurse
 8163:         Ket
 8164:         End
 8165: ------------------------------------------------------------------
 8166:     abc
 8167:  0: abc
 8168:  1: ab
 8169: 
 8170: /xy(?+1)(abc)/BZ
 8171: ------------------------------------------------------------------
 8172:         Bra
 8173:         xy
 8174:         Recurse
 8175:         CBra 1
 8176:         abc
 8177:         Ket
 8178:         Ket
 8179:         End
 8180: ------------------------------------------------------------------
 8181:     xyabcabc
 8182:  0: xyabcabc
 8183:  1: abc
 8184:     ** Failers
 8185: No match
 8186:     xyabc  
 8187: No match
 8188:     
 8189: /x(?-0)y/
 8190: Failed: a numbered reference must not be zero at offset 5
 8191: 
 8192: /x(?-1)y/
 8193: Failed: reference to non-existent subpattern at offset 5
 8194: 
 8195: /x(?+0)y/ 
 8196: Failed: a numbered reference must not be zero at offset 5
 8197: 
 8198: /x(?+1)y/
 8199: Failed: reference to non-existent subpattern at offset 5
 8200: 
 8201: /^(abc)?(?(-1)X|Y)/BZ
 8202: ------------------------------------------------------------------
 8203:         Bra
 8204:         ^
 8205:         Brazero
 8206:         CBra 1
 8207:         abc
 8208:         Ket
 8209:         Cond
 8210:       1 Cond ref
 8211:         X
 8212:         Alt
 8213:         Y
 8214:         Ket
 8215:         Ket
 8216:         End
 8217: ------------------------------------------------------------------
 8218:     abcX
 8219:  0: abcX
 8220:  1: abc
 8221:     Y
 8222:  0: Y
 8223:     ** Failers
 8224: No match
 8225:     abcY   
 8226: No match
 8227:     
 8228: /^((?(+1)X|Y)(abc))+/BZ 
 8229: ------------------------------------------------------------------
 8230:         Bra
 8231:         ^
 8232:         CBra 1
 8233:         Cond
 8234:       2 Cond ref
 8235:         X
 8236:         Alt
 8237:         Y
 8238:         Ket
 8239:         CBra 2
 8240:         abc
 8241:         Ket
 8242:         KetRmax
 8243:         Ket
 8244:         End
 8245: ------------------------------------------------------------------
 8246:     YabcXabc
 8247:  0: YabcXabc
 8248:  1: Xabc
 8249:  2: abc
 8250:     YabcXabcXabc
 8251:  0: YabcXabcXabc
 8252:  1: Xabc
 8253:  2: abc
 8254:     ** Failers
 8255: No match
 8256:     XabcXabc  
 8257: No match
 8258: 
 8259: /(?(-1)a)/BZ
 8260: Failed: reference to non-existent subpattern at offset 6
 8261: 
 8262: /((?(-1)a))/BZ
 8263: ------------------------------------------------------------------
 8264:         Bra
 8265:         CBra 1
 8266:         Cond
 8267:       1 Cond ref
 8268:         a
 8269:         Ket
 8270:         Ket
 8271:         Ket
 8272:         End
 8273: ------------------------------------------------------------------
 8274: 
 8275: /((?(-2)a))/BZ
 8276: Failed: reference to non-existent subpattern at offset 7
 8277: 
 8278: /^(?(+1)X|Y)(.)/BZ
 8279: ------------------------------------------------------------------
 8280:         Bra
 8281:         ^
 8282:         Cond
 8283:       1 Cond ref
 8284:         X
 8285:         Alt
 8286:         Y
 8287:         Ket
 8288:         CBra 1
 8289:         Any
 8290:         Ket
 8291:         Ket
 8292:         End
 8293: ------------------------------------------------------------------
 8294:     Y!
 8295:  0: Y!
 8296:  1: !
 8297: 
 8298: /(?<A>tom|bon)-\k{A}/
 8299:     tom-tom
 8300:  0: tom-tom
 8301:  1: tom
 8302:     bon-bon 
 8303:  0: bon-bon
 8304:  1: bon
 8305:     ** Failers
 8306: No match
 8307:     tom-bon  
 8308: No match
 8309: 
 8310: /\g{A/ 
 8311: Failed: syntax error in subpattern name (missing terminator) at offset 4
 8312: 
 8313: /(?|(abc)|(xyz))/BZ
 8314: ------------------------------------------------------------------
 8315:         Bra
 8316:         Bra
 8317:         CBra 1
 8318:         abc
 8319:         Ket
 8320:         Alt
 8321:         CBra 1
 8322:         xyz
 8323:         Ket
 8324:         Ket
 8325:         Ket
 8326:         End
 8327: ------------------------------------------------------------------
 8328:    >abc<
 8329:  0: abc
 8330:  1: abc
 8331:    >xyz< 
 8332:  0: xyz
 8333:  1: xyz
 8334: 
 8335: /(x)(?|(abc)|(xyz))(x)/BZ
 8336: ------------------------------------------------------------------
 8337:         Bra
 8338:         CBra 1
 8339:         x
 8340:         Ket
 8341:         Bra
 8342:         CBra 2
 8343:         abc
 8344:         Ket
 8345:         Alt
 8346:         CBra 2
 8347:         xyz
 8348:         Ket
 8349:         Ket
 8350:         CBra 3
 8351:         x
 8352:         Ket
 8353:         Ket
 8354:         End
 8355: ------------------------------------------------------------------
 8356:     xabcx
 8357:  0: xabcx
 8358:  1: x
 8359:  2: abc
 8360:  3: x
 8361:     xxyzx 
 8362:  0: xxyzx
 8363:  1: x
 8364:  2: xyz
 8365:  3: x
 8366: 
 8367: /(x)(?|(abc)(pqr)|(xyz))(x)/BZ
 8368: ------------------------------------------------------------------
 8369:         Bra
 8370:         CBra 1
 8371:         x
 8372:         Ket
 8373:         Bra
 8374:         CBra 2
 8375:         abc
 8376:         Ket
 8377:         CBra 3
 8378:         pqr
 8379:         Ket
 8380:         Alt
 8381:         CBra 2
 8382:         xyz
 8383:         Ket
 8384:         Ket
 8385:         CBra 4
 8386:         x
 8387:         Ket
 8388:         Ket
 8389:         End
 8390: ------------------------------------------------------------------
 8391:     xabcpqrx
 8392:  0: xabcpqrx
 8393:  1: x
 8394:  2: abc
 8395:  3: pqr
 8396:  4: x
 8397:     xxyzx 
 8398:  0: xxyzx
 8399:  1: x
 8400:  2: xyz
 8401:  3: <unset>
 8402:  4: x
 8403: 
 8404: /\H++X/BZ
 8405: ------------------------------------------------------------------
 8406:         Bra
 8407:         \H++
 8408:         X
 8409:         Ket
 8410:         End
 8411: ------------------------------------------------------------------
 8412:     ** Failers
 8413: No match
 8414:     XXXX
 8415: No match
 8416:     
 8417: /\H+\hY/BZ
 8418: ------------------------------------------------------------------
 8419:         Bra
 8420:         \H++
 8421:         \h
 8422:         Y
 8423:         Ket
 8424:         End
 8425: ------------------------------------------------------------------
 8426:     XXXX Y 
 8427:  0: XXXX Y
 8428: 
 8429: /\H+ Y/BZ
 8430: ------------------------------------------------------------------
 8431:         Bra
 8432:         \H++
 8433:          Y
 8434:         Ket
 8435:         End
 8436: ------------------------------------------------------------------
 8437: 
 8438: /\h+A/BZ
 8439: ------------------------------------------------------------------
 8440:         Bra
 8441:         \h++
 8442:         A
 8443:         Ket
 8444:         End
 8445: ------------------------------------------------------------------
 8446: 
 8447: /\v*B/BZ
 8448: ------------------------------------------------------------------
 8449:         Bra
 8450:         \v*+
 8451:         B
 8452:         Ket
 8453:         End
 8454: ------------------------------------------------------------------
 8455: 
 8456: /\V+\x0a/BZ
 8457: ------------------------------------------------------------------
 8458:         Bra
 8459:         \V++
 8460:         \x0a
 8461:         Ket
 8462:         End
 8463: ------------------------------------------------------------------
 8464: 
 8465: /A+\h/BZ
 8466: ------------------------------------------------------------------
 8467:         Bra
 8468:         A++
 8469:         \h
 8470:         Ket
 8471:         End
 8472: ------------------------------------------------------------------
 8473: 
 8474: / *\H/BZ
 8475: ------------------------------------------------------------------
 8476:         Bra
 8477:          *+
 8478:         \H
 8479:         Ket
 8480:         End
 8481: ------------------------------------------------------------------
 8482: 
 8483: /A*\v/BZ
 8484: ------------------------------------------------------------------
 8485:         Bra
 8486:         A*+
 8487:         \v
 8488:         Ket
 8489:         End
 8490: ------------------------------------------------------------------
 8491: 
 8492: /\x0b*\V/BZ
 8493: ------------------------------------------------------------------
 8494:         Bra
 8495:         \x0b*+
 8496:         \V
 8497:         Ket
 8498:         End
 8499: ------------------------------------------------------------------
 8500: 
 8501: /\d+\h/BZ
 8502: ------------------------------------------------------------------
 8503:         Bra
 8504:         \d++
 8505:         \h
 8506:         Ket
 8507:         End
 8508: ------------------------------------------------------------------
 8509: 
 8510: /\d*\v/BZ
 8511: ------------------------------------------------------------------
 8512:         Bra
 8513:         \d*+
 8514:         \v
 8515:         Ket
 8516:         End
 8517: ------------------------------------------------------------------
 8518: 
 8519: /S+\h\S+\v/BZ
 8520: ------------------------------------------------------------------
 8521:         Bra
 8522:         S++
 8523:         \h
 8524:         \S++
 8525:         \v
 8526:         Ket
 8527:         End
 8528: ------------------------------------------------------------------
 8529: 
 8530: /\w{3,}\h\w+\v/BZ
 8531: ------------------------------------------------------------------
 8532:         Bra
 8533:         \w{3}
 8534:         \w*+
 8535:         \h
 8536:         \w++
 8537:         \v
 8538:         Ket
 8539:         End
 8540: ------------------------------------------------------------------
 8541: 
 8542: /\h+\d\h+\w\h+\S\h+\H/BZ
 8543: ------------------------------------------------------------------
 8544:         Bra
 8545:         \h++
 8546:         \d
 8547:         \h++
 8548:         \w
 8549:         \h++
 8550:         \S
 8551:         \h++
 8552:         \H
 8553:         Ket
 8554:         End
 8555: ------------------------------------------------------------------
 8556: 
 8557: /\v+\d\v+\w\v+\S\v+\V/BZ
 8558: ------------------------------------------------------------------
 8559:         Bra
 8560:         \v++
 8561:         \d
 8562:         \v++
 8563:         \w
 8564:         \v+
 8565:         \S
 8566:         \v++
 8567:         \V
 8568:         Ket
 8569:         End
 8570: ------------------------------------------------------------------
 8571: 
 8572: /\H+\h\H+\d/BZ
 8573: ------------------------------------------------------------------
 8574:         Bra
 8575:         \H++
 8576:         \h
 8577:         \H+
 8578:         \d
 8579:         Ket
 8580:         End
 8581: ------------------------------------------------------------------
 8582: 
 8583: /\V+\v\V+\w/BZ
 8584: ------------------------------------------------------------------
 8585:         Bra
 8586:         \V++
 8587:         \v
 8588:         \V+
 8589:         \w
 8590:         Ket
 8591:         End
 8592: ------------------------------------------------------------------
 8593: 
 8594: /\( (?: [^()]* | (?R) )* \)/x
 8595: \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)
 8596:  0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
 8597: 
 8598: /[\E]AAA/
 8599: Failed: missing terminating ] for character class at offset 7
 8600: 
 8601: /[\Q\E]AAA/
 8602: Failed: missing terminating ] for character class at offset 9
 8603: 
 8604: /[^\E]AAA/
 8605: Failed: missing terminating ] for character class at offset 8
 8606: 
 8607: /[^\Q\E]AAA/
 8608: Failed: missing terminating ] for character class at offset 10
 8609: 
 8610: /[\E^]AAA/
 8611: Failed: missing terminating ] for character class at offset 8
 8612: 
 8613: /[\Q\E^]AAA/
 8614: Failed: missing terminating ] for character class at offset 10
 8615: 
 8616: /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
 8617: ------------------------------------------------------------------
 8618:         Bra
 8619:         A
 8620:         *PRUNE
 8621:         B
 8622:         *SKIP
 8623:         C
 8624:         *THEN
 8625:         D
 8626:         *COMMIT
 8627:         E
 8628:         *FAIL
 8629:         F
 8630:         *FAIL
 8631:         G
 8632:         *FAIL
 8633:         H
 8634:         *ACCEPT
 8635:         I
 8636:         Ket
 8637:         End
 8638: ------------------------------------------------------------------
 8639: 
 8640: /^a+(*FAIL)/C
 8641:     aaaaaa
 8642: --->aaaaaa
 8643:  +0 ^          ^
 8644:  +1 ^          a+
 8645:  +3 ^     ^    (*FAIL)
 8646:  +3 ^    ^     (*FAIL)
 8647:  +3 ^   ^      (*FAIL)
 8648:  +3 ^  ^       (*FAIL)
 8649:  +3 ^ ^        (*FAIL)
 8650:  +3 ^^         (*FAIL)
 8651: No match
 8652:     
 8653: /a+b?c+(*FAIL)/C
 8654:     aaabccc
 8655: --->aaabccc
 8656:  +0 ^           a+
 8657:  +2 ^  ^        b?
 8658:  +4 ^   ^       c+
 8659:  +6 ^      ^    (*FAIL)
 8660:  +6 ^     ^     (*FAIL)
 8661:  +6 ^    ^      (*FAIL)
 8662:  +4 ^  ^        c+
 8663:  +2 ^ ^         b?
 8664:  +4 ^ ^         c+
 8665:  +2 ^^          b?
 8666:  +4 ^^          c+
 8667:  +0  ^          a+
 8668:  +2  ^ ^        b?
 8669:  +4  ^  ^       c+
 8670:  +6  ^     ^    (*FAIL)
 8671:  +6  ^    ^     (*FAIL)
 8672:  +6  ^   ^      (*FAIL)
 8673:  +4  ^ ^        c+
 8674:  +2  ^^         b?
 8675:  +4  ^^         c+
 8676:  +0   ^         a+
 8677:  +2   ^^        b?
 8678:  +4   ^ ^       c+
 8679:  +6   ^    ^    (*FAIL)
 8680:  +6   ^   ^     (*FAIL)
 8681:  +6   ^  ^      (*FAIL)
 8682:  +4   ^^        c+
 8683: No match
 8684: 
 8685: /a+b?(*PRUNE)c+(*FAIL)/C
 8686:     aaabccc
 8687: --->aaabccc
 8688:  +0 ^           a+
 8689:  +2 ^  ^        b?
 8690:  +4 ^   ^       (*PRUNE)
 8691: +12 ^   ^       c+
 8692: +14 ^      ^    (*FAIL)
 8693: +14 ^     ^     (*FAIL)
 8694: +14 ^    ^      (*FAIL)
 8695:  +0  ^          a+
 8696:  +2  ^ ^        b?
 8697:  +4  ^  ^       (*PRUNE)
 8698: +12  ^  ^       c+
 8699: +14  ^     ^    (*FAIL)
 8700: +14  ^    ^     (*FAIL)
 8701: +14  ^   ^      (*FAIL)
 8702:  +0   ^         a+
 8703:  +2   ^^        b?
 8704:  +4   ^ ^       (*PRUNE)
 8705: +12   ^ ^       c+
 8706: +14   ^    ^    (*FAIL)
 8707: +14   ^   ^     (*FAIL)
 8708: +14   ^  ^      (*FAIL)
 8709: No match
 8710: 
 8711: /a+b?(*COMMIT)c+(*FAIL)/C
 8712:     aaabccc
 8713: --->aaabccc
 8714:  +0 ^           a+
 8715:  +2 ^  ^        b?
 8716:  +4 ^   ^       (*COMMIT)
 8717: +13 ^   ^       c+
 8718: +15 ^      ^    (*FAIL)
 8719: +15 ^     ^     (*FAIL)
 8720: +15 ^    ^      (*FAIL)
 8721: No match
 8722:     
 8723: /a+b?(*SKIP)c+(*FAIL)/C
 8724:     aaabcccaaabccc
 8725: --->aaabcccaaabccc
 8726:  +0 ^                  a+
 8727:  +2 ^  ^               b?
 8728:  +4 ^   ^              (*SKIP)
 8729: +11 ^   ^              c+
 8730: +13 ^      ^           (*FAIL)
 8731: +13 ^     ^            (*FAIL)
 8732: +13 ^    ^             (*FAIL)
 8733:  +0        ^           a+
 8734:  +2        ^  ^        b?
 8735:  +4        ^   ^       (*SKIP)
 8736: +11        ^   ^       c+
 8737: +13        ^      ^    (*FAIL)
 8738: +13        ^     ^     (*FAIL)
 8739: +13        ^    ^      (*FAIL)
 8740: No match
 8741: 
 8742: /a+b?(*THEN)c+(*FAIL)/C
 8743:     aaabccc
 8744: --->aaabccc
 8745:  +0 ^           a+
 8746:  +2 ^  ^        b?
 8747:  +4 ^   ^       (*THEN)
 8748: +11 ^   ^       c+
 8749: +13 ^      ^    (*FAIL)
 8750: +13 ^     ^     (*FAIL)
 8751: +13 ^    ^      (*FAIL)
 8752:  +0  ^          a+
 8753:  +2  ^ ^        b?
 8754:  +4  ^  ^       (*THEN)
 8755: +11  ^  ^       c+
 8756: +13  ^     ^    (*FAIL)
 8757: +13  ^    ^     (*FAIL)
 8758: +13  ^   ^      (*FAIL)
 8759:  +0   ^         a+
 8760:  +2   ^^        b?
 8761:  +4   ^ ^       (*THEN)
 8762: +11   ^ ^       c+
 8763: +13   ^    ^    (*FAIL)
 8764: +13   ^   ^     (*FAIL)
 8765: +13   ^  ^      (*FAIL)
 8766: No match
 8767:     
 8768: /a(*MARK)b/ 
 8769: Failed: (*MARK) must have an argument at offset 7
 8770: 
 8771: /(?i:A{1,}\6666666666)/
 8772: Failed: number is too big at offset 19
 8773: 
 8774: /\g6666666666/
 8775: Failed: number is too big at offset 11
 8776: 
 8777: /[\g6666666666]/BZ
 8778: ------------------------------------------------------------------
 8779:         Bra
 8780:         [6g]
 8781:         Ket
 8782:         End
 8783: ------------------------------------------------------------------
 8784: 
 8785: /(?1)\c[/
 8786: Failed: reference to non-existent subpattern at offset 3
 8787: 
 8788: /.+A/<crlf>
 8789:     \r\nA
 8790: No match
 8791:     
 8792: /\nA/<crlf>
 8793:     \r\nA 
 8794:  0: \x0aA
 8795: 
 8796: /[\r\n]A/<crlf>
 8797:     \r\nA 
 8798:  0: \x0aA
 8799: 
 8800: /(\r|\n)A/<crlf>
 8801:     \r\nA 
 8802:  0: \x0aA
 8803:  1: \x0a
 8804: 
 8805: /a(*CR)b/
 8806: Failed: (*VERB) not recognized at offset 5
 8807: 
 8808: /(*CR)a.b/
 8809:     a\nb
 8810:  0: a\x0ab
 8811:     ** Failers
 8812: No match
 8813:     a\rb  
 8814: No match
 8815: 
 8816: /(*CR)a.b/<lf>
 8817:     a\nb
 8818:  0: a\x0ab
 8819:     ** Failers
 8820: No match
 8821:     a\rb  
 8822: No match
 8823: 
 8824: /(*LF)a.b/<CRLF>
 8825:     a\rb
 8826:  0: a\x0db
 8827:     ** Failers
 8828: No match
 8829:     a\nb  
 8830: No match
 8831: 
 8832: /(*CRLF)a.b/
 8833:     a\rb
 8834:  0: a\x0db
 8835:     a\nb  
 8836:  0: a\x0ab
 8837:     ** Failers
 8838: No match
 8839:     a\r\nb  
 8840: No match
 8841: 
 8842: /(*ANYCRLF)a.b/<CR>
 8843:     ** Failers
 8844: No match
 8845:     a\rb
 8846: No match
 8847:     a\nb  
 8848: No match
 8849:     a\r\nb  
 8850: No match
 8851: 
 8852: /(*ANY)a.b/<cr>
 8853:     ** Failers
 8854: No match
 8855:     a\rb
 8856: No match
 8857:     a\nb  
 8858: No match
 8859:     a\r\nb  
 8860: No match
 8861:     a\x85b 
 8862: No match
 8863:     
 8864: /(*ANY).*/g
 8865:     abc\r\ndef
 8866:  0: abc
 8867:  0: 
 8868:  0: def
 8869:  0: 
 8870: 
 8871: /(*ANYCRLF).*/g
 8872:     abc\r\ndef
 8873:  0: abc
 8874:  0: 
 8875:  0: def
 8876:  0: 
 8877: 
 8878: /(*CRLF).*/g
 8879:     abc\r\ndef
 8880:  0: abc
 8881:  0: 
 8882:  0: def
 8883:  0: 
 8884: 
 8885: /a\Rb/I<bsr_anycrlf>
 8886: Capturing subpattern count = 0
 8887: Options: bsr_anycrlf
 8888: First char = 'a'
 8889: Need char = 'b'
 8890:     a\rb
 8891:  0: a\x0db
 8892:     a\nb
 8893:  0: a\x0ab
 8894:     a\r\nb
 8895:  0: a\x0d\x0ab
 8896:     ** Failers
 8897: No match
 8898:     a\x85b
 8899: No match
 8900:     a\x0bb     
 8901: No match
 8902: 
 8903: /a\Rb/I<bsr_unicode>
 8904: Capturing subpattern count = 0
 8905: Options: bsr_unicode
 8906: First char = 'a'
 8907: Need char = 'b'
 8908:     a\rb
 8909:  0: a\x0db
 8910:     a\nb
 8911:  0: a\x0ab
 8912:     a\r\nb
 8913:  0: a\x0d\x0ab
 8914:     a\x85b
 8915:  0: a\x85b
 8916:     a\x0bb     
 8917:  0: a\x0bb
 8918:     ** Failers 
 8919: No match
 8920:     a\x85b\<bsr_anycrlf>
 8921: No match
 8922:     a\x0bb\<bsr_anycrlf>
 8923: No match
 8924:     
 8925: /a\R?b/I<bsr_anycrlf>
 8926: Capturing subpattern count = 0
 8927: Options: bsr_anycrlf
 8928: First char = 'a'
 8929: Need char = 'b'
 8930:     a\rb
 8931:  0: a\x0db
 8932:     a\nb
 8933:  0: a\x0ab
 8934:     a\r\nb
 8935:  0: a\x0d\x0ab
 8936:     ** Failers
 8937: No match
 8938:     a\x85b
 8939: No match
 8940:     a\x0bb     
 8941: No match
 8942: 
 8943: /a\R?b/I<bsr_unicode>
 8944: Capturing subpattern count = 0
 8945: Options: bsr_unicode
 8946: First char = 'a'
 8947: Need char = 'b'
 8948:     a\rb
 8949:  0: a\x0db
 8950:     a\nb
 8951:  0: a\x0ab
 8952:     a\r\nb
 8953:  0: a\x0d\x0ab
 8954:     a\x85b
 8955:  0: a\x85b
 8956:     a\x0bb     
 8957:  0: a\x0bb
 8958:     ** Failers 
 8959: No match
 8960:     a\x85b\<bsr_anycrlf>
 8961: No match
 8962:     a\x0bb\<bsr_anycrlf>
 8963: No match
 8964:     
 8965: /a\R{2,4}b/I<bsr_anycrlf>
 8966: Capturing subpattern count = 0
 8967: Options: bsr_anycrlf
 8968: First char = 'a'
 8969: Need char = 'b'
 8970:     a\r\n\nb
 8971:  0: a\x0d\x0a\x0ab
 8972:     a\n\r\rb
 8973:  0: a\x0a\x0d\x0db
 8974:     a\r\n\r\n\r\n\r\nb
 8975:  0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
 8976:     ** Failers
 8977: No match
 8978:     a\x85\85b
 8979: No match
 8980:     a\x0b\0bb     
 8981: No match
 8982: 
 8983: /a\R{2,4}b/I<bsr_unicode>
 8984: Capturing subpattern count = 0
 8985: Options: bsr_unicode
 8986: First char = 'a'
 8987: Need char = 'b'
 8988:     a\r\rb
 8989:  0: a\x0d\x0db
 8990:     a\n\n\nb
 8991:  0: a\x0a\x0a\x0ab
 8992:     a\r\n\n\r\rb
 8993:  0: a\x0d\x0a\x0a\x0d\x0db
 8994:     a\x85\85b
 8995: No match
 8996:     a\x0b\0bb     
 8997: No match
 8998:     ** Failers 
 8999: No match
 9000:     a\r\r\r\r\rb 
 9001: No match
 9002:     a\x85\85b\<bsr_anycrlf>
 9003: No match
 9004:     a\x0b\0bb\<bsr_anycrlf>
 9005: No match
 9006:  
 9007: /(*BSR_ANYCRLF)a\Rb/I
 9008: Capturing subpattern count = 0
 9009: Options: bsr_anycrlf
 9010: First char = 'a'
 9011: Need char = 'b'
 9012:     a\nb
 9013:  0: a\x0ab
 9014:     a\rb 
 9015:  0: a\x0db
 9016: 
 9017: /(*BSR_UNICODE)a\Rb/I
 9018: Capturing subpattern count = 0
 9019: Options: bsr_unicode
 9020: First char = 'a'
 9021: Need char = 'b'
 9022:     a\x85b
 9023:  0: a\x85b
 9024: 
 9025: /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
 9026: Capturing subpattern count = 0
 9027: Options: bsr_anycrlf
 9028: Forced newline sequence: CRLF
 9029: First char = 'a'
 9030: Need char = 'b'
 9031:     a\nb
 9032:  0: a\x0ab
 9033:     a\rb 
 9034:  0: a\x0db
 9035: 
 9036: /(*CRLF)(*BSR_UNICODE)a\Rb/I
 9037: Capturing subpattern count = 0
 9038: Options: bsr_unicode
 9039: Forced newline sequence: CRLF
 9040: First char = 'a'
 9041: Need char = 'b'
 9042:     a\x85b
 9043:  0: a\x85b
 9044: 
 9045: /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
 9046: Capturing subpattern count = 0
 9047: Options: bsr_anycrlf
 9048: Forced newline sequence: CR
 9049: First char = 'a'
 9050: Need char = 'b'
 9051: 
 9052: /(?<a>)(?&)/
 9053: Failed: subpattern name expected at offset 9
 9054: 
 9055: /(?<abc>)(?&a)/
 9056: Failed: reference to non-existent subpattern at offset 12
 9057: 
 9058: /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
 9059: Failed: reference to non-existent subpattern at offset 32
 9060: 
 9061: /(?+-a)/
 9062: Failed: digit expected after (?+ at offset 3
 9063: 
 9064: /(?-+a)/
 9065: Failed: unrecognized character after (? or (?- at offset 3
 9066: 
 9067: /(?(-1))/
 9068: Failed: reference to non-existent subpattern at offset 6
 9069: 
 9070: /(?(+10))/
 9071: Failed: reference to non-existent subpattern at offset 7
 9072: 
 9073: /(?(10))/
 9074: Failed: reference to non-existent subpattern at offset 6
 9075: 
 9076: /(?(+2))()()/
 9077: 
 9078: /(?(2))()()/
 9079: 
 9080: /\k''/
 9081: Failed: subpattern name expected at offset 3
 9082: 
 9083: /\k<>/
 9084: Failed: subpattern name expected at offset 3
 9085: 
 9086: /\k{}/
 9087: Failed: subpattern name expected at offset 3
 9088: 
 9089: /\k/
 9090: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
 9091: 
 9092: /\kabc/
 9093: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
 9094: 
 9095: /(?P=)/
 9096: Failed: subpattern name expected at offset 4
 9097: 
 9098: /(?P>)/
 9099: Failed: subpattern name expected at offset 4
 9100: 
 9101: /(?!\w)(?R)/
 9102: Failed: recursive call could loop indefinitely at offset 9
 9103: 
 9104: /(?=\w)(?R)/
 9105: Failed: recursive call could loop indefinitely at offset 9
 9106: 
 9107: /(?<!\w)(?R)/
 9108: Failed: recursive call could loop indefinitely at offset 10
 9109: 
 9110: /(?<=\w)(?R)/
 9111: Failed: recursive call could loop indefinitely at offset 10
 9112: 
 9113: /[[:foo:]]/
 9114: Failed: unknown POSIX class name at offset 3
 9115: 
 9116: /[[:1234:]]/
 9117: Failed: unknown POSIX class name at offset 3
 9118: 
 9119: /[[:f\oo:]]/
 9120: Failed: unknown POSIX class name at offset 3
 9121: 
 9122: /[[: :]]/
 9123: Failed: unknown POSIX class name at offset 3
 9124: 
 9125: /[[:...:]]/
 9126: Failed: unknown POSIX class name at offset 3
 9127: 
 9128: /[[:l\ower:]]/
 9129: Failed: unknown POSIX class name at offset 3
 9130: 
 9131: /[[:abc\:]]/
 9132: Failed: unknown POSIX class name at offset 3
 9133: 
 9134: /[abc[:x\]pqr:]]/
 9135: Failed: unknown POSIX class name at offset 6
 9136: 
 9137: /[[:a\dz:]]/
 9138: Failed: unknown POSIX class name at offset 3
 9139: 
 9140: /(^(a|b\g<-1'c))/
 9141: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
 9142: 
 9143: /^(?+1)(?<a>x|y){0}z/
 9144:     xzxx
 9145:  0: xz
 9146:     yzyy 
 9147:  0: yz
 9148:     ** Failers
 9149: No match
 9150:     xxz  
 9151: No match
 9152: 
 9153: /(\3)(\1)(a)/
 9154:     cat
 9155: No match
 9156: 
 9157: /(\3)(\1)(a)/<JS>
 9158:     cat
 9159:  0: a
 9160:  1: 
 9161:  2: 
 9162:  3: a
 9163:     
 9164: /TA]/
 9165:     The ACTA] comes 
 9166:  0: TA]
 9167: 
 9168: /TA]/<JS>
 9169: Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
 9170: 
 9171: /(?2)[]a()b](abc)/
 9172: Failed: reference to non-existent subpattern at offset 3
 9173: 
 9174: /(?2)[^]a()b](abc)/
 9175: Failed: reference to non-existent subpattern at offset 3
 9176: 
 9177: /(?1)[]a()b](abc)/
 9178:     abcbabc
 9179:  0: abcbabc
 9180:  1: abc
 9181:     ** Failers 
 9182: No match
 9183:     abcXabc
 9184: No match
 9185: 
 9186: /(?1)[^]a()b](abc)/
 9187:     abcXabc
 9188:  0: abcXabc
 9189:  1: abc
 9190:     ** Failers 
 9191: No match
 9192:     abcbabc
 9193: No match
 9194: 
 9195: /(?2)[]a()b](abc)(xyz)/
 9196:     xyzbabcxyz
 9197:  0: xyzbabcxyz
 9198:  1: abc
 9199:  2: xyz
 9200: 
 9201: /(?&N)[]a(?<N>)](?<M>abc)/
 9202: Failed: reference to non-existent subpattern at offset 4
 9203: 
 9204: /(?&N)[]a(?<N>)](abc)/
 9205: Failed: reference to non-existent subpattern at offset 4
 9206: 
 9207: /a[]b/
 9208: Failed: missing terminating ] for character class at offset 4
 9209: 
 9210: /a[^]b/
 9211: Failed: missing terminating ] for character class at offset 5
 9212: 
 9213: /a[]b/<JS>
 9214:     ** Failers
 9215: No match
 9216:     ab
 9217: No match
 9218: 
 9219: /a[]+b/<JS>
 9220:     ** Failers
 9221: No match
 9222:     ab 
 9223: No match
 9224: 
 9225: /a[]*+b/<JS>
 9226:     ** Failers
 9227: No match
 9228:     ab 
 9229: No match
 9230: 
 9231: /a[^]b/<JS>
 9232:     aXb
 9233:  0: aXb
 9234:     a\nb 
 9235:  0: a\x0ab
 9236:     ** Failers
 9237: No match
 9238:     ab  
 9239: No match
 9240:     
 9241: /a[^]+b/<JS> 
 9242:     aXb
 9243:  0: aXb
 9244:     a\nX\nXb 
 9245:  0: a\x0aX\x0aXb
 9246:     ** Failers
 9247: No match
 9248:     ab  
 9249: No match
 9250: 
 9251: /a(?!)+b/
 9252: Failed: nothing to repeat at offset 5
 9253: 
 9254: /a(*FAIL)+b/
 9255: Failed: nothing to repeat at offset 8
 9256: 
 9257: /(abc|pqr|123){0}[xyz]/SI
 9258: Capturing subpattern count = 1
 9259: No options
 9260: No first char
 9261: No need char
 9262: Subject length lower bound = 1
 9263: Starting byte set: x y z 
 9264: 
 9265: /(?(?=.*b)b|^)/CI
 9266: Capturing subpattern count = 0
 9267: Options:
 9268: No first char
 9269: No need char
 9270:    adc
 9271: --->adc
 9272:  +0 ^       (?(?=.*b)b|^)
 9273:  +2 ^       (?=.*b)
 9274:  +5 ^       .*
 9275:  +7 ^  ^    b
 9276:  +7 ^ ^     b
 9277:  +7 ^^      b
 9278:  +7 ^       b
 9279: +12 ^       )
 9280: +13 ^       
 9281:  0: 
 9282:    abc 
 9283: --->abc
 9284:  +0 ^       (?(?=.*b)b|^)
 9285:  +2 ^       (?=.*b)
 9286:  +5 ^       .*
 9287:  +7 ^  ^    b
 9288:  +7 ^ ^     b
 9289:  +7 ^^      b
 9290:  +8 ^ ^     )
 9291:  +9 ^       b
 9292:  +0  ^      (?(?=.*b)b|^)
 9293:  +2  ^      (?=.*b)
 9294:  +5  ^      .*
 9295:  +7  ^ ^    b
 9296:  +7  ^^     b
 9297:  +7  ^      b
 9298:  +8  ^^     )
 9299:  +9  ^      b
 9300: +10  ^^     |
 9301: +13  ^^     
 9302:  0: b
 9303:    
 9304: /(?(?=b).*b|^d)/I
 9305: Capturing subpattern count = 0
 9306: No options
 9307: No first char
 9308: No need char
 9309: 
 9310: /(?(?=.*b).*b|^d)/I
 9311: Capturing subpattern count = 0
 9312: No options
 9313: First char at start or follows newline
 9314: No need char
 9315: 
 9316: /xyz/C
 9317:   xyz 
 9318: --->xyz
 9319:  +0 ^       x
 9320:  +1 ^^      y
 9321:  +2 ^ ^     z
 9322:  +3 ^  ^    
 9323:  0: xyz
 9324:   abcxyz 
 9325: --->abcxyz
 9326:  +0    ^       x
 9327:  +1    ^^      y
 9328:  +2    ^ ^     z
 9329:  +3    ^  ^    
 9330:  0: xyz
 9331:   abcxyz\Y
 9332: --->abcxyz
 9333:  +0 ^          x
 9334:  +0  ^         x
 9335:  +0   ^        x
 9336:  +0    ^       x
 9337:  +1    ^^      y
 9338:  +2    ^ ^     z
 9339:  +3    ^  ^    
 9340:  0: xyz
 9341:   ** Failers 
 9342: No match
 9343:   abc
 9344: No match
 9345:   abc\Y
 9346: --->abc
 9347:  +0 ^       x
 9348:  +0  ^      x
 9349:  +0   ^     x
 9350:  +0    ^    x
 9351: No match
 9352:   abcxypqr  
 9353: No match
 9354:   abcxypqr\Y  
 9355: --->abcxypqr
 9356:  +0 ^            x
 9357:  +0  ^           x
 9358:  +0   ^          x
 9359:  +0    ^         x
 9360:  +1    ^^        y
 9361:  +2    ^ ^       z
 9362:  +0     ^        x
 9363:  +0      ^       x
 9364:  +0       ^      x
 9365:  +0        ^     x
 9366:  +0         ^    x
 9367: No match
 9368:   
 9369: /(*NO_START_OPT)xyz/C
 9370:   abcxyz 
 9371: --->abcxyz
 9372: +15 ^          x
 9373: +15  ^         x
 9374: +15   ^        x
 9375: +15    ^       x
 9376: +16    ^^      y
 9377: +17    ^ ^     z
 9378: +18    ^  ^    
 9379:  0: xyz
 9380: 
 9381: /xyz/CY
 9382:   abcxyz 
 9383: --->abcxyz
 9384:  +0 ^          x
 9385:  +0  ^         x
 9386:  +0   ^        x
 9387:  +0    ^       x
 9388:  +1    ^^      y
 9389:  +2    ^ ^     z
 9390:  +3    ^  ^    
 9391:  0: xyz
 9392: 
 9393: /^"((?(?=[a])[^"])|b)*"$/C
 9394:     "ab"
 9395: --->"ab"
 9396:  +0 ^        ^
 9397:  +1 ^        "
 9398:  +2 ^^       ((?(?=[a])[^"])|b)*
 9399:  +3 ^^       (?(?=[a])[^"])
 9400:  +5 ^^       (?=[a])
 9401:  +8 ^^       [a]
 9402: +11 ^ ^      )
 9403: +12 ^^       [^"]
 9404: +16 ^ ^      )
 9405: +17 ^ ^      |
 9406:  +3 ^ ^      (?(?=[a])[^"])
 9407:  +5 ^ ^      (?=[a])
 9408:  +8 ^ ^      [a]
 9409: +21 ^ ^      "
 9410: +18 ^ ^      b
 9411: +19 ^  ^     )
 9412:  +3 ^  ^     (?(?=[a])[^"])
 9413:  +5 ^  ^     (?=[a])
 9414:  +8 ^  ^     [a]
 9415: +21 ^  ^     "
 9416: +22 ^   ^    $
 9417: +23 ^   ^    
 9418:  0: "ab"
 9419:  1: 
 9420: 
 9421: /^"((?(?=[a])[^"])|b)*"$/
 9422:     "ab"
 9423:  0: "ab"
 9424:  1: 
 9425: 
 9426: /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
 9427: Failed: reference to non-existent subpattern at offset 5
 9428: 
 9429: /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
 9430:     XYabcdY
 9431:  0: XYabcdY
 9432:  1: a
 9433:  2: b
 9434:  3: c
 9435:  4: d
 9436:  5: Y
 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: /Xa{2,4}+b/
 9463:     X\P
 9464: Partial match: X
 9465:     Xa\P
 9466: Partial match: Xa
 9467:     Xaa\P 
 9468: Partial match: Xaa
 9469:     Xaaa\P
 9470: Partial match: Xaaa
 9471:     Xaaaa\P 
 9472: Partial match: Xaaaa
 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:     X3\P
 9502: Partial match: X3
 9503:     X33\P 
 9504: Partial match: X33
 9505:     X333\P
 9506: Partial match: X333
 9507:     X3333\P 
 9508: Partial match: X3333
 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\D{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[abc]{2,4}+b/
 9571:     X\P
 9572: Partial match: X
 9573:     Xa\P
 9574: Partial match: Xa
 9575:     Xaa\P 
 9576: Partial match: Xaa
 9577:     Xaaa\P
 9578: Partial match: Xaaa
 9579:     Xaaaa\P 
 9580: Partial match: Xaaaa
 9581:     
 9582: /X[^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: /X[^a]{2,4}+b/
 9607:     X\P
 9608: Partial match: X
 9609:     Xz\P
 9610: Partial match: Xz
 9611:     Xzz\P 
 9612: Partial match: Xzz
 9613:     Xzzz\P
 9614: Partial match: Xzzz
 9615:     Xzzzz\P 
 9616: Partial match: Xzzzz
 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: /(Y)X\1{2,4}+b/
 9643:     YX\P
 9644: Partial match: YX
 9645:     YXY\P
 9646: Partial match: YXY
 9647:     YXYY\P 
 9648: Partial match: YXYY
 9649:     YXYYY\P
 9650: Partial match: YXYYY
 9651:     YXYYYY\P 
 9652: Partial match: YXYYYY
 9653:     
 9654: /\++\KZ|\d+X|9+Y/
 9655:     ++++123999\P
 9656: Partial match: 123999
 9657:     ++++123999Y\P
 9658:  0: 999Y
 9659:     ++++Z1234\P 
 9660:  0: Z
 9661: 
 9662: /Z(*F)/
 9663:     Z\P
 9664: No match
 9665:     ZA\P 
 9666: No match
 9667:     
 9668: /Z(?!)/
 9669:     Z\P 
 9670: No match
 9671:     ZA\P 
 9672: No match
 9673: 
 9674: /dog(sbody)?/
 9675:     dogs\P
 9676:  0: dog
 9677:     dogs\P\P 
 9678: Partial match: dogs
 9679:     
 9680: /dog(sbody)??/
 9681:     dogs\P
 9682:  0: dog
 9683:     dogs\P\P 
 9684:  0: dog
 9685: 
 9686: /dog|dogsbody/
 9687:     dogs\P
 9688:  0: dog
 9689:     dogs\P\P 
 9690:  0: dog
 9691:  
 9692: /dogsbody|dog/
 9693:     dogs\P
 9694:  0: dog
 9695:     dogs\P\P 
 9696: Partial match: dogs
 9697: 
 9698: /\bthe cat\b/
 9699:     the cat\P
 9700:  0: the cat
 9701:     the cat\P\P
 9702: Partial match: the cat
 9703: 
 9704: /abc/
 9705:    abc\P
 9706:  0: abc
 9707:    abc\P\P
 9708:  0: abc
 9709:    
 9710: /abc\K123/
 9711:     xyzabc123pqr
 9712:  0: 123
 9713:     xyzabc12\P
 9714: Partial match: abc12
 9715:     xyzabc12\P\P
 9716: Partial match: abc12
 9717:     
 9718: /(?<=abc)123/
 9719:     xyzabc123pqr 
 9720:  0: 123
 9721:     xyzabc12\P
 9722: Partial match: abc12
 9723:     xyzabc12\P\P
 9724: Partial match: abc12
 9725: 
 9726: /\babc\b/
 9727:     +++abc+++
 9728:  0: abc
 9729:     +++ab\P
 9730: Partial match: +ab
 9731:     +++ab\P\P  
 9732: Partial match: +ab
 9733: 
 9734: /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
 9735: ------------------------------------------------------------------
 9736:         Bra
 9737:         Recurse
 9738:         Recurse
 9739:         Cond
 9740:         Cond def
 9741:         CBra 1
 9742:         <
 9743:         [^m]
 9744:         [^>]
 9745:         >
 9746:         [^<]
 9747:         Ket
 9748:         CBra 2
 9749:         \w*+
 9750:         Ket
 9751:         Ket
 9752:         Ket
 9753:         End
 9754: ------------------------------------------------------------------
 9755: 
 9756: /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
 9757: ------------------------------------------------------------------
 9758:         Bra
 9759:         Recurse
 9760:         Recurse
 9761:         Cond
 9762:         Cond def
 9763:         CBra 1
 9764:         <
 9765:         [\x00-/:-\xff] (neg)
 9766:         [^>]
 9767:         >
 9768:         [^<]
 9769:         Ket
 9770:         CBra 2
 9771:         \w*+
 9772:         Ket
 9773:         Ket
 9774:         Ket
 9775:         End
 9776: ------------------------------------------------------------------
 9777: 
 9778: /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
 9779: ------------------------------------------------------------------
 9780:         Bra
 9781:         CBra 1
 9782:         ab
 9783:         Ket
 9784:         CBra 2
 9785:         x
 9786:         CBra 3
 9787:         y
 9788:         Ket
 9789:         z
 9790:         CBra 4
 9791:         cd
 9792:         Close 4
 9793:         Close 2
 9794:         *ACCEPT
 9795:         Ket
 9796:         Ket
 9797:         pq
 9798:         Ket
 9799:         End
 9800: ------------------------------------------------------------------
 9801: 
 9802: /abc\K/+
 9803:     abcdef
 9804:  0: 
 9805:  0+ def
 9806:     abcdef\N\N
 9807:  0: 
 9808:  0+ def
 9809:     xyzabcdef\N\N
 9810:  0: 
 9811:  0+ def
 9812:     ** Failers
 9813: No match
 9814:     abcdef\N 
 9815: No match
 9816:     xyzabcdef\N
 9817: No match
 9818:     
 9819: /^(?:(?=abc)|abc\K)/+
 9820:     abcdef
 9821:  0: 
 9822:  0+ abcdef
 9823:     abcdef\N\N 
 9824:  0: 
 9825:  0+ def
 9826:     ** Failers 
 9827: No match
 9828:     abcdef\N 
 9829: No match
 9830: 
 9831: /a?b?/+
 9832:     xyz
 9833:  0: 
 9834:  0+ xyz
 9835:     xyzabc
 9836:  0: 
 9837:  0+ xyzabc
 9838:     xyzabc\N
 9839:  0: ab
 9840:  0+ c
 9841:     xyzabc\N\N
 9842:  0: 
 9843:  0+ yzabc
 9844:     xyz\N\N    
 9845:  0: 
 9846:  0+ yz
 9847:     ** Failers 
 9848:  0: 
 9849:  0+ ** Failers
 9850:     xyz\N 
 9851: No match
 9852: 
 9853: /^a?b?/+
 9854:     xyz
 9855:  0: 
 9856:  0+ xyz
 9857:     xyzabc
 9858:  0: 
 9859:  0+ xyzabc
 9860:     ** Failers 
 9861:  0: 
 9862:  0+ ** Failers
 9863:     xyzabc\N
 9864: No match
 9865:     xyzabc\N\N
 9866: No match
 9867:     xyz\N\N    
 9868: No match
 9869:     xyz\N 
 9870: No match
 9871:     
 9872: /^(?<name>a|b\g<name>c)/
 9873:     aaaa
 9874:  0: a
 9875:  1: a
 9876:     bacxxx
 9877:  0: bac
 9878:  1: bac
 9879:     bbaccxxx 
 9880:  0: bbacc
 9881:  1: bbacc
 9882:     bbbacccxx
 9883:  0: bbbaccc
 9884:  1: bbbaccc
 9885: 
 9886: /^(?<name>a|b\g'name'c)/
 9887:     aaaa
 9888:  0: a
 9889:  1: a
 9890:     bacxxx
 9891:  0: bac
 9892:  1: bac
 9893:     bbaccxxx 
 9894:  0: bbacc
 9895:  1: bbacc
 9896:     bbbacccxx
 9897:  0: bbbaccc
 9898:  1: bbbaccc
 9899: 
 9900: /^(a|b\g<1>c)/
 9901:     aaaa
 9902:  0: a
 9903:  1: a
 9904:     bacxxx
 9905:  0: bac
 9906:  1: bac
 9907:     bbaccxxx 
 9908:  0: bbacc
 9909:  1: bbacc
 9910:     bbbacccxx
 9911:  0: bbbaccc
 9912:  1: bbbaccc
 9913: 
 9914: /^(a|b\g'1'c)/
 9915:     aaaa
 9916:  0: a
 9917:  1: a
 9918:     bacxxx
 9919:  0: bac
 9920:  1: bac
 9921:     bbaccxxx 
 9922:  0: bbacc
 9923:  1: bbacc
 9924:     bbbacccxx
 9925:  0: bbbaccc
 9926:  1: bbbaccc
 9927: 
 9928: /^(a|b\g'-1'c)/
 9929:     aaaa
 9930:  0: a
 9931:  1: a
 9932:     bacxxx
 9933:  0: bac
 9934:  1: bac
 9935:     bbaccxxx 
 9936:  0: bbacc
 9937:  1: bbacc
 9938:     bbbacccxx
 9939:  0: bbbaccc
 9940:  1: bbbaccc
 9941: 
 9942: /(^(a|b\g<-1>c))/
 9943:     aaaa
 9944:  0: a
 9945:  1: a
 9946:  2: a
 9947:     bacxxx
 9948:  0: bac
 9949:  1: bac
 9950:  2: bac
 9951:     bbaccxxx 
 9952:  0: bbacc
 9953:  1: bbacc
 9954:  2: bbacc
 9955:     bbbacccxx
 9956:  0: bbbaccc
 9957:  1: bbbaccc
 9958:  2: bbbaccc
 9959: 
 9960: /(?-i:\g<name>)(?i:(?<name>a))/
 9961:     XaaX
 9962:  0: aa
 9963:  1: a
 9964:     XAAX 
 9965:  0: AA
 9966:  1: A
 9967: 
 9968: /(?i:\g<name>)(?-i:(?<name>a))/
 9969:     XaaX
 9970:  0: aa
 9971:  1: a
 9972:     ** Failers 
 9973: No match
 9974:     XAAX 
 9975: No match
 9976: 
 9977: /(?-i:\g<+1>)(?i:(a))/
 9978:     XaaX
 9979:  0: aa
 9980:  1: a
 9981:     XAAX 
 9982:  0: AA
 9983:  1: A
 9984: 
 9985: /(?=(?<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>\})\}))\{/
 9986: 
 9987: /(?<n>a|b|c)\g<n>*/
 9988:    abc
 9989:  0: abc
 9990:  1: a
 9991:    accccbbb 
 9992:  0: accccbbb
 9993:  1: a
 9994: 
 9995: /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
 9996:     XYabcdY
 9997:  0: XYabcdY
 9998:  1: a
 9999:  2: b
10000:  3: <unset>
10001:  4: <unset>
10002:  5: c
10003:  6: d
10004:  7: Y
10005: 
10006: /(?<=b(?1)|zzz)(a)/
10007:     xbaax
10008:  0: a
10009:  1: a
10010:     xzzzax 
10011:  0: a
10012:  1: a
10013: 
10014: /(a)(?<=b\1)/
10015: Failed: lookbehind assertion is not fixed length at offset 10
10016: 
10017: /(a)(?<=b+(?1))/
10018: Failed: lookbehind assertion is not fixed length at offset 13
10019: 
10020: /(a+)(?<=b(?1))/
10021: Failed: lookbehind assertion is not fixed length at offset 14
10022: 
10023: /(a(?<=b(?1)))/
10024: Failed: lookbehind assertion is not fixed length at offset 13
10025: 
10026: /(?<=b(?1))xyz/
10027: Failed: reference to non-existent subpattern at offset 8
10028: 
10029: /(?<=b(?1))xyz(b+)pqrstuvew/
10030: Failed: lookbehind assertion is not fixed length at offset 26
10031: 
10032: /(a|bc)\1/SI
10033: Capturing subpattern count = 1
10034: Max back reference = 1
10035: No options
10036: No first char
10037: No need char
10038: Subject length lower bound = 2
10039: Starting byte set: a b 
10040: 
10041: /(a|bc)\1{2,3}/SI
10042: Capturing subpattern count = 1
10043: Max back reference = 1
10044: No options
10045: No first char
10046: No need char
10047: Subject length lower bound = 3
10048: Starting byte set: a b 
10049: 
10050: /(a|bc)(?1)/SI
10051: Capturing subpattern count = 1
10052: No options
10053: No first char
10054: No need char
10055: Subject length lower bound = 2
10056: Starting byte set: a b 
10057: 
10058: /(a|b\1)(a|b\1)/SI
10059: Capturing subpattern count = 2
10060: Max back reference = 1
10061: No options
10062: No first char
10063: No need char
10064: Subject length lower bound = 2
10065: Starting byte set: a b 
10066: 
10067: /(a|b\1){2}/SI
10068: Capturing subpattern count = 1
10069: Max back reference = 1
10070: No options
10071: No first char
10072: No need char
10073: Subject length lower bound = 2
10074: Starting byte set: a b 
10075: 
10076: /(a|bbbb\1)(a|bbbb\1)/SI
10077: Capturing subpattern count = 2
10078: Max back reference = 1
10079: No options
10080: No first char
10081: No need char
10082: Subject length lower bound = 2
10083: Starting byte set: a b 
10084: 
10085: /(a|bbbb\1){2}/SI
10086: Capturing subpattern count = 1
10087: Max back reference = 1
10088: No options
10089: No first char
10090: No need char
10091: Subject length lower bound = 2
10092: Starting byte set: a b 
10093: 
10094: /^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
10095: Capturing subpattern count = 1
10096: Options: anchored
10097: No first char
10098: Need char = ':'
10099: Subject length lower bound = 22
10100: No set of starting bytes
10101: 
10102: /<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
10103: Capturing subpattern count = 11
10104: Options: caseless dotall
10105: First char = '<'
10106: Need char = '>'
10107: Subject length lower bound = 47
10108: No set of starting bytes
10109: 
10110: "(?>.*/)foo"SI
10111: Capturing subpattern count = 0
10112: No options
10113: First char at start or follows newline
10114: Need char = 'o'
10115: Subject length lower bound = 4
10116: No set of starting bytes
10117: 
10118: /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10119: Capturing subpattern count = 0
10120: Options: extended
10121: No first char
10122: Need char = '-'
10123: Subject length lower bound = 8
10124: No set of starting bytes
10125: 
10126: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10127: Capturing subpattern count = 1
10128: Options: caseless
10129: No first char
10130: No need char
10131: Subject length lower bound = 1
10132: Starting byte set: A B C a b c 
10133: 
10134: /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10135: Capturing subpattern count = 0
10136: No options
10137: No first char
10138: Need char = 'b'
10139: Subject length lower bound = 41
10140: Starting byte set: c d 
10141: 
10142: /<a[\s]+href[\s]*=[\s]*          # find <a href=
10143:  ([\"\'])?                       # find single or double quote
10144:  (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10145:                                  # quote, otherwise match up to next space
10146: /isxSI
10147: Capturing subpattern count = 3
10148: Max back reference = 1
10149: Options: caseless extended dotall
10150: First char = '<'
10151: Need char = '='
10152: Subject length lower bound = 9
10153: No set of starting bytes
10154: 
10155: /^(?!:)                       # colon disallowed at start
10156:   (?:                         # start of item
10157:     (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10158:     (?(1)0 | () ) )           # if null previously matched, fail; else null
10159:     :                         # followed by colon
10160:   ){1,7}                      # end item; 1-7 of them required               
10161:   [0-9a-f]{1,4} $             # final hex number at end of string
10162:   (?(1)|.)                    # check that there was an empty component
10163:   /xiIS
10164: Capturing subpattern count = 1
10165: Options: anchored caseless extended
10166: No first char
10167: Need char = ':'
10168: Subject length lower bound = 2
10169: No set of starting bytes
10170: 
10171: /(?|(?<a>A)|(?<a>B))/I
10172: Capturing subpattern count = 1
10173: Named capturing subpatterns:
10174:   a   1
10175:   a   1
10176: No options
10177: No first char
10178: No need char
10179:     AB\Ca
10180:  0: A
10181:  1: A
10182:   C A (1) a
10183:     BA\Ca
10184:  0: B
10185:  1: B
10186:   C B (1) a
10187: 
10188: /(?|(?<a>A)|(?<b>B))/ 
10189: Failed: different names for subpatterns of the same number are not allowed at offset 15
10190: 
10191: /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10192:     b(?<quote> (?<apostrophe>')|(?<realquote>")) ) 
10193:     (?('quote')[a-z]+|[0-9]+)/JIx
10194: Capturing subpattern count = 6
10195: Named capturing subpatterns:
10196:   apostrophe   2
10197:   apostrophe   5
10198:   quote        1
10199:   quote        4
10200:   realquote    3
10201:   realquote    6
10202: Options: extended dupnames
10203: No first char
10204: No need char
10205:     a"aaaaa
10206:  0: a"aaaaa
10207:  1: "
10208:  2: <unset>
10209:  3: "
10210:     b"aaaaa 
10211:  0: b"aaaaa
10212:  1: <unset>
10213:  2: <unset>
10214:  3: <unset>
10215:  4: "
10216:  5: <unset>
10217:  6: "
10218:     ** Failers 
10219: No match
10220:     b"11111
10221: No match
10222:     a"11111 
10223: No match
10224:     
10225: /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10226: ------------------------------------------------------------------
10227:         Bra
10228:         ^
10229:         Bra
10230:         CBra 1
10231:         a
10232:         Ket
10233:         CBra 2
10234:         b
10235:         Ket
10236:         CBra 3
10237:         c
10238:         Ket
10239:         CBra 4
10240:         d
10241:         Ket
10242:         Alt
10243:         CBra 1
10244:         e
10245:         Ket
10246:         Ket
10247:         Cond
10248:       4 Cond nref
10249:         X
10250:         Alt
10251:         Y
10252:         Ket
10253:         Ket
10254:         End
10255: ------------------------------------------------------------------
10256: Capturing subpattern count = 4
10257: Named capturing subpatterns:
10258:   D   4
10259:   D   1
10260: Options: anchored extended dupnames
10261: No first char
10262: No need char
10263:     abcdX
10264:  0: abcdX
10265:  1: a
10266:  2: b
10267:  3: c
10268:  4: d
10269:     eX
10270:  0: eX
10271:  1: e
10272:     ** Failers
10273: No match
10274:     abcdY
10275: No match
10276:     ey     
10277: No match
10278:     
10279: /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10280: ------------------------------------------------------------------
10281:         Bra
10282:         CBra 1
10283:         a
10284:         Ket
10285:         CBra 2
10286:         b
10287:         Ket
10288:         CBra 3
10289:         c
10290:         Ket
10291:         CBra 4
10292:         d
10293:         Cond
10294:         Cond nrecurse 1
10295:         $
10296:         Alt
10297:         Recurse
10298:         Ket
10299:         Ket
10300:         Ket
10301:         End
10302: ------------------------------------------------------------------
10303: Capturing subpattern count = 4
10304: Named capturing subpatterns:
10305:   A   1
10306:   A   4
10307: Options: extended dupnames
10308: First char = 'a'
10309: Need char = 'd'
10310:     abcdd
10311:  0: abcdd
10312:  1: a
10313:  2: b
10314:  3: c
10315:  4: dd
10316:     ** Failers
10317: No match
10318:     abcdde  
10319: No match
10320: 
10321: /abcd*/
10322:     xxxxabcd\P
10323:  0: abcd
10324:     xxxxabcd\P\P
10325: Partial match: abcd
10326: 
10327: /abcd*/i
10328:     xxxxabcd\P
10329:  0: abcd
10330:     xxxxabcd\P\P
10331: Partial match: abcd
10332:     XXXXABCD\P
10333:  0: ABCD
10334:     XXXXABCD\P\P
10335: Partial match: ABCD
10336: 
10337: /abc\d*/
10338:     xxxxabc1\P
10339:  0: abc1
10340:     xxxxabc1\P\P
10341: Partial match: abc1
10342: 
10343: /(a)bc\1*/
10344:     xxxxabca\P
10345:  0: abca
10346:  1: a
10347:     xxxxabca\P\P
10348: Partial match: abca
10349: 
10350: /abc[de]*/
10351:     xxxxabcde\P
10352:  0: abcde
10353:     xxxxabcde\P\P
10354: Partial match: abcde
10355: 
10356: /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10357:     broken and not behaving as specified in that it *does* bumpalong after
10358:     hitting (*COMMIT). --/
10359: 
10360: /(?1)(A(*COMMIT)|B)D/
10361:     ABD
10362:  0: ABD
10363:  1: B
10364:     XABD
10365:  0: ABD
10366:  1: B
10367:     BAD
10368:  0: BAD
10369:  1: A
10370:     ABXABD  
10371:  0: ABD
10372:  1: B
10373:     ** Failers 
10374: No match
10375:     ABX 
10376: No match
10377:     BAXBAD  
10378: No match
10379: 
10380: /(\3)(\1)(a)/<JS>
10381:     cat
10382:  0: a
10383:  1: 
10384:  2: 
10385:  3: a
10386: 
10387: /(\3)(\1)(a)/SI<JS>
10388: Capturing subpattern count = 3
10389: Max back reference = 3
10390: Options:
10391: No first char
10392: Need char = 'a'
10393: Subject length lower bound = 1
10394: No set of starting bytes
10395:     cat
10396:  0: a
10397:  1: 
10398:  2: 
10399:  3: a
10400: 
10401: /(\3)(\1)(a)/SI
10402: Capturing subpattern count = 3
10403: Max back reference = 3
10404: No options
10405: No first char
10406: Need char = 'a'
10407: Subject length lower bound = 3
10408: No set of starting bytes
10409:     cat
10410: No match
10411: 
10412: /i(?(DEFINE)(?<s>a))/SI
10413: Capturing subpattern count = 1
10414: Named capturing subpatterns:
10415:   s   1
10416: No options
10417: First char = 'i'
10418: No need char
10419: Subject length lower bound = 1
10420: No set of starting bytes
10421:     i
10422:  0: i
10423:     
10424: /()i(?(1)a)/SI 
10425: Capturing subpattern count = 1
10426: No options
10427: No first char
10428: Need char = 'i'
10429: Subject length lower bound = 1
10430: Starting byte set: i 
10431:     ia
10432:  0: ia
10433:  1: 
10434: 
10435: /(?i)a(?-i)b|c/BZ
10436: ------------------------------------------------------------------
10437:         Bra
10438:      /i a
10439:         b
10440:         Alt
10441:         c
10442:         Ket
10443:         End
10444: ------------------------------------------------------------------
10445:     XabX
10446:  0: ab
10447:     XAbX
10448:  0: Ab
10449:     CcC 
10450:  0: c
10451:     ** Failers
10452: No match
10453:     XABX   
10454: No match
10455: 
10456: /(?i)a(?s)b|c/BZ
10457: ------------------------------------------------------------------
10458:         Bra
10459:      /i ab
10460:         Alt
10461:      /i c
10462:         Ket
10463:         End
10464: ------------------------------------------------------------------
10465: 
10466: /(?i)a(?s-i)b|c/BZ
10467: ------------------------------------------------------------------
10468:         Bra
10469:      /i a
10470:         b
10471:         Alt
10472:         c
10473:         Ket
10474:         End
10475: ------------------------------------------------------------------
10476: 
10477: /^(ab(c\1)d|x){2}$/BZ
10478: ------------------------------------------------------------------
10479:         Bra
10480:         ^
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:         Once
10494:         CBra 1
10495:         ab
10496:         CBra 2
10497:         c
10498:         \1
10499:         Ket
10500:         d
10501:         Alt
10502:         x
10503:         Ket
10504:         Ket
10505:         $
10506:         Ket
10507:         End
10508: ------------------------------------------------------------------
10509:     xabcxd
10510:  0: xabcxd
10511:  1: abcxd
10512:  2: cx
10513:     
10514: /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10515: ------------------------------------------------------------------
10516:         Bra
10517:         ^
10518:         Braposzero
10519:         SBraPos
10520:         Recurse
10521:         KetRpos
10522:         Cond
10523:         Cond def
10524:         CBra 1
10525:         Any
10526:         Ket
10527:         Ket
10528:         $
10529:         Ket
10530:         End
10531: ------------------------------------------------------------------
10532: 
10533: /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10534: ------------------------------------------------------------------
10535:         Bra
10536:         ^
10537:         Brazero
10538:         Once
10539:         Recurse
10540:         KetRmax
10541:         Cond
10542:         Cond def
10543:         CBra 1
10544:         Any
10545:         Ket
10546:         Ket
10547:         $
10548:         Ket
10549:         End
10550: ------------------------------------------------------------------
10551: 
10552: / -- The first four of these are not in the Perl >= 5.10 test because Perl 
10553:      documents that the use of \K in assertions is "not well defined". The
10554:      last is here because Perl gives the match as "b" rather than "ab". I
10555:      believe this to be a Perl bug. --/  
10556:       
10557: /(?=a\Kb)ab/
10558:     ab 
10559:  0: b
10560: 
10561: /(?!a\Kb)ac/
10562:     ac 
10563:  0: ac
10564:     
10565: /^abc(?<=b\Kc)d/
10566:     abcd
10567:  0: cd
10568: 
10569: /^abc(?<!b\Kq)d/
10570:     abcd
10571:  0: abcd
10572: 
10573: /(?>a\Kb)z|(ab)/
10574:     ab 
10575:  0: ab
10576:  1: ab
10577: 
10578: /----------------------/
10579: 
10580: /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10581: Failed: recursive call could loop indefinitely at offset 31
10582: 
10583: /abc(*MARK:)pqr/
10584: Failed: (*MARK) must have an argument at offset 10
10585: 
10586: /abc(*:)pqr/
10587: Failed: (*MARK) must have an argument at offset 6
10588: 
10589: /abc(*FAIL:123)xyz/
10590: Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10591: 
10592: /--- This should, and does, fail. In Perl, it does not, which I think is a 
10593:      bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10594: 
10595: /A(*COMMIT)B/+K
10596:     ACABX
10597: No match
10598: 
10599: /--- These should be different, but in Perl 5.11 are not, which I think
10600:      is a bug in Perl. ---/
10601: 
10602: /A(*THEN)B|A(*THEN)C/K
10603:     AC
10604:  0: AC
10605: 
10606: /A(*PRUNE)B|A(*PRUNE)C/K
10607:     AC
10608: No match
10609:     
10610: /--- This should fail; the SKIP advances by one, but when we get to AC, the
10611:      PRUNE kills it. Perl behaves differently. ---/ 
10612:     
10613: /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10614:     AAAC
10615: No match, mark = A
10616: 
10617: /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10618: though PCRE does. ---/
10619: 
10620: /^A(*:A)B|^X(*:A)Y/K
10621:     ** Failers
10622: No match
10623:     XAQQ
10624: No match, mark = A
10625:     
10626: /--- COMMIT at the start of a pattern should be the same as an anchor. Perl 
10627: optimizations defeat this. So does the PCRE optimization unless we disable it 
10628: with \Y. ---/
10629: 
10630: /(*COMMIT)ABC/
10631:     ABCDEFG
10632:  0: ABC
10633:     ** Failers
10634: No match
10635:     DEFGABC\Y  
10636: No match
10637:     
10638: /^(ab (c+(*THEN)cd) | xyz)/x
10639:     abcccd  
10640: No match
10641: 
10642: /^(ab (c+(*PRUNE)cd) | xyz)/x
10643:     abcccd  
10644: No match
10645: 
10646: /^(ab (c+(*FAIL)cd) | xyz)/x
10647:     abcccd  
10648: No match
10649:     
10650: /--- Perl 5.11 gets some of these wrong ---/ 
10651: 
10652: /(?>.(*ACCEPT))*?5/
10653:     abcde
10654:  0: a
10655: 
10656: /(.(*ACCEPT))*?5/
10657:     abcde
10658:  0: a
10659:  1: a
10660: 
10661: /(.(*ACCEPT))5/
10662:     abcde
10663:  0: a
10664:  1: a
10665: 
10666: /(.(*ACCEPT))*5/
10667:     abcde
10668:  0: a
10669:  1: a
10670: 
10671: /A\NB./BZ
10672: ------------------------------------------------------------------
10673:         Bra
10674:         A
10675:         Any
10676:         B
10677:         Any
10678:         Ket
10679:         End
10680: ------------------------------------------------------------------
10681:     ACBD
10682:  0: ACBD
10683:     *** Failers
10684: No match
10685:     A\nB
10686: No match
10687:     ACB\n   
10688: No match
10689: 
10690: /A\NB./sBZ
10691: ------------------------------------------------------------------
10692:         Bra
10693:         A
10694:         Any
10695:         B
10696:         AllAny
10697:         Ket
10698:         End
10699: ------------------------------------------------------------------
10700:     ACBD
10701:  0: ACBD
10702:     ACB\n 
10703:  0: ACB\x0a
10704:     *** Failers
10705: No match
10706:     A\nB  
10707: No match
10708:   
10709: /A\NB/<crlf>
10710:     A\nB
10711:  0: A\x0aB
10712:     A\rB
10713:  0: A\x0dB
10714:     ** Failers
10715: No match
10716:     A\r\nB    
10717: No match
10718: 
10719: /\R+b/BZ
10720: ------------------------------------------------------------------
10721:         Bra
10722:         \R++
10723:         b
10724:         Ket
10725:         End
10726: ------------------------------------------------------------------
10727: 
10728: /\R+\n/BZ
10729: ------------------------------------------------------------------
10730:         Bra
10731:         \R+
10732:         \x0a
10733:         Ket
10734:         End
10735: ------------------------------------------------------------------
10736: 
10737: /\R+\d/BZ
10738: ------------------------------------------------------------------
10739:         Bra
10740:         \R++
10741:         \d
10742:         Ket
10743:         End
10744: ------------------------------------------------------------------
10745: 
10746: /\d*\R/BZ
10747: ------------------------------------------------------------------
10748:         Bra
10749:         \d*+
10750:         \R
10751:         Ket
10752:         End
10753: ------------------------------------------------------------------
10754: 
10755: /\s*\R/BZ
10756: ------------------------------------------------------------------
10757:         Bra
10758:         \s*
10759:         \R
10760:         Ket
10761:         End
10762: ------------------------------------------------------------------
10763:     \x20\x0a
10764:  0:  \x0a
10765:     \x20\x0d
10766:  0:  \x0d
10767:     \x20\x0d\x0a
10768:  0:  \x0d\x0a
10769: 
10770: /\S*\R/BZ
10771: ------------------------------------------------------------------
10772:         Bra
10773:         \S*+
10774:         \R
10775:         Ket
10776:         End
10777: ------------------------------------------------------------------
10778:     a\x0a
10779:  0: a\x0a
10780: 
10781: /X\h*\R/BZ
10782: ------------------------------------------------------------------
10783:         Bra
10784:         X
10785:         \h*+
10786:         \R
10787:         Ket
10788:         End
10789: ------------------------------------------------------------------
10790:     X\x20\x0a
10791:  0: X \x0a
10792: 
10793: /X\H*\R/BZ
10794: ------------------------------------------------------------------
10795:         Bra
10796:         X
10797:         \H*
10798:         \R
10799:         Ket
10800:         End
10801: ------------------------------------------------------------------
10802:     X\x0d\x0a
10803:  0: X\x0d\x0a
10804: 
10805: /X\H+\R/BZ
10806: ------------------------------------------------------------------
10807:         Bra
10808:         X
10809:         \H+
10810:         \R
10811:         Ket
10812:         End
10813: ------------------------------------------------------------------
10814:     X\x0d\x0a
10815:  0: X\x0d\x0a
10816: 
10817: /X\H++\R/BZ
10818: ------------------------------------------------------------------
10819:         Bra
10820:         X
10821:         \H++
10822:         \R
10823:         Ket
10824:         End
10825: ------------------------------------------------------------------
10826:     X\x0d\x0a
10827: No match
10828: 
10829: /-- Perl treats this one differently, not failing the second string. I believe
10830:     that is a bug in Perl. --/
10831: 
10832: /^((abc|abcx)(*THEN)y|abcd)/
10833:     abcd
10834:  0: abcd
10835:  1: abcd
10836:     *** Failers 
10837: No match
10838:     abcxy 
10839: No match
10840: 
10841: /(?<=abc)def/
10842:     abc\P\P
10843: Partial match: abc
10844: 
10845: /abc$/
10846:     abc
10847:  0: abc
10848:     abc\P
10849:  0: abc
10850:     abc\P\P
10851: Partial match: abc
10852: 
10853: /abc$/m
10854:     abc
10855:  0: abc
10856:     abc\n
10857:  0: abc
10858:     abc\P\P
10859: Partial match: abc
10860:     abc\n\P\P 
10861:  0: abc
10862:     abc\P
10863:  0: abc
10864:     abc\n\P
10865:  0: abc
10866: 
10867: /abc\z/
10868:     abc
10869:  0: abc
10870:     abc\P
10871:  0: abc
10872:     abc\P\P
10873: Partial match: abc
10874: 
10875: /abc\Z/
10876:     abc
10877:  0: abc
10878:     abc\P
10879:  0: abc
10880:     abc\P\P
10881: Partial match: abc
10882: 
10883: /abc\b/
10884:     abc
10885:  0: abc
10886:     abc\P
10887:  0: abc
10888:     abc\P\P
10889: Partial match: abc
10890: 
10891: /abc\B/
10892:     abc
10893: No match
10894:     abc\P
10895: Partial match: abc
10896:     abc\P\P
10897: Partial match: abc
10898: 
10899: /.+/
10900:     abc\>0
10901:  0: abc
10902:     abc\>1
10903:  0: bc
10904:     abc\>2
10905:  0: c
10906:     abc\>3
10907: No match
10908:     abc\>4
10909: Error -24 (bad offset value)
10910:     abc\>-4 
10911: Error -24 (bad offset value)
10912: 
10913: /^\cģ/
10914: Failed: \c must be followed by an ASCII character at offset 3
10915: 
10916: /(?P<abn>(?P=abn)xxx)/BZ
10917: ------------------------------------------------------------------
10918:         Bra
10919:         Once
10920:         CBra 1
10921:         \1
10922:         xxx
10923:         Ket
10924:         Ket
10925:         Ket
10926:         End
10927: ------------------------------------------------------------------
10928: 
10929: /(a\1z)/BZ
10930: ------------------------------------------------------------------
10931:         Bra
10932:         Once
10933:         CBra 1
10934:         a
10935:         \1
10936:         z
10937:         Ket
10938:         Ket
10939:         Ket
10940:         End
10941: ------------------------------------------------------------------
10942: 
10943: /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10944: Failed: syntax error in subpattern name (missing terminator) at offset 29
10945: 
10946: /(?P<abn>(?P=axn)xxx)/BZ
10947: Failed: reference to non-existent subpattern at offset 15
10948: 
10949: /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10950: ------------------------------------------------------------------
10951:         Bra
10952:         CBra 1
10953:         \2
10954:         xxx
10955:         Ket
10956:         CBra 2
10957:         yy
10958:         Ket
10959:         Ket
10960:         End
10961: ------------------------------------------------------------------
10962: 
10963: /-- These tests are here because Perl gets the first one wrong. --/
10964: 
10965: /(\R*)(.)/s
10966:     \r\n
10967:  0: \x0d
10968:  1: 
10969:  2: \x0d
10970:     \r\r\n\n\r 
10971:  0: \x0d\x0d\x0a\x0a\x0d
10972:  1: \x0d\x0d\x0a\x0a
10973:  2: \x0d
10974:     \r\r\n\n\r\n 
10975:  0: \x0d\x0d\x0a\x0a\x0d
10976:  1: \x0d\x0d\x0a\x0a
10977:  2: \x0d
10978: 
10979: /(\R)*(.)/s
10980:     \r\n
10981:  0: \x0d
10982:  1: <unset>
10983:  2: \x0d
10984:     \r\r\n\n\r 
10985:  0: \x0d\x0d\x0a\x0a\x0d
10986:  1: \x0a
10987:  2: \x0d
10988:     \r\r\n\n\r\n 
10989:  0: \x0d\x0d\x0a\x0a\x0d
10990:  1: \x0a
10991:  2: \x0d
10992: 
10993: /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
10994:     \r\n
10995:  0: \x0d
10996:  1: 
10997:  2: \x0d
10998:     \r\r\n\n\r 
10999:  0: \x0d\x0d\x0a\x0a\x0d
11000:  1: \x0d\x0d\x0a\x0a
11001:  2: \x0d
11002:     \r\r\n\n\r\n 
11003:  0: \x0d\x0d\x0a\x0a\x0d
11004:  1: \x0d\x0d\x0a\x0a
11005:  2: \x0d
11006: 
11007: /-- --/
11008: 
11009: /^abc$/BZ
11010: ------------------------------------------------------------------
11011:         Bra
11012:         ^
11013:         abc
11014:         $
11015:         Ket
11016:         End
11017: ------------------------------------------------------------------
11018: 
11019: /^abc$/BZm
11020: ------------------------------------------------------------------
11021:         Bra
11022:      /m ^
11023:         abc
11024:      /m $
11025:         Ket
11026:         End
11027: ------------------------------------------------------------------
11028: 
11029: /^(a)*+(\w)/S
11030:     aaaaX
11031:  0: aaaaX
11032:  1: a
11033:  2: X
11034:     ** Failers 
11035: No match
11036:     aaaa
11037: No match
11038: 
11039: /^(?:a)*+(\w)/S
11040:     aaaaX
11041:  0: aaaaX
11042:  1: X
11043:     ** Failers 
11044: No match
11045:     aaaa
11046: No match
11047: 
11048: /(a)++1234/SDZ
11049: ------------------------------------------------------------------
11050:         Bra
11051:         CBraPos 1
11052:         a
11053:         KetRpos
11054:         1234
11055:         Ket
11056:         End
11057: ------------------------------------------------------------------
11058: Capturing subpattern count = 1
11059: No options
11060: First char = 'a'
11061: Need char = '4'
11062: Subject length lower bound = 5
11063: No set of starting bytes
11064: 
11065: /([abc])++1234/SI
11066: Capturing subpattern count = 1
11067: No options
11068: No first char
11069: Need char = '4'
11070: Subject length lower bound = 5
11071: Starting byte set: a b c 
11072: 
11073: /(?<=(abc)+)X/
11074: Failed: lookbehind assertion is not fixed length at offset 10
11075: 
11076: /(^ab)/I
11077: Capturing subpattern count = 1
11078: Options: anchored
11079: No first char
11080: No need char
11081: 
11082: /(^ab)++/I
11083: Capturing subpattern count = 1
11084: Options: anchored
11085: No first char
11086: No need char
11087: 
11088: /(^ab|^)+/I
11089: Capturing subpattern count = 1
11090: Options: anchored
11091: No first char
11092: No need char
11093: 
11094: /(^ab|^)++/I
11095: Capturing subpattern count = 1
11096: Options: anchored
11097: No first char
11098: No need char
11099: 
11100: /(?:^ab)/I
11101: Capturing subpattern count = 0
11102: Options: anchored
11103: No first char
11104: No need char
11105: 
11106: /(?:^ab)++/I
11107: Capturing subpattern count = 0
11108: Options: anchored
11109: No first char
11110: No need char
11111: 
11112: /(?:^ab|^)+/I
11113: Capturing subpattern count = 0
11114: Options: anchored
11115: No first char
11116: No need char
11117: 
11118: /(?:^ab|^)++/I
11119: Capturing subpattern count = 0
11120: Options: anchored
11121: No first char
11122: No need char
11123: 
11124: /(.*ab)/I
11125: Capturing subpattern count = 1
11126: No options
11127: First char at start or follows newline
11128: Need char = 'b'
11129: 
11130: /(.*ab)++/I
11131: Capturing subpattern count = 1
11132: No options
11133: First char at start or follows newline
11134: Need char = 'b'
11135: 
11136: /(.*ab|.*)+/I
11137: Capturing subpattern count = 1
11138: No options
11139: First char at start or follows newline
11140: No need char
11141: 
11142: /(.*ab|.*)++/I
11143: Capturing subpattern count = 1
11144: No options
11145: First char at start or follows newline
11146: No need char
11147: 
11148: /(?:.*ab)/I
11149: Capturing subpattern count = 0
11150: No options
11151: First char at start or follows newline
11152: Need char = 'b'
11153: 
11154: /(?:.*ab)++/I
11155: Capturing subpattern count = 0
11156: No options
11157: First char at start or follows newline
11158: Need char = 'b'
11159: 
11160: /(?:.*ab|.*)+/I
11161: Capturing subpattern count = 0
11162: No options
11163: First char at start or follows newline
11164: No need char
11165: 
11166: /(?:.*ab|.*)++/I
11167: Capturing subpattern count = 0
11168: No options
11169: First char at start or follows newline
11170: No need char
11171: 
11172: /(?=a)[bcd]/I
11173: Capturing subpattern count = 0
11174: No options
11175: First char = 'a'
11176: No need char
11177: 
11178: /((?=a))[bcd]/I
11179: Capturing subpattern count = 1
11180: No options
11181: First char = 'a'
11182: No need char
11183: 
11184: /((?=a))+[bcd]/I
11185: Capturing subpattern count = 1
11186: No options
11187: First char = 'a'
11188: No need char
11189: 
11190: /((?=a))++[bcd]/I
11191: Capturing subpattern count = 1
11192: No options
11193: First char = 'a'
11194: No need char
11195: 
11196: /(?=a+)[bcd]/iI
11197: Capturing subpattern count = 0
11198: Options: caseless
11199: First char = 'a' (caseless)
11200: No need char
11201: 
11202: /(?=a+?)[bcd]/iI
11203: Capturing subpattern count = 0
11204: Options: caseless
11205: First char = 'a' (caseless)
11206: No need char
11207: 
11208: /(?=a++)[bcd]/iI
11209: Capturing subpattern count = 0
11210: Options: caseless
11211: First char = 'a' (caseless)
11212: No need char
11213: 
11214: /(?=a{3})[bcd]/iI
11215: Capturing subpattern count = 0
11216: Options: caseless
11217: First char = 'a' (caseless)
11218: Need char = 'a' (caseless)
11219: 
11220: /(abc)\1+/S
11221: 
11222: /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11223: 
11224: /(?1)(?:(b(*ACCEPT))){0}/
11225:     b
11226:  0: b
11227: 
11228: /(?1)(?:(b(*ACCEPT))){0}c/
11229:     bc
11230:  0: bc
11231:     ** Failers 
11232: No match
11233:     b 
11234: No match
11235: 
11236: /(?1)(?:((*ACCEPT))){0}c/
11237:     c
11238:  0: c
11239:     c\N 
11240:  0: c
11241: 
11242: /^.*?(?(?=a)a|b(*THEN)c)/
11243:     ba
11244: No match
11245: 
11246: /^.*?(?(?=a)a|bc)/
11247:     ba
11248:  0: ba
11249: 
11250: /^.*?(?(?=a)a(*THEN)b|c)/
11251:     ac
11252: No match
11253: 
11254: /^.*?(?(?=a)a(*THEN)b)c/
11255:     ac
11256: No match
11257: 
11258: /^.*?(a(*THEN)b)c/
11259:     aabc
11260: No match
11261:     
11262: /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11263:     aabc
11264:  0: aabc
11265: 
11266: /^.*?(a(*THEN)b|z)c/
11267:     aabc
11268:  0: aabc
11269:  1: ab
11270: 
11271: /^.*?(z|a(*THEN)b)c/
11272:     aabc
11273:  0: aabc
11274:  1: ab
11275: 
11276: /-- --/
11277: 
11278: /-- These studied versions are here because they are not Perl-compatible; the
11279:     studying means the mark is not seen. --/
11280: 
11281: /(*MARK:A)(*SKIP:B)(C|X)/KS
11282:     C
11283:  0: C
11284:  1: C
11285: MK: A
11286:     D
11287: No match, mark = A
11288:      
11289: /(*:A)A+(*SKIP:A)(B|Z)/KS
11290:     AAAC
11291: No match, mark = A
11292: 
11293: /-- --/
11294: 
11295: "(?=a*(*ACCEPT)b)c"
11296:     c
11297:  0: c
11298:     c\N 
11299:  0: c
11300:     
11301: /(?1)c(?(DEFINE)((*ACCEPT)b))/
11302:     c
11303:  0: c
11304:     c\N  
11305:  0: c
11306:     
11307: /(?>(*ACCEPT)b)c/
11308:     c
11309:  0: 
11310:     c\N  
11311: No match
11312: 
11313: /(?:(?>(a)))+a%/++
11314:     %aa%
11315:  0: aa%
11316:  0+ 
11317:  1: a
11318:  1+ a%
11319: 
11320: /(a)b|ac/++SS
11321:     ac\O3
11322: Matched, but too many substrings
11323:  0: ac
11324:  0+ 
11325:     
11326: /(a)(b)x|abc/++
11327:      abc\O6
11328:  0: abc
11329:  0+ 
11330: 
11331: /(a)bc|(a)(b)\2/
11332:     \O3abc
11333: Matched, but too many substrings
11334:  0: abc
11335:     \O4abc 
11336: Matched, but too many substrings
11337:  0: abc
11338: 
11339: /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11340: Capturing subpattern count = 2
11341: No options
11342: No first char
11343: No need char
11344: Subject length lower bound = 1
11345: No set of starting bytes
11346: 
11347: /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11348: Capturing subpattern count = 2
11349: No options
11350: No first char
11351: No need char
11352: Subject length lower bound = 3
11353: Starting byte set: a b 
11354: 
11355: /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11356: Capturing subpattern count = 2
11357: No options
11358: No first char
11359: No need char
11360: Subject length lower bound = 4
11361: Starting byte set: a b 
11362: 
11363: /(abc)(?1)/SI
11364: Capturing subpattern count = 1
11365: No options
11366: First char = 'a'
11367: Need char = 'c'
11368: Subject length lower bound = 6
11369: No set of starting bytes
11370: 
11371: /^(?>a)++/
11372:     aa\M
11373: Minimum match() limit = 5
11374: Minimum match() recursion limit = 2
11375:  0: aa
11376:     aaaaaaaaa\M 
11377: Minimum match() limit = 12
11378: Minimum match() recursion limit = 2
11379:  0: aaaaaaaaa
11380:     
11381: /(a)(?1)++/
11382:     aa\M
11383: Minimum match() limit = 7
11384: Minimum match() recursion limit = 4
11385:  0: aa
11386:  1: a
11387:     aaaaaaaaa\M  
11388: Minimum match() limit = 21
11389: Minimum match() recursion limit = 4
11390:  0: aaaaaaaaa
11391:  1: a
11392: 
11393: /(?:(foo)|(bar)|(baz))X/SS=
11394:     bazfooX
11395:  0: fooX
11396:  1: foo
11397:  2: <unset>
11398:  3: <unset>
11399:     foobazbarX
11400:  0: barX
11401:  1: <unset>
11402:  2: bar
11403:  3: <unset>
11404:     barfooX
11405:  0: fooX
11406:  1: foo
11407:  2: <unset>
11408:  3: <unset>
11409:     bazX
11410:  0: bazX
11411:  1: <unset>
11412:  2: <unset>
11413:  3: baz
11414:     foobarbazX    
11415:  0: bazX
11416:  1: <unset>
11417:  2: <unset>
11418:  3: baz
11419:     bazfooX\O0
11420: Matched, but too many substrings
11421:     bazfooX\O2
11422: Matched, but too many substrings
11423:  0: fooX
11424:     bazfooX\O4
11425: Matched, but too many substrings
11426:  0: fooX
11427:  1: <unset>
11428:     bazfooX\O6
11429: Matched, but too many substrings
11430:  0: fooX
11431:  1: foo
11432:  2: <unset>
11433:     bazfooX\O8
11434: Matched, but too many substrings
11435:  0: fooX
11436:  1: foo
11437:  2: <unset>
11438:  3: <unset>
11439:     bazfooX\O10
11440:  0: fooX
11441:  1: foo
11442:  2: <unset>
11443:  3: <unset>
11444: 
11445: /(?=abc){3}abc/BZ
11446: ------------------------------------------------------------------
11447:         Bra
11448:         Assert
11449:         abc
11450:         Ket
11451:         abc
11452:         Ket
11453:         End
11454: ------------------------------------------------------------------
11455: 
11456: /(?=abc)+abc/BZ
11457: ------------------------------------------------------------------
11458:         Bra
11459:         Assert
11460:         abc
11461:         Ket
11462:         abc
11463:         Ket
11464:         End
11465: ------------------------------------------------------------------
11466: 
11467: /(?=abc)++abc/BZ
11468: ------------------------------------------------------------------
11469:         Bra
11470:         Assert
11471:         abc
11472:         Ket
11473:         abc
11474:         Ket
11475:         End
11476: ------------------------------------------------------------------
11477: 
11478: /(?=abc){0}xyz/BZ
11479: ------------------------------------------------------------------
11480:         Bra
11481:         Skip zero
11482:         Assert
11483:         abc
11484:         Ket
11485:         xyz
11486:         Ket
11487:         End
11488: ------------------------------------------------------------------
11489: 
11490: /(?=(a))?./BZ
11491: ------------------------------------------------------------------
11492:         Bra
11493:         Brazero
11494:         Assert
11495:         CBra 1
11496:         a
11497:         Ket
11498:         Ket
11499:         Any
11500:         Ket
11501:         End
11502: ------------------------------------------------------------------
11503: 
11504: /(?=(a))??./BZ
11505: ------------------------------------------------------------------
11506:         Bra
11507:         Braminzero
11508:         Assert
11509:         CBra 1
11510:         a
11511:         Ket
11512:         Ket
11513:         Any
11514:         Ket
11515:         End
11516: ------------------------------------------------------------------
11517: 
11518: /^(?=(a)){0}b(?1)/BZ
11519: ------------------------------------------------------------------
11520:         Bra
11521:         ^
11522:         Skip zero
11523:         Assert
11524:         CBra 1
11525:         a
11526:         Ket
11527:         Ket
11528:         b
11529:         Recurse
11530:         Ket
11531:         End
11532: ------------------------------------------------------------------
11533: 
11534: /(?(DEFINE)(a))?b(?1)/BZ
11535: ------------------------------------------------------------------
11536:         Bra
11537:         Cond
11538:         Cond def
11539:         CBra 1
11540:         a
11541:         Ket
11542:         Ket
11543:         b
11544:         Recurse
11545:         Ket
11546:         End
11547: ------------------------------------------------------------------
11548: 
11549: /^(?=(?1))?[az]([abc])d/BZ
11550: ------------------------------------------------------------------
11551:         Bra
11552:         ^
11553:         Brazero
11554:         Assert
11555:         Recurse
11556:         Ket
11557:         [az]
11558:         CBra 1
11559:         [a-c]
11560:         Ket
11561:         d
11562:         Ket
11563:         End
11564: ------------------------------------------------------------------
11565: 
11566: /^(?!a){0}\w+/BZ
11567: ------------------------------------------------------------------
11568:         Bra
11569:         ^
11570:         Skip zero
11571:         Assert not
11572:         a
11573:         Ket
11574:         \w+
11575:         Ket
11576:         End
11577: ------------------------------------------------------------------
11578: 
11579: /(?<=(abc))?xyz/BZ
11580: ------------------------------------------------------------------
11581:         Bra
11582:         Brazero
11583:         AssertB
11584:         Reverse
11585:         CBra 1
11586:         abc
11587:         Ket
11588:         Ket
11589:         xyz
11590:         Ket
11591:         End
11592: ------------------------------------------------------------------
11593: 
11594: /[:a[:abc]b:]/BZ
11595: ------------------------------------------------------------------
11596:         Bra
11597:         [:[a-c]
11598:         b:]
11599:         Ket
11600:         End
11601: ------------------------------------------------------------------
11602: 
11603: /((?2))((?1))/SS
11604:     abc
11605: Error -26 (nested recursion at the same subject position)
11606: 
11607: /((?(R2)a+|(?1)b))/SS
11608:     aaaabcde
11609: Error -26 (nested recursion at the same subject position)
11610: 
11611: /(?(R)a*(?1)|((?R))b)/SS
11612:     aaaabcde
11613: Error -26 (nested recursion at the same subject position)
11614: 
11615: /(a+|(?R)b)/
11616: Failed: recursive call could loop indefinitely at offset 7
11617: 
11618: /^(a(*:A)(d|e(*:B))z|aeq)/C
11619:     adz
11620: --->adz
11621:  +0 ^       ^
11622:  +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11623:  +2 ^       a
11624:  +3 ^^      (*:A)
11625:  +8 ^^      (d|e(*:B))
11626: Latest Mark: A
11627:  +9 ^^      d
11628: +10 ^ ^     |
11629: +18 ^ ^     z
11630: +19 ^  ^    |
11631: +24 ^  ^    
11632:  0: adz
11633:  1: adz
11634:  2: d
11635:     aez
11636: --->aez
11637:  +0 ^       ^
11638:  +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11639:  +2 ^       a
11640:  +3 ^^      (*:A)
11641:  +8 ^^      (d|e(*:B))
11642: Latest Mark: A
11643:  +9 ^^      d
11644: +11 ^^      e
11645: +12 ^ ^     (*:B)
11646: +17 ^ ^     )
11647: Latest Mark: B
11648: +18 ^ ^     z
11649: +19 ^  ^    |
11650: +24 ^  ^    
11651:  0: aez
11652:  1: aez
11653:  2: e
11654:     aeqwerty
11655: --->aeqwerty
11656:  +0 ^            ^
11657:  +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11658:  +2 ^            a
11659:  +3 ^^           (*:A)
11660:  +8 ^^           (d|e(*:B))
11661: Latest Mark: A
11662:  +9 ^^           d
11663: +11 ^^           e
11664: +12 ^ ^          (*:B)
11665: +17 ^ ^          )
11666: Latest Mark: B
11667: +18 ^ ^          z
11668: +20 ^            a
11669: +21 ^^           e
11670: +22 ^ ^          q
11671: +23 ^  ^         )
11672: +24 ^  ^         
11673:  0: aeq
11674:  1: aeq
11675: 
11676: /.(*F)/
11677:     \P\Pabc
11678: No match
11679: 
11680: /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11681: Capturing subpattern count = 0
11682: No options
11683: First char = 't'
11684: Need char = 't'
11685: Max lookbehind = 1
11686: Subject length lower bound = 18
11687: No set of starting bytes
11688: 
11689: /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11690: Capturing subpattern count = 0
11691: No options
11692: No first char
11693: No need char
11694: Max lookbehind = 1
11695: Subject length lower bound = 8
11696: Starting byte set: < o t u 
11697: 
11698: /a(*SKIP)c|b(*ACCEPT)|/+SI
11699: Capturing subpattern count = 0
11700: No options
11701: No first char
11702: No need char
11703: Study returned NULL
11704:     a
11705:  0: 
11706:  0+ 
11707: 
11708: /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11709: Capturing subpattern count = 0
11710: No options
11711: No first char
11712: No need char
11713: Subject length lower bound = -1
11714: Starting byte set: a b x 
11715:     ax
11716:  0: x
11717: 
11718: 'a*(*ACCEPT)b'+
11719:     \N\N
11720: No match
11721:     abc\N\N
11722:  0: a
11723:  0+ bc
11724:     bbb\N\N 
11725:  0: 
11726:  0+ bb
11727: 
11728: /(*ACCEPT)a/+I
11729: Capturing subpattern count = 0
11730: No options
11731: No first char
11732: No need char
11733:     bax
11734:  0: 
11735:  0+ bax
11736: 
11737: /z(*ACCEPT)a/+I
11738: Capturing subpattern count = 0
11739: No options
11740: First char = 'z'
11741: No need char
11742:     baxzbx
11743:  0: z
11744:  0+ bx
11745: 
11746: /a(?:.)*?a/ims                                                                  
11747:     \Mabbbbbbbbbbbbbbbbbbbbba
11748: Minimum match() limit = 65
11749: Minimum match() recursion limit = 2
11750:  0: abbbbbbbbbbbbbbbbbbbbba
11751:     
11752: /a(?:.(*THEN))*?a/ims
11753:     \Mabbbbbbbbbbbbbbbbbbbbba
11754: Minimum match() limit = 86
11755: Minimum match() recursion limit = 45
11756:  0: abbbbbbbbbbbbbbbbbbbbba
11757: 
11758: /a(?:.(*THEN:ABC))*?a/ims
11759:     \Mabbbbbbbbbbbbbbbbbbbbba
11760: Minimum match() limit = 86
11761: Minimum match() recursion limit = 45
11762:  0: abbbbbbbbbbbbbbbbbbbbba
11763: 
11764: /-- These tests are in agreement with development Perl 5.015, which has fixed
11765:     some things, but they don't all work with 5.012, so they aren't in the
11766:     Perl-compatible tests. Those after the first come from Perl's own test
11767:     files. --/
11768:     
11769: /^((yes|no)(*THEN)(*F))?/
11770:   yes
11771: No match
11772: 
11773: /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x
11774: AbcdCBefgBhiBqz
11775: No match
11776: 
11777: /(A (.*)   C? (*THEN)  | A D) z/x
11778: AbcdCBefgBhiBqz
11779: No match
11780: 
11781: /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x
11782: AbcdCBefgBhiBqz
11783: No match
11784: 
11785: /(A (.*)   C? (*THEN)  | A D) \s* z/x
11786: AbcdCBefgBhiBqz
11787: No match
11788: 
11789: /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x
11790: AbcdCBefgBhiBqz
11791: No match
11792: 
11793: /(A (.*)   (?:C|) (*THEN)  | A D) z/x
11794: AbcdCBefgBhiBqz
11795: No match
11796: 
11797: /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x
11798: AbcdCBefgBhiBqz
11799: No match
11800: 
11801: /(A (.*)   C{0,6} (*THEN)  | A D) z/x
11802: AbcdCBefgBhiBqz
11803: No match
11804: 
11805: /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x
11806: AbcdCEBefgBhiBqz
11807: No match
11808: 
11809: /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x
11810: AbcdCEBefgBhiBqz
11811: No match
11812: 
11813: /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x
11814: AbcdCBefgBhiBqz
11815: No match
11816: 
11817: /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x
11818: AbcdCBefgBhiBqz
11819: No match
11820: 
11821: /-----------------------------------------------/  
11822: 
11823: /^(?>a+)(?>(z+))\w/BZ
11824: ------------------------------------------------------------------
11825:         Bra
11826:         ^
11827:         Once_NC
11828:         a+
11829:         Ket
11830:         Once
11831:         CBra 1
11832:         z+
11833:         Ket
11834:         Ket
11835:         \w
11836:         Ket
11837:         End
11838: ------------------------------------------------------------------
11839:     aaaazzzzb
11840:  0: aaaazzzzb
11841:  1: zzzz
11842:     ** Failers
11843: No match
11844:     aazz  
11845: No match
11846: 
11847: /(.)(\1|a(?2))/
11848:     bab
11849:  0: bab
11850:  1: b
11851:  2: ab
11852:     
11853: /\1|(.)(?R)\1/
11854:     cbbbc
11855:  0: cbbbc
11856:  1: c
11857:     
11858: /(.)((?(1)c|a)|a(?2))/
11859:     baa  
11860: No match
11861: 
11862: /(?P<abn>(?P=abn)xxx)/BZ
11863: ------------------------------------------------------------------
11864:         Bra
11865:         Once
11866:         CBra 1
11867:         \1
11868:         xxx
11869:         Ket
11870:         Ket
11871:         Ket
11872:         End
11873: ------------------------------------------------------------------
11874: 
11875: /(a\1z)/BZ
11876: ------------------------------------------------------------------
11877:         Bra
11878:         Once
11879:         CBra 1
11880:         a
11881:         \1
11882:         z
11883:         Ket
11884:         Ket
11885:         Ket
11886:         End
11887: ------------------------------------------------------------------
11888: 
11889: /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11890:      \Maabbccddee
11891: Minimum match() limit = 12
11892: Minimum match() recursion limit = 3
11893:  0: aabbccddee
11894: 
11895: /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11896:      \Maabbccddee
11897: Minimum match() limit = 22
11898: Minimum match() recursion limit = 21
11899:  0: aabbccddee
11900:  1: aa
11901:  2: bb
11902:  3: cc
11903:  4: dd
11904:  5: ee
11905: 
11906: /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11907:      \Maabbccddee
11908: Minimum match() limit = 18
11909: Minimum match() recursion limit = 13
11910:  0: aabbccddee
11911:  1: aa
11912:  2: cc
11913:  3: ee
11914: 
11915: /^a\x41z/<JS>
11916:     aAz
11917:  0: aAz
11918:     *** Failers
11919: No match
11920:     ax41z
11921: No match
11922: 
11923: /^a[m\x41]z/<JS>
11924:     aAz
11925:  0: aAz
11926: 
11927: /^a\x1z/<JS>
11928:     ax1z
11929:  0: ax1z
11930: 
11931: /^a\u0041z/<JS>
11932:     aAz
11933:  0: aAz
11934:     *** Failers
11935: No match
11936:     au0041z
11937: No match
11938: 
11939: /^a[m\u0041]z/<JS>
11940:     aAz
11941:  0: aAz
11942: 
11943: /^a\u041z/<JS>
11944:     au041z
11945:  0: au041z
11946:     *** Failers
11947: No match
11948:     aAz
11949: No match
11950: 
11951: /^a\U0041z/<JS>
11952:     aU0041z
11953:  0: aU0041z
11954:     *** Failers
11955: No match
11956:     aAz
11957: No match
11958: 
11959: /(?(?=c)c|d)++Y/BZ
11960: ------------------------------------------------------------------
11961:         Bra
11962:         BraPos
11963:         Cond
11964:         Assert
11965:         c
11966:         Ket
11967:         c
11968:         Alt
11969:         d
11970:         Ket
11971:         KetRpos
11972:         Y
11973:         Ket
11974:         End
11975: ------------------------------------------------------------------
11976: 
11977: /(?(?=c)c|d)*+Y/BZ
11978: ------------------------------------------------------------------
11979:         Bra
11980:         Braposzero
11981:         BraPos
11982:         Cond
11983:         Assert
11984:         c
11985:         Ket
11986:         c
11987:         Alt
11988:         d
11989:         Ket
11990:         KetRpos
11991:         Y
11992:         Ket
11993:         End
11994: ------------------------------------------------------------------
11995: 
11996: /a[\NB]c/
11997: Failed: \N is not supported in a class at offset 3
11998: 
11999: /a[B-\Nc]/ 
12000: Failed: \N is not supported in a class at offset 5
12001: 
12002: /(a)(?2){0,1999}?(b)/
12003: 
12004: /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
12005: 
12006: /--- This test, with something more complicated than individual letters, causes
12007: different behaviour in Perl. Perhaps it disables some optimization; no tag is
12008: passed back for the failures, whereas in PCRE there is a tag. ---/
12009:     
12010: /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
12011:     AABC
12012:  0: AB
12013:  1: A
12014:  2: B
12015: MK: A
12016:     XXYZ 
12017:  0: XXY
12018:  1: <unset>
12019:  2: <unset>
12020:  3: X
12021:  4: X
12022:  5: Y
12023: MK: B
12024:     ** Failers
12025: No match
12026:     XAQQ  
12027: No match, mark = A
12028:     XAQQXZZ  
12029: No match, mark = A
12030:     AXQQQ 
12031: No match, mark = A
12032:     AXXQQQ 
12033: No match, mark = B
12034: 
12035: /-- Perl doesn't give marks for these, though it does if the alternatives are
12036: replaced by single letters. --/
12037:     
12038: /(b|q)(*:m)f|a(*:n)w/K
12039:     aw 
12040:  0: aw
12041: MK: n
12042:     ** Failers 
12043: No match, mark = n
12044:     abc
12045: No match, mark = m
12046: 
12047: /(q|b)(*:m)f|a(*:n)w/K
12048:     aw 
12049:  0: aw
12050: MK: n
12051:     ** Failers 
12052: No match, mark = n
12053:     abc
12054: No match, mark = m
12055: 
12056: /-- After a partial match, the behaviour is as for a failure. --/
12057: 
12058: /^a(*:X)bcde/K
12059:    abc\P
12060: Partial match, mark=X: abc
12061:    
12062: /-- These are here because Perl doesn't return a mark, except for the first --/
12063: 
12064: /(?=(*:x))(q|)/K+
12065:     abc
12066:  0: 
12067:  0+ abc
12068:  1: 
12069: MK: x
12070: 
12071: /(?=(*:x))((*:y)q|)/K+
12072:     abc
12073:  0: 
12074:  0+ abc
12075:  1: 
12076: MK: x
12077: 
12078: /(?=(*:x))(?:(*:y)q|)/K+
12079:     abc
12080:  0: 
12081:  0+ abc
12082: MK: x
12083: 
12084: /(?=(*:x))(?>(*:y)q|)/K+
12085:     abc
12086:  0: 
12087:  0+ abc
12088: MK: x
12089: 
12090: /(?=a(*:x))(?!a(*:y)c)/K+
12091:     ab
12092:  0: 
12093:  0+ ab
12094: MK: x
12095: 
12096: /(?=a(*:x))(?=a(*:y)c|)/K+
12097:     ab
12098:  0: 
12099:  0+ ab
12100: MK: x
12101: 
12102: /(..)\1/
12103:     ab\P
12104: Partial match: ab
12105:     aba\P
12106: Partial match: aba
12107:     abab\P
12108:  0: abab
12109:  1: ab
12110: 
12111: /(..)\1/i
12112:     ab\P
12113: Partial match: ab
12114:     abA\P
12115: Partial match: abA
12116:     aBAb\P
12117:  0: aBAb
12118:  1: aB
12119: 
12120: /(..)\1{2,}/
12121:     ab\P
12122: Partial match: ab
12123:     aba\P
12124: Partial match: aba
12125:     abab\P
12126: Partial match: abab
12127:     ababa\P
12128: Partial match: ababa
12129:     ababab\P
12130:  0: ababab
12131:  1: ab
12132:     ababab\P\P
12133: Partial match: ababab
12134:     abababa\P
12135:  0: ababab
12136:  1: ab
12137:     abababa\P\P
12138: Partial match: abababa
12139: 
12140: /(..)\1{2,}/i
12141:     ab\P
12142: Partial match: ab
12143:     aBa\P
12144: Partial match: aBa
12145:     aBAb\P
12146: Partial match: aBAb
12147:     AbaBA\P
12148: Partial match: AbaBA
12149:     abABAb\P
12150:  0: abABAb
12151:  1: ab
12152:     aBAbaB\P\P
12153: Partial match: aBAbaB
12154:     abABabA\P
12155:  0: abABab
12156:  1: ab
12157:     abaBABa\P\P
12158: Partial match: abaBABa
12159: 
12160: /(..)\1{2,}?x/i
12161:     ab\P
12162: Partial match: ab
12163:     abA\P
12164: Partial match: abA
12165:     aBAb\P
12166: Partial match: aBAb
12167:     abaBA\P
12168: Partial match: abaBA
12169:     abAbaB\P
12170: Partial match: abAbaB
12171:     abaBabA\P
12172: Partial match: abaBabA
12173:     abAbABaBx\P
12174:  0: abAbABaBx
12175:  1: ab
12176: 
12177: /^(..)\1/
12178:     aba\P
12179: Partial match: aba
12180: 
12181: /^(..)\1{2,3}x/
12182:     aba\P
12183: Partial match: aba
12184:     ababa\P
12185: Partial match: ababa
12186:     ababa\P\P
12187: Partial match: ababa
12188:     abababx
12189:  0: abababx
12190:  1: ab
12191:     ababababx  
12192:  0: ababababx
12193:  1: ab
12194: 
12195: /^(..)\1{2,3}?x/
12196:     aba\P
12197: Partial match: aba
12198:     ababa\P
12199: Partial match: ababa
12200:     ababa\P\P
12201: Partial match: ababa
12202:     abababx
12203:  0: abababx
12204:  1: ab
12205:     ababababx  
12206:  0: ababababx
12207:  1: ab
12208:     
12209: /^(..)(\1{2,3})ab/
12210:     abababab
12211:  0: abababab
12212:  1: ab
12213:  2: abab
12214: 
12215: /^\R/
12216:     \r\P
12217:  0: \x0d
12218:     \r\P\P
12219: Partial match: \x0d
12220:     
12221: /^\R{2,3}x/
12222:     \r\P
12223: Partial match: \x0d
12224:     \r\P\P
12225: Partial match: \x0d
12226:     \r\r\P 
12227: Partial match: \x0d\x0d
12228:     \r\r\P\P
12229: Partial match: \x0d\x0d
12230:     \r\r\r\P  
12231: Partial match: \x0d\x0d\x0d
12232:     \r\r\r\P\P
12233: Partial match: \x0d\x0d\x0d
12234:     \r\rx
12235:  0: \x0d\x0dx
12236:     \r\r\rx    
12237:  0: \x0d\x0d\x0dx
12238: 
12239: /^\R{2,3}?x/
12240:     \r\P
12241: Partial match: \x0d
12242:     \r\P\P
12243: Partial match: \x0d
12244:     \r\r\P 
12245: Partial match: \x0d\x0d
12246:     \r\r\P\P
12247: Partial match: \x0d\x0d
12248:     \r\r\r\P  
12249: Partial match: \x0d\x0d\x0d
12250:     \r\r\r\P\P
12251: Partial match: \x0d\x0d\x0d
12252:     \r\rx
12253:  0: \x0d\x0dx
12254:     \r\r\rx    
12255:  0: \x0d\x0d\x0dx
12256:     
12257: /^\R?x/
12258:     \r\P
12259: Partial match: \x0d
12260:     \r\P\P 
12261: Partial match: \x0d
12262:     x
12263:  0: x
12264:     \rx  
12265:  0: \x0dx
12266: 
12267: /^\R+x/
12268:     \r\P
12269: Partial match: \x0d
12270:     \r\P\P 
12271: Partial match: \x0d
12272:     \r\n\P
12273: Partial match: \x0d\x0a
12274:     \r\n\P\P  
12275: Partial match: \x0d\x0a
12276:     \rx  
12277:  0: \x0dx
12278: 
12279: /^a$/<CRLF>
12280:     a\r\P
12281: Partial match: a\x0d
12282:     a\r\P\P 
12283: Partial match: a\x0d
12284: 
12285: /^a$/m<CRLF>
12286:     a\r\P
12287: Partial match: a\x0d
12288:     a\r\P\P 
12289: Partial match: a\x0d
12290: 
12291: /^(a$|a\r)/<CRLF>
12292:     a\r\P
12293:  0: a\x0d
12294:  1: a\x0d
12295:     a\r\P\P 
12296: Partial match: a\x0d
12297: 
12298: /^(a$|a\r)/m<CRLF>
12299:     a\r\P
12300:  0: a\x0d
12301:  1: a\x0d
12302:     a\r\P\P 
12303: Partial match: a\x0d
12304: 
12305: /./<CRLF>
12306:     \r\P
12307:  0: \x0d
12308:     \r\P\P 
12309: Partial match: \x0d
12310:   
12311: /.{2,3}/<CRLF>
12312:     \r\P 
12313: Partial match: \x0d
12314:     \r\P\P
12315: Partial match: \x0d
12316:     \r\r\P
12317:  0: \x0d\x0d
12318:     \r\r\P\P
12319: Partial match: \x0d\x0d
12320:     \r\r\r\P
12321:  0: \x0d\x0d\x0d
12322:     \r\r\r\P\P     
12323: Partial match: \x0d\x0d\x0d
12324: 
12325: /.{2,3}?/<CRLF>
12326:     \r\P 
12327: Partial match: \x0d
12328:     \r\P\P
12329: Partial match: \x0d
12330:     \r\r\P
12331:  0: \x0d\x0d
12332:     \r\r\P\P
12333: Partial match: \x0d\x0d
12334:     \r\r\r\P
12335:  0: \x0d\x0d
12336:     \r\r\r\P\P     
12337:  0: \x0d\x0d
12338: 
12339: /-- These two are here because Perl does not match: it seems to allow the
12340: COMMIT to escape from the assertion. --/
12341: 
12342: /(?=a(*COMMIT)b|ac)ac|ac/
12343:     ac
12344:  0: ac
12345: 
12346: /(?=a(*COMMIT)b|(ac)) ac | (a)c/x
12347:     ac
12348:  0: ac
12349:  1: <unset>
12350:  2: a
12351: 
12352: "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12353:     ABCDGHI\O03
12354: Matched, but too many substrings
12355:  0: ABCD
12356:     
12357: /-- This one is here because Perl does not confine the *COMMIT to the 
12358: assertion, and therefore fails the entire subroutine call. --/ 
12359:     
12360: /((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))/
12361:     ac 
12362:  0: ac
12363: 
12364: /-- End of testinput2 --/

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