File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / pcre / testdata / testoutput2
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:05:52 2012 UTC (12 years, 5 months ago) by misho
Branches: pcre, MAIN
CVS tags: v8_21, 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-8 set of tests. When UTF-8 is needed, use test
    9:     5, and if Unicode Property Support is needed, use test 13. --/  
   10:   
   11: /-- Originally, the Perl >= 5.10 things were in here too, but now I have 
   12:     separated many (most?) of them out into test 11. However, there may still 
   13:     be some that were overlooked. --/   
   14: 
   15: /(a)b|/I
   16: Capturing subpattern count = 1
   17: No options
   18: No first char
   19: No need char
   20: 
   21: /abc/I
   22: Capturing subpattern count = 0
   23: No options
   24: First char = 'a'
   25: Need char = 'c'
   26:     abc
   27:  0: abc
   28:     defabc
   29:  0: abc
   30:     \Aabc
   31:  0: abc
   32:     *** Failers
   33: No match
   34:     \Adefabc
   35: No match
   36:     ABC
   37: No match
   38: 
   39: /^abc/I
   40: Capturing subpattern count = 0
   41: Options: anchored
   42: No first char
   43: No need char
   44:     abc
   45:  0: abc
   46:     \Aabc
   47:  0: abc
   48:     *** Failers
   49: No match
   50:     defabc
   51: No match
   52:     \Adefabc
   53: No match
   54: 
   55: /a+bc/I
   56: Capturing subpattern count = 0
   57: No options
   58: First char = 'a'
   59: Need char = 'c'
   60: 
   61: /a*bc/I
   62: Capturing subpattern count = 0
   63: No options
   64: No first char
   65: Need char = 'c'
   66: 
   67: /a{3}bc/I
   68: Capturing subpattern count = 0
   69: No options
   70: First char = 'a'
   71: Need char = 'c'
   72: 
   73: /(abc|a+z)/I
   74: Capturing subpattern count = 1
   75: No options
   76: First char = 'a'
   77: No need char
   78: 
   79: /^abc$/I
   80: Capturing subpattern count = 0
   81: Options: anchored
   82: No first char
   83: No need char
   84:     abc
   85:  0: abc
   86:     *** Failers
   87: No match
   88:     def\nabc
   89: No match
   90: 
   91: /ab\idef/X
   92: Failed: unrecognized character follows \ at offset 3
   93: 
   94: /(?X)ab\idef/X
   95: Failed: unrecognized character follows \ at offset 7
   96: 
   97: /x{5,4}/
   98: Failed: numbers out of order in {} quantifier at offset 5
   99: 
  100: /z{65536}/
  101: Failed: number too big in {} quantifier at offset 7
  102: 
  103: /[abcd/
  104: Failed: missing terminating ] for character class at offset 5
  105: 
  106: /(?X)[\B]/
  107: Failed: invalid escape sequence in character class at offset 6
  108: 
  109: /(?X)[\R]/
  110: Failed: invalid escape sequence in character class at offset 6
  111: 
  112: /(?X)[\X]/
  113: Failed: invalid escape sequence in character class at offset 6
  114: 
  115: /[\B]/BZ
  116: ------------------------------------------------------------------
  117:         Bra
  118:         B
  119:         Ket
  120:         End
  121: ------------------------------------------------------------------
  122: 
  123: /[\R]/BZ
  124: ------------------------------------------------------------------
  125:         Bra
  126:         R
  127:         Ket
  128:         End
  129: ------------------------------------------------------------------
  130: 
  131: /[\X]/BZ
  132: ------------------------------------------------------------------
  133:         Bra
  134:         X
  135:         Ket
  136:         End
  137: ------------------------------------------------------------------
  138: 
  139: /[z-a]/
  140: Failed: range out of order in character class at offset 3
  141: 
  142: /^*/
  143: Failed: nothing to repeat at offset 1
  144: 
  145: /(abc/
  146: Failed: missing ) at offset 4
  147: 
  148: /(?# abc/
  149: Failed: missing ) after comment at offset 7
  150: 
  151: /(?z)abc/
  152: Failed: unrecognized character after (? or (?- at offset 2
  153: 
  154: /.*b/I
  155: Capturing subpattern count = 0
  156: No options
  157: First char at start or follows newline
  158: Need char = 'b'
  159: 
  160: /.*?b/I
  161: Capturing subpattern count = 0
  162: No options
  163: First char at start or follows newline
  164: Need char = 'b'
  165: 
  166: /cat|dog|elephant/I
  167: Capturing subpattern count = 0
  168: No options
  169: No first char
  170: No need char
  171:     this sentence eventually mentions a cat
  172:  0: cat
  173:     this sentences rambles on and on for a while and then reaches elephant
  174:  0: elephant
  175: 
  176: /cat|dog|elephant/IS
  177: Capturing subpattern count = 0
  178: No options
  179: No first char
  180: No need char
  181: Subject length lower bound = 3
  182: Starting byte set: c d e 
  183:     this sentence eventually mentions a cat
  184:  0: cat
  185:     this sentences rambles on and on for a while and then reaches elephant
  186:  0: elephant
  187: 
  188: /cat|dog|elephant/IiS
  189: Capturing subpattern count = 0
  190: Options: caseless
  191: No first char
  192: No need char
  193: Subject length lower bound = 3
  194: Starting byte set: C D E c d e 
  195:     this sentence eventually mentions a CAT cat
  196:  0: CAT
  197:     this sentences rambles on and on for a while to elephant ElePhant
  198:  0: elephant
  199: 
  200: /a|[bcd]/IS
  201: Capturing subpattern count = 0
  202: No options
  203: No first char
  204: No need char
  205: Subject length lower bound = 1
  206: Starting byte set: a b c d 
  207: 
  208: /(a|[^\dZ])/IS
  209: Capturing subpattern count = 1
  210: No options
  211: No first char
  212: No need char
  213: Subject length lower bound = 1
  214: Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 
  215:   \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 
  216:   \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = > 
  217:   ? @ 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 
  218:   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 
  219:   \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 
  220:   \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 
  221:   \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 
  222:   \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf 
  223:   \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce 
  224:   \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd 
  225:   \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec 
  226:   \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb 
  227:   \xfc \xfd \xfe \xff 
  228: 
  229: /(a|b)*[\s]/IS
  230: Capturing subpattern count = 1
  231: No options
  232: No first char
  233: No need char
  234: Subject length lower bound = 1
  235: Starting byte set: \x09 \x0a \x0c \x0d \x20 a b 
  236: 
  237: /(ab\2)/
  238: Failed: reference to non-existent subpattern at offset 6
  239: 
  240: /{4,5}abc/
  241: Failed: nothing to repeat at offset 4
  242: 
  243: /(a)(b)(c)\2/I
  244: Capturing subpattern count = 3
  245: Max back reference = 2
  246: No options
  247: First char = 'a'
  248: Need char = 'c'
  249:     abcb
  250:  0: abcb
  251:  1: a
  252:  2: b
  253:  3: c
  254:     \O0abcb
  255: Matched, but too many substrings
  256:     \O3abcb
  257: Matched, but too many substrings
  258:  0: abcb
  259:     \O6abcb
  260: Matched, but too many substrings
  261:  0: abcb
  262:  1: a
  263:     \O9abcb
  264: Matched, but too many substrings
  265:  0: abcb
  266:  1: a
  267:  2: b
  268:     \O12abcb
  269:  0: abcb
  270:  1: a
  271:  2: b
  272:  3: c
  273: 
  274: /(a)bc|(a)(b)\2/I
  275: Capturing subpattern count = 3
  276: Max back reference = 2
  277: No options
  278: First char = 'a'
  279: No need char
  280:     abc
  281:  0: abc
  282:  1: a
  283:     \O0abc
  284: Matched, but too many substrings
  285:     \O3abc
  286: Matched, but too many substrings
  287:  0: abc
  288:     \O6abc
  289:  0: abc
  290:  1: a
  291:     aba
  292:  0: aba
  293:  1: <unset>
  294:  2: a
  295:  3: b
  296:     \O0aba
  297: Matched, but too many substrings
  298:     \O3aba
  299: Matched, but too many substrings
  300:  0: aba
  301:     \O6aba
  302: Matched, but too many substrings
  303:  0: aba
  304:  1: <unset>
  305:     \O9aba
  306: Matched, but too many substrings
  307:  0: aba
  308:  1: <unset>
  309:  2: a
  310:     \O12aba
  311:  0: aba
  312:  1: <unset>
  313:  2: a
  314:  3: b
  315: 
  316: /abc$/IE
  317: Capturing subpattern count = 0
  318: Options: dollar_endonly
  319: First char = 'a'
  320: Need char = 'c'
  321:     abc
  322:  0: abc
  323:     *** Failers
  324: No match
  325:     abc\n
  326: No match
  327:     abc\ndef
  328: No match
  329: 
  330: /(a)(b)(c)(d)(e)\6/
  331: Failed: reference to non-existent subpattern at offset 17
  332: 
  333: /the quick brown fox/I
  334: Capturing subpattern count = 0
  335: No options
  336: First char = 't'
  337: Need char = 'x'
  338:     the quick brown fox
  339:  0: the quick brown fox
  340:     this is a line with the quick brown fox
  341:  0: the quick brown fox
  342: 
  343: /the quick brown fox/IA
  344: Capturing subpattern count = 0
  345: Options: anchored
  346: No first char
  347: No need char
  348:     the quick brown fox
  349:  0: the quick brown fox
  350:     *** Failers
  351: No match
  352:     this is a line with the quick brown fox
  353: No match
  354: 
  355: /ab(?z)cd/
  356: Failed: unrecognized character after (? or (?- at offset 4
  357: 
  358: /^abc|def/I
  359: Capturing subpattern count = 0
  360: No options
  361: No first char
  362: No need char
  363:     abcdef
  364:  0: abc
  365:     abcdef\B
  366:  0: def
  367: 
  368: /.*((abc)$|(def))/I
  369: Capturing subpattern count = 3
  370: No options
  371: First char at start or follows newline
  372: No need char
  373:     defabc
  374:  0: defabc
  375:  1: abc
  376:  2: abc
  377:     \Zdefabc
  378:  0: def
  379:  1: def
  380:  2: <unset>
  381:  3: def
  382: 
  383: /abc/P
  384:     abc
  385:  0: abc
  386:     *** Failers
  387: No match: POSIX code 17: match failed
  388: 
  389: /^abc|def/P
  390:     abcdef
  391:  0: abc
  392:     abcdef\B
  393:  0: def
  394: 
  395: /.*((abc)$|(def))/P
  396:     defabc
  397:  0: defabc
  398:  1: abc
  399:  2: abc
  400:     \Zdefabc
  401:  0: def
  402:  1: def
  403:  3: def
  404: 
  405: /the quick brown fox/P
  406:     the quick brown fox
  407:  0: the quick brown fox
  408:     *** Failers
  409: No match: POSIX code 17: match failed
  410:     The Quick Brown Fox
  411: No match: POSIX code 17: match failed
  412: 
  413: /the quick brown fox/Pi
  414:     the quick brown fox
  415:  0: the quick brown fox
  416:     The Quick Brown Fox
  417:  0: The Quick Brown Fox
  418: 
  419: /abc.def/P
  420:     *** Failers
  421: No match: POSIX code 17: match failed
  422:     abc\ndef
  423: No match: POSIX code 17: match failed
  424: 
  425: /abc$/P
  426:     abc
  427:  0: abc
  428:     abc\n
  429:  0: abc
  430: 
  431: /(abc)\2/P
  432: Failed: POSIX code 15: bad back reference at offset 7     
  433: 
  434: /(abc\1)/P
  435:     abc
  436: No match: POSIX code 17: match failed
  437: 
  438: /)/
  439: Failed: unmatched parentheses at offset 0
  440: 
  441: /a[]b/
  442: Failed: missing terminating ] for character class at offset 4
  443: 
  444: /[^aeiou ]{3,}/I
  445: Capturing subpattern count = 0
  446: No options
  447: No first char
  448: No need char
  449:     co-processors, and for
  450:  0: -pr
  451: 
  452: /<.*>/I
  453: Capturing subpattern count = 0
  454: No options
  455: First char = '<'
  456: Need char = '>'
  457:     abc<def>ghi<klm>nop
  458:  0: <def>ghi<klm>
  459: 
  460: /<.*?>/I
  461: Capturing subpattern count = 0
  462: No options
  463: First char = '<'
  464: Need char = '>'
  465:     abc<def>ghi<klm>nop
  466:  0: <def>
  467: 
  468: /<.*>/IU
  469: Capturing subpattern count = 0
  470: Options: ungreedy
  471: First char = '<'
  472: Need char = '>'
  473:     abc<def>ghi<klm>nop
  474:  0: <def>
  475: 
  476: /(?U)<.*>/I
  477: Capturing subpattern count = 0
  478: Options: ungreedy
  479: First char = '<'
  480: Need char = '>'
  481:     abc<def>ghi<klm>nop
  482:  0: <def>
  483: 
  484: /<.*?>/IU
  485: Capturing subpattern count = 0
  486: Options: ungreedy
  487: First char = '<'
  488: Need char = '>'
  489:     abc<def>ghi<klm>nop
  490:  0: <def>ghi<klm>
  491: 
  492: /={3,}/IU
  493: Capturing subpattern count = 0
  494: Options: ungreedy
  495: First char = '='
  496: Need char = '='
  497:     abc========def
  498:  0: ===
  499: 
  500: /(?U)={3,}?/I
  501: Capturing subpattern count = 0
  502: Options: ungreedy
  503: First char = '='
  504: Need char = '='
  505:     abc========def
  506:  0: ========
  507: 
  508: /(?<!bar|cattle)foo/I
  509: Capturing subpattern count = 0
  510: No options
  511: First char = 'f'
  512: Need char = 'o'
  513:     foo
  514:  0: foo
  515:     catfoo
  516:  0: foo
  517:     *** Failers
  518: No match
  519:     the barfoo
  520: No match
  521:     and cattlefoo
  522: No match
  523: 
  524: /(?<=a+)b/
  525: Failed: lookbehind assertion is not fixed length at offset 6
  526: 
  527: /(?<=aaa|b{0,3})b/
  528: Failed: lookbehind assertion is not fixed length at offset 14
  529: 
  530: /(?<!(foo)a\1)bar/
  531: Failed: lookbehind assertion is not fixed length at offset 12
  532: 
  533: /(?i)abc/I
  534: Capturing subpattern count = 0
  535: Options: caseless
  536: First char = 'a' (caseless)
  537: Need char = 'c' (caseless)
  538: 
  539: /(a|(?m)a)/I
  540: Capturing subpattern count = 1
  541: No options
  542: First char = 'a'
  543: No need char
  544: 
  545: /(?i)^1234/I
  546: Capturing subpattern count = 0
  547: Options: anchored caseless
  548: No first char
  549: No need char
  550: 
  551: /(^b|(?i)^d)/I
  552: Capturing subpattern count = 1
  553: Options: anchored
  554: No first char
  555: No need char
  556: 
  557: /(?s).*/I
  558: Capturing subpattern count = 0
  559: Options: anchored dotall
  560: No first char
  561: No need char
  562: 
  563: /[abcd]/IS
  564: Capturing subpattern count = 0
  565: No options
  566: No first char
  567: No need char
  568: Subject length lower bound = 1
  569: Starting byte set: a b c d 
  570: 
  571: /(?i)[abcd]/IS
  572: Capturing subpattern count = 0
  573: Options: caseless
  574: No first char
  575: No need char
  576: Subject length lower bound = 1
  577: Starting byte set: A B C D a b c d 
  578: 
  579: /(?m)[xy]|(b|c)/IS
  580: Capturing subpattern count = 1
  581: Options: multiline
  582: No first char
  583: No need char
  584: Subject length lower bound = 1
  585: Starting byte set: b c x y 
  586: 
  587: /(^a|^b)/Im
  588: Capturing subpattern count = 1
  589: Options: multiline
  590: First char at start or follows newline
  591: No need char
  592: 
  593: /(?i)(^a|^b)/Im
  594: Capturing subpattern count = 1
  595: Options: caseless multiline
  596: First char at start or follows newline
  597: No need char
  598: 
  599: /(a)(?(1)a|b|c)/
  600: Failed: conditional group contains more than two branches at offset 13
  601: 
  602: /(?(?=a)a|b|c)/
  603: Failed: conditional group contains more than two branches at offset 12
  604: 
  605: /(?(1a)/
  606: Failed: missing ) at offset 6
  607: 
  608: /(?(1a))/
  609: Failed: reference to non-existent subpattern at offset 6
  610: 
  611: /(?(?i))/
  612: Failed: assertion expected after (?( at offset 3
  613: 
  614: /(?(abc))/
  615: Failed: reference to non-existent subpattern at offset 7
  616: 
  617: /(?(?<ab))/
  618: Failed: syntax error in subpattern name (missing terminator) at offset 7
  619: 
  620: /((?s)blah)\s+\1/I
  621: Capturing subpattern count = 1
  622: Max back reference = 1
  623: No options
  624: First char = 'b'
  625: Need char = 'h'
  626: 
  627: /((?i)blah)\s+\1/I
  628: Capturing subpattern count = 1
  629: Max back reference = 1
  630: No options
  631: First char = 'b' (caseless)
  632: Need char = 'h' (caseless)
  633: 
  634: /((?i)b)/IDZS
  635: ------------------------------------------------------------------
  636:         Bra
  637:         CBra 1
  638:      /i b
  639:         Ket
  640:         Ket
  641:         End
  642: ------------------------------------------------------------------
  643: Capturing subpattern count = 1
  644: No options
  645: First char = 'b' (caseless)
  646: No need char
  647: Subject length lower bound = 1
  648: No set of starting bytes
  649: 
  650: /(a*b|(?i:c*(?-i)d))/IS
  651: Capturing subpattern count = 1
  652: No options
  653: No first char
  654: No need char
  655: Subject length lower bound = 1
  656: Starting byte set: C a b c d 
  657: 
  658: /a$/I
  659: Capturing subpattern count = 0
  660: No options
  661: First char = 'a'
  662: No need char
  663:     a
  664:  0: a
  665:     a\n
  666:  0: a
  667:     *** Failers
  668: No match
  669:     \Za
  670: No match
  671:     \Za\n
  672: No match
  673: 
  674: /a$/Im
  675: Capturing subpattern count = 0
  676: Options: multiline
  677: First char = 'a'
  678: No need char
  679:     a
  680:  0: a
  681:     a\n
  682:  0: a
  683:     \Za\n
  684:  0: a
  685:     *** Failers
  686: No match
  687:     \Za
  688: No match
  689: 
  690: /\Aabc/Im
  691: Capturing subpattern count = 0
  692: Options: anchored multiline
  693: No first char
  694: No need char
  695: 
  696: /^abc/Im
  697: Capturing subpattern count = 0
  698: Options: multiline
  699: First char at start or follows newline
  700: Need char = 'c'
  701: 
  702: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
  703: Capturing subpattern count = 5
  704: Options: anchored
  705: No first char
  706: No need char
  707:   aaaaabbbbbcccccdef
  708:  0: aaaaabbbbbcccccdef
  709:  1: aaaaabbbbbcccccdef
  710:  2: aaaaa
  711:  3: b
  712:  4: bbbbccccc
  713:  5: def
  714: 
  715: /(?<=foo)[ab]/IS
  716: Capturing subpattern count = 0
  717: No options
  718: No first char
  719: No need char
  720: Subject length lower bound = 1
  721: Starting byte set: a b 
  722: 
  723: /(?<!foo)(alpha|omega)/IS
  724: Capturing subpattern count = 1
  725: No options
  726: No first char
  727: Need char = 'a'
  728: Subject length lower bound = 5
  729: Starting byte set: a o 
  730: 
  731: /(?!alphabet)[ab]/IS
  732: Capturing subpattern count = 0
  733: No options
  734: No first char
  735: No need char
  736: Subject length lower bound = 1
  737: Starting byte set: a b 
  738: 
  739: /(?<=foo\n)^bar/Im
  740: Capturing subpattern count = 0
  741: Contains explicit CR or LF match
  742: Options: multiline
  743: No first char
  744: Need char = 'r'
  745:     foo\nbarbar
  746:  0: bar
  747:     ***Failers
  748: No match
  749:     rhubarb
  750: No match
  751:     barbell
  752: No match
  753:     abc\nbarton
  754: No match
  755: 
  756: /^(?<=foo\n)bar/Im
  757: Capturing subpattern count = 0
  758: Contains explicit CR or LF match
  759: Options: multiline
  760: First char at start or follows newline
  761: Need char = 'r'
  762:     foo\nbarbar
  763:  0: bar
  764:     ***Failers
  765: No match
  766:     rhubarb
  767: No match
  768:     barbell
  769: No match
  770:     abc\nbarton
  771: No match
  772: 
  773: /(?>^abc)/Im
  774: Capturing subpattern count = 0
  775: Options: multiline
  776: First char at start or follows newline
  777: Need char = 'c'
  778:     abc
  779:  0: abc
  780:     def\nabc
  781:  0: abc
  782:     *** Failers
  783: No match
  784:     defabc
  785: No match
  786: 
  787: /(?<=ab(c+)d)ef/
  788: Failed: lookbehind assertion is not fixed length at offset 11
  789: 
  790: /(?<=ab(?<=c+)d)ef/
  791: Failed: lookbehind assertion is not fixed length at offset 12
  792: 
  793: /(?<=ab(c|de)f)g/
  794: Failed: lookbehind assertion is not fixed length at offset 13
  795: 
  796: /The next three are in testinput2 because they have variable length branches/
  797: 
  798: /(?<=bullock|donkey)-cart/I
  799: Capturing subpattern count = 0
  800: No options
  801: First char = '-'
  802: Need char = 't'
  803:     the bullock-cart
  804:  0: -cart
  805:     a donkey-cart race
  806:  0: -cart
  807:     *** Failers
  808: No match
  809:     cart
  810: No match
  811:     horse-and-cart
  812: No match
  813: 
  814: /(?<=ab(?i)x|y|z)/I
  815: Capturing subpattern count = 0
  816: No options
  817: No first char
  818: No need char
  819: 
  820: /(?>.*)(?<=(abcd)|(xyz))/I
  821: Capturing subpattern count = 2
  822: No options
  823: First char at start or follows newline
  824: No need char
  825:     alphabetabcd
  826:  0: alphabetabcd
  827:  1: abcd
  828:     endingxyz
  829:  0: endingxyz
  830:  1: <unset>
  831:  2: xyz
  832: 
  833: /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
  834: Capturing subpattern count = 0
  835: No options
  836: First char = 'Z'
  837: Need char = 'Z'
  838:     abxyZZ
  839:  0: ZZ
  840:     abXyZZ
  841:  0: ZZ
  842:     ZZZ
  843:  0: ZZ
  844:     zZZ
  845:  0: ZZ
  846:     bZZ
  847:  0: ZZ
  848:     BZZ
  849:  0: ZZ
  850:     *** Failers
  851: No match
  852:     ZZ
  853: No match
  854:     abXYZZ
  855: No match
  856:     zzz
  857: No match
  858:     bzz
  859: No match
  860: 
  861: /(?<!(foo)a)bar/I
  862: Capturing subpattern count = 1
  863: No options
  864: First char = 'b'
  865: Need char = 'r'
  866:     bar
  867:  0: bar
  868:     foobbar
  869:  0: bar
  870:     *** Failers
  871: No match
  872:     fooabar
  873: No match
  874: 
  875: /This one is here because Perl 5.005_02 doesn't fail it/I
  876: Capturing subpattern count = 0
  877: No options
  878: First char = 'T'
  879: Need char = 't'
  880: 
  881: /^(a)?(?(1)a|b)+$/I
  882: Capturing subpattern count = 1
  883: Options: anchored
  884: No first char
  885: No need char
  886:     *** Failers
  887: No match
  888:     a
  889: No match
  890: 
  891: /This one is here because Perl behaves differently; see also the following/I
  892: Capturing subpattern count = 0
  893: No options
  894: First char = 'T'
  895: Need char = 'g'
  896: 
  897: /^(a\1?){4}$/I
  898: Capturing subpattern count = 1
  899: Max back reference = 1
  900: Options: anchored
  901: No first char
  902: No need char
  903:     aaaa
  904: No match
  905:     aaaaaa
  906: No match
  907:     
  908: /Perl does not fail these two for the final subjects. Neither did PCRE until/
  909: /release 8.01. The problem is in backtracking into a subpattern that contains/
  910: No match
  911: /a recursive reference to itself. PCRE has now made these into atomic patterns./
  912: No match
  913: 
  914: /^(xa|=?\1a){2}$/
  915:     xa=xaa
  916:  0: xa=xaa
  917:  1: =xaa
  918:     ** Failers
  919: No match
  920:     xa=xaaa
  921: No match
  922: 
  923: /^(xa|=?\1a)+$/
  924:     xa=xaa
  925:  0: xa=xaa
  926:  1: =xaa
  927:     ** Failers
  928: No match
  929:     xa=xaaa
  930: No match
  931: 
  932: /These are syntax tests from Perl 5.005/I
  933: Capturing subpattern count = 0
  934: No options
  935: First char = 'T'
  936: Need char = '5'
  937: 
  938: /a[b-a]/
  939: Failed: range out of order in character class at offset 4
  940: 
  941: /a[]b/
  942: Failed: missing terminating ] for character class at offset 4
  943: 
  944: /a[/
  945: Failed: missing terminating ] for character class at offset 2
  946: 
  947: /*a/
  948: Failed: nothing to repeat at offset 0
  949: 
  950: /(*)b/
  951: Failed: nothing to repeat at offset 1
  952: 
  953: /abc)/
  954: Failed: unmatched parentheses at offset 3
  955: 
  956: /(abc/
  957: Failed: missing ) at offset 4
  958: 
  959: /a**/
  960: Failed: nothing to repeat at offset 2
  961: 
  962: /)(/
  963: Failed: unmatched parentheses at offset 0
  964: 
  965: /\1/
  966: Failed: reference to non-existent subpattern at offset 2
  967: 
  968: /\2/
  969: Failed: reference to non-existent subpattern at offset 2
  970: 
  971: /(a)|\2/
  972: Failed: reference to non-existent subpattern at offset 6
  973: 
  974: /a[b-a]/Ii
  975: Failed: range out of order in character class at offset 4
  976: 
  977: /a[]b/Ii
  978: Failed: missing terminating ] for character class at offset 4
  979: 
  980: /a[/Ii
  981: Failed: missing terminating ] for character class at offset 2
  982: 
  983: /*a/Ii
  984: Failed: nothing to repeat at offset 0
  985: 
  986: /(*)b/Ii
  987: Failed: nothing to repeat at offset 1
  988: 
  989: /abc)/Ii
  990: Failed: unmatched parentheses at offset 3
  991: 
  992: /(abc/Ii
  993: Failed: missing ) at offset 4
  994: 
  995: /a**/Ii
  996: Failed: nothing to repeat at offset 2
  997: 
  998: /)(/Ii
  999: Failed: unmatched parentheses at offset 0
 1000: 
 1001: /:(?:/
 1002: Failed: missing ) at offset 4
 1003: 
 1004: /(?<%)b/
 1005: Failed: unrecognized character after (?< at offset 3
 1006: 
 1007: /a(?{)b/
 1008: Failed: unrecognized character after (? or (?- at offset 3
 1009: 
 1010: /a(?{{})b/
 1011: Failed: unrecognized character after (? or (?- at offset 3
 1012: 
 1013: /a(?{}})b/
 1014: Failed: unrecognized character after (? or (?- at offset 3
 1015: 
 1016: /a(?{"{"})b/
 1017: Failed: unrecognized character after (? or (?- at offset 3
 1018: 
 1019: /a(?{"{"}})b/
 1020: Failed: unrecognized character after (? or (?- at offset 3
 1021: 
 1022: /(?(1?)a|b)/
 1023: Failed: malformed number or name after (?( at offset 4
 1024: 
 1025: /[a[:xyz:/
 1026: Failed: missing terminating ] for character class at offset 8
 1027: 
 1028: /(?<=x+)y/
 1029: Failed: lookbehind assertion is not fixed length at offset 6
 1030: 
 1031: /a{37,17}/
 1032: Failed: numbers out of order in {} quantifier at offset 7
 1033: 
 1034: /abc/\
 1035: Failed: \ at end of pattern at offset 4
 1036: 
 1037: /abc/\P
 1038: Failed: POSIX code 9: bad escape sequence at offset 4     
 1039: 
 1040: /abc/\i
 1041: Failed: \ at end of pattern at offset 4
 1042: 
 1043: /(a)bc(d)/I
 1044: Capturing subpattern count = 2
 1045: No options
 1046: First char = 'a'
 1047: Need char = 'd'
 1048:     abcd
 1049:  0: abcd
 1050:  1: a
 1051:  2: d
 1052:     abcd\C2
 1053:  0: abcd
 1054:  1: a
 1055:  2: d
 1056:  2C d (1)
 1057:     abcd\C5
 1058:  0: abcd
 1059:  1: a
 1060:  2: d
 1061: copy substring 5 failed -7
 1062: 
 1063: /(.{20})/I
 1064: Capturing subpattern count = 1
 1065: No options
 1066: No first char
 1067: No need char
 1068:     abcdefghijklmnopqrstuvwxyz
 1069:  0: abcdefghijklmnopqrst
 1070:  1: abcdefghijklmnopqrst
 1071:     abcdefghijklmnopqrstuvwxyz\C1
 1072:  0: abcdefghijklmnopqrst
 1073:  1: abcdefghijklmnopqrst
 1074:  1C abcdefghijklmnopqrst (20)
 1075:     abcdefghijklmnopqrstuvwxyz\G1
 1076:  0: abcdefghijklmnopqrst
 1077:  1: abcdefghijklmnopqrst
 1078:  1G abcdefghijklmnopqrst (20)
 1079: 
 1080: /(.{15})/I
 1081: Capturing subpattern count = 1
 1082: No options
 1083: No first char
 1084: No need char
 1085:     abcdefghijklmnopqrstuvwxyz
 1086:  0: abcdefghijklmno
 1087:  1: abcdefghijklmno
 1088:     abcdefghijklmnopqrstuvwxyz\C1\G1
 1089:  0: abcdefghijklmno
 1090:  1: abcdefghijklmno
 1091:  1C abcdefghijklmno (15)
 1092:  1G abcdefghijklmno (15)
 1093: 
 1094: /(.{16})/I
 1095: Capturing subpattern count = 1
 1096: No options
 1097: No first char
 1098: No need char
 1099:     abcdefghijklmnopqrstuvwxyz
 1100:  0: abcdefghijklmnop
 1101:  1: abcdefghijklmnop
 1102:     abcdefghijklmnopqrstuvwxyz\C1\G1\L
 1103:  0: abcdefghijklmnop
 1104:  1: abcdefghijklmnop
 1105:  1C abcdefghijklmnop (16)
 1106:  1G abcdefghijklmnop (16)
 1107:  0L abcdefghijklmnop
 1108:  1L abcdefghijklmnop
 1109: 
 1110: /^(a|(bc))de(f)/I
 1111: Capturing subpattern count = 3
 1112: Options: anchored
 1113: No first char
 1114: No need char
 1115:     adef\G1\G2\G3\G4\L
 1116:  0: adef
 1117:  1: a
 1118:  2: <unset>
 1119:  3: f
 1120:  1G a (1)
 1121:  2G  (0)
 1122:  3G f (1)
 1123: get substring 4 failed -7
 1124:  0L adef
 1125:  1L a
 1126:  2L 
 1127:  3L f
 1128:     bcdef\G1\G2\G3\G4\L
 1129:  0: bcdef
 1130:  1: bc
 1131:  2: bc
 1132:  3: f
 1133:  1G bc (2)
 1134:  2G bc (2)
 1135:  3G f (1)
 1136: get substring 4 failed -7
 1137:  0L bcdef
 1138:  1L bc
 1139:  2L bc
 1140:  3L f
 1141:     adefghijk\C0
 1142:  0: adef
 1143:  1: a
 1144:  2: <unset>
 1145:  3: f
 1146:  0C adef (4)
 1147: 
 1148: /^abc\00def/I
 1149: Capturing subpattern count = 0
 1150: Options: anchored
 1151: No first char
 1152: No need char
 1153:     abc\00def\L\C0
 1154:  0: abc\x00def
 1155:  0C abc (7)
 1156:  0L abc
 1157: 
 1158: /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
 1159: )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
 1160: )?)?)?)?)?)?)?)?)?otherword/I
 1161: Capturing subpattern count = 8
 1162: Contains explicit CR or LF match
 1163: No options
 1164: First char = 'w'
 1165: Need char = 'd'
 1166: 
 1167: /.*X/IDZ
 1168: ------------------------------------------------------------------
 1169:         Bra
 1170:         Any*
 1171:         X
 1172:         Ket
 1173:         End
 1174: ------------------------------------------------------------------
 1175: Capturing subpattern count = 0
 1176: No options
 1177: First char at start or follows newline
 1178: Need char = 'X'
 1179: 
 1180: /.*X/IDZs
 1181: ------------------------------------------------------------------
 1182:         Bra
 1183:         AllAny*
 1184:         X
 1185:         Ket
 1186:         End
 1187: ------------------------------------------------------------------
 1188: Capturing subpattern count = 0
 1189: Options: anchored dotall
 1190: No first char
 1191: Need char = 'X'
 1192: 
 1193: /(.*X|^B)/IDZ
 1194: ------------------------------------------------------------------
 1195:         Bra
 1196:         CBra 1
 1197:         Any*
 1198:         X
 1199:         Alt
 1200:         ^
 1201:         B
 1202:         Ket
 1203:         Ket
 1204:         End
 1205: ------------------------------------------------------------------
 1206: Capturing subpattern count = 1
 1207: No options
 1208: First char at start or follows newline
 1209: No need char
 1210: 
 1211: /(.*X|^B)/IDZs
 1212: ------------------------------------------------------------------
 1213:         Bra
 1214:         CBra 1
 1215:         AllAny*
 1216:         X
 1217:         Alt
 1218:         ^
 1219:         B
 1220:         Ket
 1221:         Ket
 1222:         End
 1223: ------------------------------------------------------------------
 1224: Capturing subpattern count = 1
 1225: Options: anchored dotall
 1226: No first char
 1227: No need char
 1228: 
 1229: /(?s)(.*X|^B)/IDZ
 1230: ------------------------------------------------------------------
 1231:         Bra
 1232:         CBra 1
 1233:         AllAny*
 1234:         X
 1235:         Alt
 1236:         ^
 1237:         B
 1238:         Ket
 1239:         Ket
 1240:         End
 1241: ------------------------------------------------------------------
 1242: Capturing subpattern count = 1
 1243: Options: anchored dotall
 1244: No first char
 1245: No need char
 1246: 
 1247: /(?s:.*X|^B)/IDZ
 1248: ------------------------------------------------------------------
 1249:         Bra
 1250:         Bra
 1251:         AllAny*
 1252:         X
 1253:         Alt
 1254:         ^
 1255:         B
 1256:         Ket
 1257:         Ket
 1258:         End
 1259: ------------------------------------------------------------------
 1260: Capturing subpattern count = 0
 1261: Options: anchored
 1262: No first char
 1263: No need char
 1264: 
 1265: /\Biss\B/I+
 1266: Capturing subpattern count = 0
 1267: No options
 1268: First char = 'i'
 1269: Need char = 's'
 1270:     Mississippi
 1271:  0: iss
 1272:  0+ issippi
 1273: 
 1274: /\Biss\B/I+P
 1275:     Mississippi
 1276:  0: iss
 1277:  0+ issippi
 1278: 
 1279: /iss/IG+
 1280: Capturing subpattern count = 0
 1281: No options
 1282: First char = 'i'
 1283: Need char = 's'
 1284:     Mississippi
 1285:  0: iss
 1286:  0+ issippi
 1287:  0: iss
 1288:  0+ ippi
 1289: 
 1290: /\Biss\B/IG+
 1291: Capturing subpattern count = 0
 1292: No options
 1293: First char = 'i'
 1294: Need char = 's'
 1295:     Mississippi
 1296:  0: iss
 1297:  0+ issippi
 1298: 
 1299: /\Biss\B/Ig+
 1300: Capturing subpattern count = 0
 1301: No options
 1302: First char = 'i'
 1303: Need char = 's'
 1304:     Mississippi
 1305:  0: iss
 1306:  0+ issippi
 1307:  0: iss
 1308:  0+ ippi
 1309:     *** Failers
 1310: No match
 1311:     Mississippi\A
 1312: No match
 1313: 
 1314: /(?<=[Ms])iss/Ig+
 1315: Capturing subpattern count = 0
 1316: No options
 1317: First char = 'i'
 1318: Need char = 's'
 1319:     Mississippi
 1320:  0: iss
 1321:  0+ issippi
 1322:  0: iss
 1323:  0+ ippi
 1324: 
 1325: /(?<=[Ms])iss/IG+
 1326: Capturing subpattern count = 0
 1327: No options
 1328: First char = 'i'
 1329: Need char = 's'
 1330:     Mississippi
 1331:  0: iss
 1332:  0+ issippi
 1333: 
 1334: /^iss/Ig+
 1335: Capturing subpattern count = 0
 1336: Options: anchored
 1337: No first char
 1338: No need char
 1339:     ississippi
 1340:  0: iss
 1341:  0+ issippi
 1342: 
 1343: /.*iss/Ig+
 1344: Capturing subpattern count = 0
 1345: No options
 1346: First char at start or follows newline
 1347: Need char = 's'
 1348:     abciss\nxyzisspqr
 1349:  0: abciss
 1350:  0+ \x0axyzisspqr
 1351:  0: xyziss
 1352:  0+ pqr
 1353: 
 1354: /.i./I+g
 1355: Capturing subpattern count = 0
 1356: No options
 1357: No first char
 1358: Need char = 'i'
 1359:     Mississippi
 1360:  0: Mis
 1361:  0+ sissippi
 1362:  0: sis
 1363:  0+ sippi
 1364:  0: sip
 1365:  0+ pi
 1366:     Mississippi\A
 1367:  0: Mis
 1368:  0+ sissippi
 1369:  0: sis
 1370:  0+ sippi
 1371:  0: sip
 1372:  0+ pi
 1373:     Missouri river
 1374:  0: Mis
 1375:  0+ souri river
 1376:  0: ri 
 1377:  0+ river
 1378:  0: riv
 1379:  0+ er
 1380:     Missouri river\A
 1381:  0: Mis
 1382:  0+ souri river
 1383: 
 1384: /^.is/I+g
 1385: Capturing subpattern count = 0
 1386: Options: anchored
 1387: No first char
 1388: No need char
 1389:     Mississippi
 1390:  0: Mis
 1391:  0+ sissippi
 1392: 
 1393: /^ab\n/Ig+
 1394: Capturing subpattern count = 0
 1395: Contains explicit CR or LF match
 1396: Options: anchored
 1397: No first char
 1398: No need char
 1399:     ab\nab\ncd
 1400:  0: ab\x0a
 1401:  0+ ab\x0acd
 1402: 
 1403: /^ab\n/Img+
 1404: Capturing subpattern count = 0
 1405: Contains explicit CR or LF match
 1406: Options: multiline
 1407: First char at start or follows newline
 1408: Need char = 10
 1409:     ab\nab\ncd
 1410:  0: ab\x0a
 1411:  0+ ab\x0acd
 1412:  0: ab\x0a
 1413:  0+ cd
 1414: 
 1415: /abc/I
 1416: Capturing subpattern count = 0
 1417: No options
 1418: First char = 'a'
 1419: Need char = 'c'
 1420: 
 1421: /abc|bac/I
 1422: Capturing subpattern count = 0
 1423: No options
 1424: No first char
 1425: Need char = 'c'
 1426: 
 1427: /(abc|bac)/I
 1428: Capturing subpattern count = 1
 1429: No options
 1430: No first char
 1431: Need char = 'c'
 1432: 
 1433: /(abc|(c|dc))/I
 1434: Capturing subpattern count = 2
 1435: No options
 1436: No first char
 1437: Need char = 'c'
 1438: 
 1439: /(abc|(d|de)c)/I
 1440: Capturing subpattern count = 2
 1441: No options
 1442: No first char
 1443: Need char = 'c'
 1444: 
 1445: /a*/I
 1446: Capturing subpattern count = 0
 1447: No options
 1448: No first char
 1449: No need char
 1450: 
 1451: /a+/I
 1452: Capturing subpattern count = 0
 1453: No options
 1454: First char = 'a'
 1455: No need char
 1456: 
 1457: /(baa|a+)/I
 1458: Capturing subpattern count = 1
 1459: No options
 1460: No first char
 1461: Need char = 'a'
 1462: 
 1463: /a{0,3}/I
 1464: Capturing subpattern count = 0
 1465: No options
 1466: No first char
 1467: No need char
 1468: 
 1469: /baa{3,}/I
 1470: Capturing subpattern count = 0
 1471: No options
 1472: First char = 'b'
 1473: Need char = 'a'
 1474: 
 1475: /"([^\\"]+|\\.)*"/I
 1476: Capturing subpattern count = 1
 1477: No options
 1478: First char = '"'
 1479: Need char = '"'
 1480: 
 1481: /(abc|ab[cd])/I
 1482: Capturing subpattern count = 1
 1483: No options
 1484: First char = 'a'
 1485: No need char
 1486: 
 1487: /(a|.)/I
 1488: Capturing subpattern count = 1
 1489: No options
 1490: No first char
 1491: No need char
 1492: 
 1493: /a|ba|\w/I
 1494: Capturing subpattern count = 0
 1495: No options
 1496: No first char
 1497: No need char
 1498: 
 1499: /abc(?=pqr)/I
 1500: Capturing subpattern count = 0
 1501: No options
 1502: First char = 'a'
 1503: Need char = 'r'
 1504: 
 1505: /...(?<=abc)/I
 1506: Capturing subpattern count = 0
 1507: No options
 1508: No first char
 1509: No need char
 1510: 
 1511: /abc(?!pqr)/I
 1512: Capturing subpattern count = 0
 1513: No options
 1514: First char = 'a'
 1515: Need char = 'c'
 1516: 
 1517: /ab./I
 1518: Capturing subpattern count = 0
 1519: No options
 1520: First char = 'a'
 1521: Need char = 'b'
 1522: 
 1523: /ab[xyz]/I
 1524: Capturing subpattern count = 0
 1525: No options
 1526: First char = 'a'
 1527: Need char = 'b'
 1528: 
 1529: /abc*/I
 1530: Capturing subpattern count = 0
 1531: No options
 1532: First char = 'a'
 1533: Need char = 'b'
 1534: 
 1535: /ab.c*/I
 1536: Capturing subpattern count = 0
 1537: No options
 1538: First char = 'a'
 1539: Need char = 'b'
 1540: 
 1541: /a.c*/I
 1542: Capturing subpattern count = 0
 1543: No options
 1544: First char = 'a'
 1545: No need char
 1546: 
 1547: /.c*/I
 1548: Capturing subpattern count = 0
 1549: No options
 1550: No first char
 1551: No need char
 1552: 
 1553: /ac*/I
 1554: Capturing subpattern count = 0
 1555: No options
 1556: First char = 'a'
 1557: No need char
 1558: 
 1559: /(a.c*|b.c*)/I
 1560: Capturing subpattern count = 1
 1561: No options
 1562: No first char
 1563: No need char
 1564: 
 1565: /a.c*|aba/I
 1566: Capturing subpattern count = 0
 1567: No options
 1568: First char = 'a'
 1569: No need char
 1570: 
 1571: /.+a/I
 1572: Capturing subpattern count = 0
 1573: No options
 1574: No first char
 1575: Need char = 'a'
 1576: 
 1577: /(?=abcda)a.*/I
 1578: Capturing subpattern count = 0
 1579: No options
 1580: First char = 'a'
 1581: Need char = 'a'
 1582: 
 1583: /(?=a)a.*/I
 1584: Capturing subpattern count = 0
 1585: No options
 1586: First char = 'a'
 1587: No need char
 1588: 
 1589: /a(b)*/I
 1590: Capturing subpattern count = 1
 1591: No options
 1592: First char = 'a'
 1593: No need char
 1594: 
 1595: /a\d*/I
 1596: Capturing subpattern count = 0
 1597: No options
 1598: First char = 'a'
 1599: No need char
 1600: 
 1601: /ab\d*/I
 1602: Capturing subpattern count = 0
 1603: No options
 1604: First char = 'a'
 1605: Need char = 'b'
 1606: 
 1607: /a(\d)*/I
 1608: Capturing subpattern count = 1
 1609: No options
 1610: First char = 'a'
 1611: No need char
 1612: 
 1613: /abcde{0,0}/I
 1614: Capturing subpattern count = 0
 1615: No options
 1616: First char = 'a'
 1617: Need char = 'd'
 1618: 
 1619: /ab\d+/I
 1620: Capturing subpattern count = 0
 1621: No options
 1622: First char = 'a'
 1623: Need char = 'b'
 1624: 
 1625: /a(?(1)b)(.)/I
 1626: Capturing subpattern count = 1
 1627: No options
 1628: First char = 'a'
 1629: No need char
 1630: 
 1631: /a(?(1)bag|big)(.)/I
 1632: Capturing subpattern count = 1
 1633: No options
 1634: First char = 'a'
 1635: Need char = 'g'
 1636: 
 1637: /a(?(1)bag|big)*(.)/I
 1638: Capturing subpattern count = 1
 1639: No options
 1640: First char = 'a'
 1641: No need char
 1642: 
 1643: /a(?(1)bag|big)+(.)/I
 1644: Capturing subpattern count = 1
 1645: No options
 1646: First char = 'a'
 1647: Need char = 'g'
 1648: 
 1649: /a(?(1)b..|b..)(.)/I
 1650: Capturing subpattern count = 1
 1651: No options
 1652: First char = 'a'
 1653: Need char = 'b'
 1654: 
 1655: /ab\d{0}e/I
 1656: Capturing subpattern count = 0
 1657: No options
 1658: First char = 'a'
 1659: Need char = 'e'
 1660: 
 1661: /a?b?/I
 1662: Capturing subpattern count = 0
 1663: No options
 1664: No first char
 1665: No need char
 1666:     a
 1667:  0: a
 1668:     b
 1669:  0: b
 1670:     ab
 1671:  0: ab
 1672:     \
 1673:  0: 
 1674:     *** Failers
 1675:  0: 
 1676:     \N
 1677: No match
 1678: 
 1679: /|-/I
 1680: Capturing subpattern count = 0
 1681: No options
 1682: No first char
 1683: No need char
 1684:     abcd
 1685:  0: 
 1686:     -abc
 1687:  0: 
 1688:     \Nab-c
 1689:  0: -
 1690:     *** Failers
 1691:  0: 
 1692:     \Nabc
 1693: No match
 1694: 
 1695: /a*(b+)(z)(z)/P
 1696:     aaaabbbbzzzz
 1697:  0: aaaabbbbzz
 1698:  1: bbbb
 1699:  2: z
 1700:  3: z
 1701:     aaaabbbbzzzz\O0
 1702:     aaaabbbbzzzz\O1
 1703:  0: aaaabbbbzz
 1704:     aaaabbbbzzzz\O2
 1705:  0: aaaabbbbzz
 1706:  1: bbbb
 1707:     aaaabbbbzzzz\O3
 1708:  0: aaaabbbbzz
 1709:  1: bbbb
 1710:  2: z
 1711:     aaaabbbbzzzz\O4
 1712:  0: aaaabbbbzz
 1713:  1: bbbb
 1714:  2: z
 1715:  3: z
 1716:     aaaabbbbzzzz\O5
 1717:  0: aaaabbbbzz
 1718:  1: bbbb
 1719:  2: z
 1720:  3: z
 1721: 
 1722: /^.?abcd/IS
 1723: Capturing subpattern count = 0
 1724: Options: anchored
 1725: No first char
 1726: Need char = 'd'
 1727: Subject length lower bound = 4
 1728: No set of starting bytes
 1729: 
 1730: /\(             # ( at start
 1731:   (?:           # Non-capturing bracket
 1732:   (?>[^()]+)    # Either a sequence of non-brackets (no backtracking)
 1733:   |             # Or
 1734:   (?R)          # Recurse - i.e. nested bracketed string
 1735:   )*            # Zero or more contents
 1736:   \)            # Closing )
 1737:   /Ix
 1738: Capturing subpattern count = 0
 1739: Options: extended
 1740: First char = '('
 1741: Need char = ')'
 1742:     (abcd)
 1743:  0: (abcd)
 1744:     (abcd)xyz
 1745:  0: (abcd)
 1746:     xyz(abcd)
 1747:  0: (abcd)
 1748:     (ab(xy)cd)pqr
 1749:  0: (ab(xy)cd)
 1750:     (ab(xycd)pqr
 1751:  0: (xycd)
 1752:     () abc ()
 1753:  0: ()
 1754:     12(abcde(fsh)xyz(foo(bar))lmno)89
 1755:  0: (abcde(fsh)xyz(foo(bar))lmno)
 1756:     *** Failers
 1757: No match
 1758:     abcd
 1759: No match
 1760:     abcd)
 1761: No match
 1762:     (abcd
 1763: No match
 1764: 
 1765: /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
 1766: Capturing subpattern count = 1
 1767: Options: extended
 1768: First char = '('
 1769: Need char = ')'
 1770:     (ab(xy)cd)pqr
 1771:  0: (ab(xy)cd)
 1772:  1: cd
 1773:     1(abcd)(x(y)z)pqr
 1774:  0: (abcd)
 1775:  1: abcd
 1776:  0: (x(y)z)
 1777:  1: z
 1778: 
 1779: /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
 1780: Capturing subpattern count = 0
 1781: Options: extended
 1782: First char = '('
 1783: Need char = ')'
 1784:     (abcd)
 1785:  0: (abcd)
 1786:     (ab(xy)cd)
 1787:  0: (xy)
 1788:     (a(b(c)d)e)
 1789:  0: (c)
 1790:     ((ab))
 1791:  0: ((ab))
 1792:     *** Failers
 1793: No match
 1794:     ()
 1795: No match
 1796: 
 1797: /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
 1798: Capturing subpattern count = 0
 1799: Options: extended
 1800: First char = '('
 1801: Need char = ')'
 1802:     ()
 1803:  0: ()
 1804:     12(abcde(fsh)xyz(foo(bar))lmno)89
 1805:  0: (fsh)
 1806: 
 1807: /\(  ( (?>[^()]+) | (?R) )* \) /Ix
 1808: Capturing subpattern count = 1
 1809: Options: extended
 1810: First char = '('
 1811: Need char = ')'
 1812:     (ab(xy)cd)
 1813:  0: (ab(xy)cd)
 1814:  1: cd
 1815: 
 1816: /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
 1817: Capturing subpattern count = 2
 1818: Options: extended
 1819: First char = '('
 1820: Need char = ')'
 1821:     (ab(xy)cd)
 1822:  0: (ab(xy)cd)
 1823:  1: ab(xy)cd
 1824:  2: cd
 1825: 
 1826: /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
 1827: Capturing subpattern count = 3
 1828: Options: extended
 1829: First char = '('
 1830: Need char = ')'
 1831:     (ab(xy)cd)
 1832:  0: (ab(xy)cd)
 1833:  1: <unset>
 1834:  2: ab(xy)cd
 1835:  3: cd
 1836:     (123ab(xy)cd)
 1837:  0: (123ab(xy)cd)
 1838:  1: 123
 1839:  2: ab(xy)cd
 1840:  3: cd
 1841: 
 1842: /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
 1843: Capturing subpattern count = 3
 1844: Options: extended
 1845: First char = '('
 1846: Need char = ')'
 1847:     (ab(xy)cd)
 1848:  0: (ab(xy)cd)
 1849:  1: ab(xy)cd
 1850:  2: <unset>
 1851:  3: cd
 1852:     (123ab(xy)cd)
 1853:  0: (123ab(xy)cd)
 1854:  1: 123ab(xy)cd
 1855:  2: 123
 1856:  3: cd
 1857: 
 1858: /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
 1859: Capturing subpattern count = 11
 1860: Options: extended
 1861: First char = '('
 1862: Need char = ')'
 1863:     (ab(xy)cd)
 1864:  0: (ab(xy)cd)
 1865:  1: ab(xy)cd
 1866:  2: ab(xy)cd
 1867:  3: ab(xy)cd
 1868:  4: ab(xy)cd
 1869:  5: ab(xy)cd
 1870:  6: ab(xy)cd
 1871:  7: ab(xy)cd
 1872:  8: ab(xy)cd
 1873:  9: ab(xy)cd
 1874: 10: ab(xy)cd
 1875: 11: cd
 1876: 
 1877: /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
 1878: Capturing subpattern count = 3
 1879: Options: extended
 1880: First char = '('
 1881: Need char = ')'
 1882:     (abcd(xyz<p>qrs)123)
 1883:  0: (abcd(xyz<p>qrs)123)
 1884:  1: abcd(xyz<p>qrs)123
 1885:  2: 123
 1886: 
 1887: /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
 1888: Capturing subpattern count = 3
 1889: Options: extended
 1890: First char = '('
 1891: Need char = ')'
 1892:     (ab(cd)ef)
 1893:  0: (ab(cd)ef)
 1894:  1: ab(cd)ef
 1895:  2: ef
 1896:  3: (cd)
 1897:     (ab(cd(ef)gh)ij)
 1898:  0: (ab(cd(ef)gh)ij)
 1899:  1: ab(cd(ef)gh)ij
 1900:  2: ij
 1901:  3: (cd(ef)gh)
 1902: 
 1903: /^[[:alnum:]]/DZ
 1904: ------------------------------------------------------------------
 1905:         Bra
 1906:         ^
 1907:         [0-9A-Za-z]
 1908:         Ket
 1909:         End
 1910: ------------------------------------------------------------------
 1911: Capturing subpattern count = 0
 1912: Options: anchored
 1913: No first char
 1914: No need char
 1915: 
 1916: /^[[:^alnum:]]/DZ
 1917: ------------------------------------------------------------------
 1918:         Bra
 1919:         ^
 1920:         [\x00-/:-@[-`{-\xff] (neg)
 1921:         Ket
 1922:         End
 1923: ------------------------------------------------------------------
 1924: Capturing subpattern count = 0
 1925: Options: anchored
 1926: No first char
 1927: No need char
 1928: 
 1929: /^[[:alpha:]]/DZ
 1930: ------------------------------------------------------------------
 1931:         Bra
 1932:         ^
 1933:         [A-Za-z]
 1934:         Ket
 1935:         End
 1936: ------------------------------------------------------------------
 1937: Capturing subpattern count = 0
 1938: Options: anchored
 1939: No first char
 1940: No need char
 1941: 
 1942: /^[[:^alpha:]]/DZ
 1943: ------------------------------------------------------------------
 1944:         Bra
 1945:         ^
 1946:         [\x00-@[-`{-\xff] (neg)
 1947:         Ket
 1948:         End
 1949: ------------------------------------------------------------------
 1950: Capturing subpattern count = 0
 1951: Options: anchored
 1952: No first char
 1953: No need char
 1954: 
 1955: /[_[:alpha:]]/IS
 1956: Capturing subpattern count = 0
 1957: No options
 1958: No first char
 1959: No need char
 1960: Subject length lower bound = 1
 1961: 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 
 1962:   _ 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 
 1963: 
 1964: /^[[:ascii:]]/DZ
 1965: ------------------------------------------------------------------
 1966:         Bra
 1967:         ^
 1968:         [\x00-\x7f]
 1969:         Ket
 1970:         End
 1971: ------------------------------------------------------------------
 1972: Capturing subpattern count = 0
 1973: Options: anchored
 1974: No first char
 1975: No need char
 1976: 
 1977: /^[[:^ascii:]]/DZ
 1978: ------------------------------------------------------------------
 1979:         Bra
 1980:         ^
 1981:         [\x80-\xff] (neg)
 1982:         Ket
 1983:         End
 1984: ------------------------------------------------------------------
 1985: Capturing subpattern count = 0
 1986: Options: anchored
 1987: No first char
 1988: No need char
 1989: 
 1990: /^[[:blank:]]/DZ
 1991: ------------------------------------------------------------------
 1992:         Bra
 1993:         ^
 1994:         [\x09 ]
 1995:         Ket
 1996:         End
 1997: ------------------------------------------------------------------
 1998: Capturing subpattern count = 0
 1999: Options: anchored
 2000: No first char
 2001: No need char
 2002: 
 2003: /^[[:^blank:]]/DZ
 2004: ------------------------------------------------------------------
 2005:         Bra
 2006:         ^
 2007:         [\x00-\x08\x0a-\x1f!-\xff] (neg)
 2008:         Ket
 2009:         End
 2010: ------------------------------------------------------------------
 2011: Capturing subpattern count = 0
 2012: Options: anchored
 2013: No first char
 2014: No need char
 2015: 
 2016: /[\n\x0b\x0c\x0d[:blank:]]/IS
 2017: Capturing subpattern count = 0
 2018: Contains explicit CR or LF match
 2019: No options
 2020: No first char
 2021: No need char
 2022: Subject length lower bound = 1
 2023: Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 
 2024: 
 2025: /^[[:cntrl:]]/DZ
 2026: ------------------------------------------------------------------
 2027:         Bra
 2028:         ^
 2029:         [\x00-\x1f\x7f]
 2030:         Ket
 2031:         End
 2032: ------------------------------------------------------------------
 2033: Capturing subpattern count = 0
 2034: Options: anchored
 2035: No first char
 2036: No need char
 2037: 
 2038: /^[[:digit:]]/DZ
 2039: ------------------------------------------------------------------
 2040:         Bra
 2041:         ^
 2042:         [0-9]
 2043:         Ket
 2044:         End
 2045: ------------------------------------------------------------------
 2046: Capturing subpattern count = 0
 2047: Options: anchored
 2048: No first char
 2049: No need char
 2050: 
 2051: /^[[:graph:]]/DZ
 2052: ------------------------------------------------------------------
 2053:         Bra
 2054:         ^
 2055:         [!-~]
 2056:         Ket
 2057:         End
 2058: ------------------------------------------------------------------
 2059: Capturing subpattern count = 0
 2060: Options: anchored
 2061: No first char
 2062: No need char
 2063: 
 2064: /^[[:lower:]]/DZ
 2065: ------------------------------------------------------------------
 2066:         Bra
 2067:         ^
 2068:         [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: /^[[:print:]]/DZ
 2078: ------------------------------------------------------------------
 2079:         Bra
 2080:         ^
 2081:         [ -~]
 2082:         Ket
 2083:         End
 2084: ------------------------------------------------------------------
 2085: Capturing subpattern count = 0
 2086: Options: anchored
 2087: No first char
 2088: No need char
 2089: 
 2090: /^[[:punct:]]/DZ
 2091: ------------------------------------------------------------------
 2092:         Bra
 2093:         ^
 2094:         [!-/:-@[-`{-~]
 2095:         Ket
 2096:         End
 2097: ------------------------------------------------------------------
 2098: Capturing subpattern count = 0
 2099: Options: anchored
 2100: No first char
 2101: No need char
 2102: 
 2103: /^[[:space:]]/DZ
 2104: ------------------------------------------------------------------
 2105:         Bra
 2106:         ^
 2107:         [\x09-\x0d ]
 2108:         Ket
 2109:         End
 2110: ------------------------------------------------------------------
 2111: Capturing subpattern count = 0
 2112: Options: anchored
 2113: No first char
 2114: No need char
 2115: 
 2116: /^[[:upper:]]/DZ
 2117: ------------------------------------------------------------------
 2118:         Bra
 2119:         ^
 2120:         [A-Z]
 2121:         Ket
 2122:         End
 2123: ------------------------------------------------------------------
 2124: Capturing subpattern count = 0
 2125: Options: anchored
 2126: No first char
 2127: No need char
 2128: 
 2129: /^[[:xdigit:]]/DZ
 2130: ------------------------------------------------------------------
 2131:         Bra
 2132:         ^
 2133:         [0-9A-Fa-f]
 2134:         Ket
 2135:         End
 2136: ------------------------------------------------------------------
 2137: Capturing subpattern count = 0
 2138: Options: anchored
 2139: No first char
 2140: No need char
 2141: 
 2142: /^[[:word:]]/DZ
 2143: ------------------------------------------------------------------
 2144:         Bra
 2145:         ^
 2146:         [0-9A-Z_a-z]
 2147:         Ket
 2148:         End
 2149: ------------------------------------------------------------------
 2150: Capturing subpattern count = 0
 2151: Options: anchored
 2152: No first char
 2153: No need char
 2154: 
 2155: /^[[:^cntrl:]]/DZ
 2156: ------------------------------------------------------------------
 2157:         Bra
 2158:         ^
 2159:         [ -~\x80-\xff] (neg)
 2160:         Ket
 2161:         End
 2162: ------------------------------------------------------------------
 2163: Capturing subpattern count = 0
 2164: Options: anchored
 2165: No first char
 2166: No need char
 2167: 
 2168: /^[12[:^digit:]]/DZ
 2169: ------------------------------------------------------------------
 2170:         Bra
 2171:         ^
 2172:         [\x00-/12:-\xff] (neg)
 2173:         Ket
 2174:         End
 2175: ------------------------------------------------------------------
 2176: Capturing subpattern count = 0
 2177: Options: anchored
 2178: No first char
 2179: No need char
 2180: 
 2181: /^[[:^blank:]]/DZ
 2182: ------------------------------------------------------------------
 2183:         Bra
 2184:         ^
 2185:         [\x00-\x08\x0a-\x1f!-\xff] (neg)
 2186:         Ket
 2187:         End
 2188: ------------------------------------------------------------------
 2189: Capturing subpattern count = 0
 2190: Options: anchored
 2191: No first char
 2192: No need char
 2193: 
 2194: /[01[:alpha:]%]/DZ
 2195: ------------------------------------------------------------------
 2196:         Bra
 2197:         [%01A-Za-z]
 2198:         Ket
 2199:         End
 2200: ------------------------------------------------------------------
 2201: Capturing subpattern count = 0
 2202: No options
 2203: No first char
 2204: No need char
 2205: 
 2206: /[[.ch.]]/I
 2207: Failed: POSIX collating elements are not supported at offset 1
 2208: 
 2209: /[[=ch=]]/I
 2210: Failed: POSIX collating elements are not supported at offset 1
 2211: 
 2212: /[[:rhubarb:]]/I
 2213: Failed: unknown POSIX class name at offset 3
 2214: 
 2215: /[[:upper:]]/Ii
 2216: Capturing subpattern count = 0
 2217: Options: caseless
 2218: No first char
 2219: No need char
 2220:     A
 2221:  0: A
 2222:     a
 2223:  0: a
 2224: 
 2225: /[[:lower:]]/Ii
 2226: Capturing subpattern count = 0
 2227: Options: caseless
 2228: No first char
 2229: No need char
 2230:     A
 2231:  0: A
 2232:     a
 2233:  0: a
 2234: 
 2235: /((?-i)[[:lower:]])[[:lower:]]/Ii
 2236: Capturing subpattern count = 1
 2237: Options: caseless
 2238: No first char
 2239: No need char
 2240:     ab
 2241:  0: ab
 2242:  1: a
 2243:     aB
 2244:  0: aB
 2245:  1: a
 2246:     *** Failers
 2247:  0: ai
 2248:  1: a
 2249:     Ab
 2250: No match
 2251:     AB
 2252: No match
 2253: 
 2254: /[\200-\110]/I
 2255: Failed: range out of order in character class at offset 9
 2256: 
 2257: /^(?(0)f|b)oo/I
 2258: Failed: invalid condition (?(0) at offset 6
 2259: 
 2260: /This one's here because of the large output vector needed/I
 2261: Capturing subpattern count = 0
 2262: No options
 2263: First char = 'T'
 2264: Need char = 'd'
 2265: 
 2266: /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
 2267: Capturing subpattern count = 271
 2268: Max back reference = 270
 2269: No options
 2270: No first char
 2271: No need char
 2272:     \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
 2273:  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
 2274:  1: 1 
 2275:  2: 2 
 2276:  3: 3 
 2277:  4: 4 
 2278:  5: 5 
 2279:  6: 6 
 2280:  7: 7 
 2281:  8: 8 
 2282:  9: 9 
 2283: 10: 10 
 2284: 11: 11 
 2285: 12: 12 
 2286: 13: 13 
 2287: 14: 14 
 2288: 15: 15 
 2289: 16: 16 
 2290: 17: 17 
 2291: 18: 18 
 2292: 19: 19 
 2293: 20: 20 
 2294: 21: 21 
 2295: 22: 22 
 2296: 23: 23 
 2297: 24: 24 
 2298: 25: 25 
 2299: 26: 26 
 2300: 27: 27 
 2301: 28: 28 
 2302: 29: 29 
 2303: 30: 30 
 2304: 31: 31 
 2305: 32: 32 
 2306: 33: 33 
 2307: 34: 34 
 2308: 35: 35 
 2309: 36: 36 
 2310: 37: 37 
 2311: 38: 38 
 2312: 39: 39 
 2313: 40: 40 
 2314: 41: 41 
 2315: 42: 42 
 2316: 43: 43 
 2317: 44: 44 
 2318: 45: 45 
 2319: 46: 46 
 2320: 47: 47 
 2321: 48: 48 
 2322: 49: 49 
 2323: 50: 50 
 2324: 51: 51 
 2325: 52: 52 
 2326: 53: 53 
 2327: 54: 54 
 2328: 55: 55 
 2329: 56: 56 
 2330: 57: 57 
 2331: 58: 58 
 2332: 59: 59 
 2333: 60: 60 
 2334: 61: 61 
 2335: 62: 62 
 2336: 63: 63 
 2337: 64: 64 
 2338: 65: 65 
 2339: 66: 66 
 2340: 67: 67 
 2341: 68: 68 
 2342: 69: 69 
 2343: 70: 70 
 2344: 71: 71 
 2345: 72: 72 
 2346: 73: 73 
 2347: 74: 74 
 2348: 75: 75 
 2349: 76: 76 
 2350: 77: 77 
 2351: 78: 78 
 2352: 79: 79 
 2353: 80: 80 
 2354: 81: 81 
 2355: 82: 82 
 2356: 83: 83 
 2357: 84: 84 
 2358: 85: 85 
 2359: 86: 86 
 2360: 87: 87 
 2361: 88: 88 
 2362: 89: 89 
 2363: 90: 90 
 2364: 91: 91 
 2365: 92: 92 
 2366: 93: 93 
 2367: 94: 94 
 2368: 95: 95 
 2369: 96: 96 
 2370: 97: 97 
 2371: 98: 98 
 2372: 99: 99 
 2373: 100: 100 
 2374: 101: 101 
 2375: 102: 102 
 2376: 103: 103 
 2377: 104: 104 
 2378: 105: 105 
 2379: 106: 106 
 2380: 107: 107 
 2381: 108: 108 
 2382: 109: 109 
 2383: 110: 110 
 2384: 111: 111 
 2385: 112: 112 
 2386: 113: 113 
 2387: 114: 114 
 2388: 115: 115 
 2389: 116: 116 
 2390: 117: 117 
 2391: 118: 118 
 2392: 119: 119 
 2393: 120: 120 
 2394: 121: 121 
 2395: 122: 122 
 2396: 123: 123 
 2397: 124: 124 
 2398: 125: 125 
 2399: 126: 126 
 2400: 127: 127 
 2401: 128: 128 
 2402: 129: 129 
 2403: 130: 130 
 2404: 131: 131 
 2405: 132: 132 
 2406: 133: 133 
 2407: 134: 134 
 2408: 135: 135 
 2409: 136: 136 
 2410: 137: 137 
 2411: 138: 138 
 2412: 139: 139 
 2413: 140: 140 
 2414: 141: 141 
 2415: 142: 142 
 2416: 143: 143 
 2417: 144: 144 
 2418: 145: 145 
 2419: 146: 146 
 2420: 147: 147 
 2421: 148: 148 
 2422: 149: 149 
 2423: 150: 150 
 2424: 151: 151 
 2425: 152: 152 
 2426: 153: 153 
 2427: 154: 154 
 2428: 155: 155 
 2429: 156: 156 
 2430: 157: 157 
 2431: 158: 158 
 2432: 159: 159 
 2433: 160: 160 
 2434: 161: 161 
 2435: 162: 162 
 2436: 163: 163 
 2437: 164: 164 
 2438: 165: 165 
 2439: 166: 166 
 2440: 167: 167 
 2441: 168: 168 
 2442: 169: 169 
 2443: 170: 170 
 2444: 171: 171 
 2445: 172: 172 
 2446: 173: 173 
 2447: 174: 174 
 2448: 175: 175 
 2449: 176: 176 
 2450: 177: 177 
 2451: 178: 178 
 2452: 179: 179 
 2453: 180: 180 
 2454: 181: 181 
 2455: 182: 182 
 2456: 183: 183 
 2457: 184: 184 
 2458: 185: 185 
 2459: 186: 186 
 2460: 187: 187 
 2461: 188: 188 
 2462: 189: 189 
 2463: 190: 190 
 2464: 191: 191 
 2465: 192: 192 
 2466: 193: 193 
 2467: 194: 194 
 2468: 195: 195 
 2469: 196: 196 
 2470: 197: 197 
 2471: 198: 198 
 2472: 199: 199 
 2473: 200: 200 
 2474: 201: 201 
 2475: 202: 202 
 2476: 203: 203 
 2477: 204: 204 
 2478: 205: 205 
 2479: 206: 206 
 2480: 207: 207 
 2481: 208: 208 
 2482: 209: 209 
 2483: 210: 210 
 2484: 211: 211 
 2485: 212: 212 
 2486: 213: 213 
 2487: 214: 214 
 2488: 215: 215 
 2489: 216: 216 
 2490: 217: 217 
 2491: 218: 218 
 2492: 219: 219 
 2493: 220: 220 
 2494: 221: 221 
 2495: 222: 222 
 2496: 223: 223 
 2497: 224: 224 
 2498: 225: 225 
 2499: 226: 226 
 2500: 227: 227 
 2501: 228: 228 
 2502: 229: 229 
 2503: 230: 230 
 2504: 231: 231 
 2505: 232: 232 
 2506: 233: 233 
 2507: 234: 234 
 2508: 235: 235 
 2509: 236: 236 
 2510: 237: 237 
 2511: 238: 238 
 2512: 239: 239 
 2513: 240: 240 
 2514: 241: 241 
 2515: 242: 242 
 2516: 243: 243 
 2517: 244: 244 
 2518: 245: 245 
 2519: 246: 246 
 2520: 247: 247 
 2521: 248: 248 
 2522: 249: 249 
 2523: 250: 250 
 2524: 251: 251 
 2525: 252: 252 
 2526: 253: 253 
 2527: 254: 254 
 2528: 255: 255 
 2529: 256: 256 
 2530: 257: 257 
 2531: 258: 258 
 2532: 259: 259 
 2533: 260: 260 
 2534: 261: 261 
 2535: 262: 262 
 2536: 263: 263 
 2537: 264: 264 
 2538: 265: 265 
 2539: 266: 266 
 2540: 267: 267 
 2541: 268: 268 
 2542: 269: 269 
 2543: 270: ABC
 2544: 271: ABC
 2545: 
 2546: /This one's here because Perl does this differently and PCRE can't at present/I
 2547: Capturing subpattern count = 0
 2548: No options
 2549: First char = 'T'
 2550: Need char = 't'
 2551: 
 2552: /(main(O)?)+/I
 2553: Capturing subpattern count = 2
 2554: No options
 2555: First char = 'm'
 2556: Need char = 'n'
 2557:     mainmain
 2558:  0: mainmain
 2559:  1: main
 2560:     mainOmain
 2561:  0: mainOmain
 2562:  1: main
 2563:  2: O
 2564: 
 2565: /These are all cases where Perl does it differently (nested captures)/I
 2566: Capturing subpattern count = 1
 2567: No options
 2568: First char = 'T'
 2569: Need char = 's'
 2570: 
 2571: /^(a(b)?)+$/I
 2572: Capturing subpattern count = 2
 2573: Options: anchored
 2574: No first char
 2575: No need char
 2576:     aba
 2577:  0: aba
 2578:  1: a
 2579:  2: b
 2580: 
 2581: /^(aa(bb)?)+$/I
 2582: Capturing subpattern count = 2
 2583: Options: anchored
 2584: No first char
 2585: No need char
 2586:     aabbaa
 2587:  0: aabbaa
 2588:  1: aa
 2589:  2: bb
 2590: 
 2591: /^(aa|aa(bb))+$/I
 2592: Capturing subpattern count = 2
 2593: Options: anchored
 2594: No first char
 2595: No need char
 2596:     aabbaa
 2597:  0: aabbaa
 2598:  1: aa
 2599:  2: bb
 2600: 
 2601: /^(aa(bb)??)+$/I
 2602: Capturing subpattern count = 2
 2603: Options: anchored
 2604: No first char
 2605: No need char
 2606:     aabbaa
 2607:  0: aabbaa
 2608:  1: aa
 2609:  2: bb
 2610: 
 2611: /^(?:aa(bb)?)+$/I
 2612: Capturing subpattern count = 1
 2613: Options: anchored
 2614: No first char
 2615: No need char
 2616:     aabbaa
 2617:  0: aabbaa
 2618:  1: bb
 2619: 
 2620: /^(aa(b(b))?)+$/I
 2621: Capturing subpattern count = 3
 2622: Options: anchored
 2623: No first char
 2624: No need char
 2625:     aabbaa
 2626:  0: aabbaa
 2627:  1: aa
 2628:  2: bb
 2629:  3: b
 2630: 
 2631: /^(?:aa(b(b))?)+$/I
 2632: Capturing subpattern count = 2
 2633: Options: anchored
 2634: No first char
 2635: No need char
 2636:     aabbaa
 2637:  0: aabbaa
 2638:  1: bb
 2639:  2: b
 2640: 
 2641: /^(?:aa(b(?:b))?)+$/I
 2642: Capturing subpattern count = 1
 2643: Options: anchored
 2644: No first char
 2645: No need char
 2646:     aabbaa
 2647:  0: aabbaa
 2648:  1: bb
 2649: 
 2650: /^(?:aa(bb(?:b))?)+$/I
 2651: Capturing subpattern count = 1
 2652: Options: anchored
 2653: No first char
 2654: No need char
 2655:     aabbbaa
 2656:  0: aabbbaa
 2657:  1: bbb
 2658: 
 2659: /^(?:aa(b(?:bb))?)+$/I
 2660: Capturing subpattern count = 1
 2661: Options: anchored
 2662: No first char
 2663: No need char
 2664:     aabbbaa
 2665:  0: aabbbaa
 2666:  1: bbb
 2667: 
 2668: /^(?:aa(?:b(b))?)+$/I
 2669: Capturing subpattern count = 1
 2670: Options: anchored
 2671: No first char
 2672: No need char
 2673:     aabbaa
 2674:  0: aabbaa
 2675:  1: b
 2676: 
 2677: /^(?:aa(?:b(bb))?)+$/I
 2678: Capturing subpattern count = 1
 2679: Options: anchored
 2680: No first char
 2681: No need char
 2682:     aabbbaa
 2683:  0: aabbbaa
 2684:  1: bb
 2685: 
 2686: /^(aa(b(bb))?)+$/I
 2687: Capturing subpattern count = 3
 2688: Options: anchored
 2689: No first char
 2690: No need char
 2691:     aabbbaa
 2692:  0: aabbbaa
 2693:  1: aa
 2694:  2: bbb
 2695:  3: bb
 2696: 
 2697: /^(aa(bb(bb))?)+$/I
 2698: Capturing subpattern count = 3
 2699: Options: anchored
 2700: No first char
 2701: No need char
 2702:     aabbbbaa
 2703:  0: aabbbbaa
 2704:  1: aa
 2705:  2: bbbb
 2706:  3: bb
 2707: 
 2708: /--------------------------------------------------------------------/I
 2709: Capturing subpattern count = 0
 2710: No options
 2711: First char = '-'
 2712: Need char = '-'
 2713: 
 2714: /#/IxDZ
 2715: ------------------------------------------------------------------
 2716:         Bra
 2717:         Ket
 2718:         End
 2719: ------------------------------------------------------------------
 2720: Capturing subpattern count = 0
 2721: Options: extended
 2722: No first char
 2723: No need char
 2724: 
 2725: /a#/IxDZ
 2726: ------------------------------------------------------------------
 2727:         Bra
 2728:         a
 2729:         Ket
 2730:         End
 2731: ------------------------------------------------------------------
 2732: Capturing subpattern count = 0
 2733: Options: extended
 2734: First char = 'a'
 2735: No need char
 2736: 
 2737: /[\s]/DZ
 2738: ------------------------------------------------------------------
 2739:         Bra
 2740:         [\x09\x0a\x0c\x0d ]
 2741:         Ket
 2742:         End
 2743: ------------------------------------------------------------------
 2744: Capturing subpattern count = 0
 2745: No options
 2746: No first char
 2747: No need char
 2748: 
 2749: /[\S]/DZ
 2750: ------------------------------------------------------------------
 2751:         Bra
 2752:         [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
 2753:         Ket
 2754:         End
 2755: ------------------------------------------------------------------
 2756: Capturing subpattern count = 0
 2757: No options
 2758: No first char
 2759: No need char
 2760: 
 2761: /a(?i)b/DZ
 2762: ------------------------------------------------------------------
 2763:         Bra
 2764:         a
 2765:      /i b
 2766:         Ket
 2767:         End
 2768: ------------------------------------------------------------------
 2769: Capturing subpattern count = 0
 2770: No options
 2771: First char = 'a'
 2772: Need char = 'b' (caseless)
 2773:     ab
 2774:  0: ab
 2775:     aB
 2776:  0: aB
 2777:     *** Failers
 2778: No match
 2779:     AB
 2780: No match
 2781: 
 2782: /(a(?i)b)/DZ
 2783: ------------------------------------------------------------------
 2784:         Bra
 2785:         CBra 1
 2786:         a
 2787:      /i b
 2788:         Ket
 2789:         Ket
 2790:         End
 2791: ------------------------------------------------------------------
 2792: Capturing subpattern count = 1
 2793: No options
 2794: First char = 'a'
 2795: Need char = 'b' (caseless)
 2796:     ab
 2797:  0: ab
 2798:  1: ab
 2799:     aB
 2800:  0: aB
 2801:  1: aB
 2802:     *** Failers
 2803: No match
 2804:     AB
 2805: No match
 2806: 
 2807: /   (?i)abc/IxDZ
 2808: ------------------------------------------------------------------
 2809:         Bra
 2810:      /i abc
 2811:         Ket
 2812:         End
 2813: ------------------------------------------------------------------
 2814: Capturing subpattern count = 0
 2815: Options: caseless extended
 2816: First char = 'a' (caseless)
 2817: Need char = 'c' (caseless)
 2818: 
 2819: /#this is a comment
 2820:   (?i)abc/IxDZ
 2821: ------------------------------------------------------------------
 2822:         Bra
 2823:      /i abc
 2824:         Ket
 2825:         End
 2826: ------------------------------------------------------------------
 2827: Capturing subpattern count = 0
 2828: Options: caseless extended
 2829: First char = 'a' (caseless)
 2830: Need char = 'c' (caseless)
 2831: 
 2832: /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
 2833: ------------------------------------------------------------------
 2834:         Bra
 2835:         123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
 2836:         Ket
 2837:         End
 2838: ------------------------------------------------------------------
 2839: Capturing subpattern count = 0
 2840: No options
 2841: First char = '1'
 2842: Need char = '0'
 2843: 
 2844: /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
 2845: ------------------------------------------------------------------
 2846:         Bra
 2847:         123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
 2848:         Ket
 2849:         End
 2850: ------------------------------------------------------------------
 2851: Capturing subpattern count = 0
 2852: No options
 2853: First char = '1'
 2854: Need char = '0'
 2855: 
 2856: /\Q\E/DZ
 2857: ------------------------------------------------------------------
 2858:         Bra
 2859:         Ket
 2860:         End
 2861: ------------------------------------------------------------------
 2862: Capturing subpattern count = 0
 2863: No options
 2864: No first char
 2865: No need char
 2866:     \
 2867:  0: 
 2868: 
 2869: /\Q\Ex/DZ
 2870: ------------------------------------------------------------------
 2871:         Bra
 2872:         x
 2873:         Ket
 2874:         End
 2875: ------------------------------------------------------------------
 2876: Capturing subpattern count = 0
 2877: No options
 2878: First char = 'x'
 2879: No need char
 2880: 
 2881: / \Q\E/DZ
 2882: ------------------------------------------------------------------
 2883:         Bra
 2884:          
 2885:         Ket
 2886:         End
 2887: ------------------------------------------------------------------
 2888: Capturing subpattern count = 0
 2889: No options
 2890: First char = ' '
 2891: No need char
 2892: 
 2893: /a\Q\E/DZ
 2894: ------------------------------------------------------------------
 2895:         Bra
 2896:         a
 2897:         Ket
 2898:         End
 2899: ------------------------------------------------------------------
 2900: Capturing subpattern count = 0
 2901: No options
 2902: First char = 'a'
 2903: No need char
 2904:   abc
 2905:  0: a
 2906:   bca
 2907:  0: a
 2908:   bac
 2909:  0: a
 2910: 
 2911: /a\Q\Eb/DZ
 2912: ------------------------------------------------------------------
 2913:         Bra
 2914:         ab
 2915:         Ket
 2916:         End
 2917: ------------------------------------------------------------------
 2918: Capturing subpattern count = 0
 2919: No options
 2920: First char = 'a'
 2921: Need char = 'b'
 2922:   abc
 2923:  0: ab
 2924: 
 2925: /\Q\Eabc/DZ
 2926: ------------------------------------------------------------------
 2927:         Bra
 2928:         abc
 2929:         Ket
 2930:         End
 2931: ------------------------------------------------------------------
 2932: Capturing subpattern count = 0
 2933: No options
 2934: First char = 'a'
 2935: Need char = 'c'
 2936: 
 2937: /x*+\w/DZ
 2938: ------------------------------------------------------------------
 2939:         Bra
 2940:         x*+
 2941:         \w
 2942:         Ket
 2943:         End
 2944: ------------------------------------------------------------------
 2945: Capturing subpattern count = 0
 2946: No options
 2947: No first char
 2948: No need char
 2949:     *** Failers
 2950:  0: F
 2951:     xxxxx
 2952: No match
 2953: 
 2954: /x?+/DZ
 2955: ------------------------------------------------------------------
 2956:         Bra
 2957:         x?+
 2958:         Ket
 2959:         End
 2960: ------------------------------------------------------------------
 2961: Capturing subpattern count = 0
 2962: No options
 2963: No first char
 2964: No need char
 2965: 
 2966: /x++/DZ
 2967: ------------------------------------------------------------------
 2968:         Bra
 2969:         x++
 2970:         Ket
 2971:         End
 2972: ------------------------------------------------------------------
 2973: Capturing subpattern count = 0
 2974: No options
 2975: First char = 'x'
 2976: No need char
 2977: 
 2978: /x{1,3}+/DZ
 2979: ------------------------------------------------------------------
 2980:         Bra
 2981:         Once
 2982:         x
 2983:         x{0,2}
 2984:         Ket
 2985:         Ket
 2986:         End
 2987: ------------------------------------------------------------------
 2988: Capturing subpattern count = 0
 2989: No options
 2990: First char = 'x'
 2991: No need char
 2992: 
 2993: /(x)*+/DZ
 2994: ------------------------------------------------------------------
 2995:         Bra
 2996:         Braposzero
 2997:         CBraPos 1
 2998:         x
 2999:         KetRpos
 3000:         Ket
 3001:         End
 3002: ------------------------------------------------------------------
 3003: Capturing subpattern count = 1
 3004: No options
 3005: No first char
 3006: No need char
 3007: 
 3008: /^(\w++|\s++)*$/I
 3009: Capturing subpattern count = 1
 3010: Options: anchored
 3011: No first char
 3012: No need char
 3013:     now is the time for all good men to come to the aid of the party
 3014:  0: now is the time for all good men to come to the aid of the party
 3015:  1: party
 3016:     *** Failers
 3017: No match
 3018:     this is not a line with only words and spaces!
 3019: No match
 3020: 
 3021: /(\d++)(\w)/I
 3022: Capturing subpattern count = 2
 3023: No options
 3024: No first char
 3025: No need char
 3026:     12345a
 3027:  0: 12345a
 3028:  1: 12345
 3029:  2: a
 3030:     *** Failers
 3031: No match
 3032:     12345+
 3033: No match
 3034: 
 3035: /a++b/I
 3036: Capturing subpattern count = 0
 3037: No options
 3038: First char = 'a'
 3039: Need char = 'b'
 3040:     aaab
 3041:  0: aaab
 3042: 
 3043: /(a++b)/I
 3044: Capturing subpattern count = 1
 3045: No options
 3046: First char = 'a'
 3047: Need char = 'b'
 3048:     aaab
 3049:  0: aaab
 3050:  1: aaab
 3051: 
 3052: /(a++)b/I
 3053: Capturing subpattern count = 1
 3054: No options
 3055: First char = 'a'
 3056: Need char = 'b'
 3057:     aaab
 3058:  0: aaab
 3059:  1: aaa
 3060: 
 3061: /([^()]++|\([^()]*\))+/I
 3062: Capturing subpattern count = 1
 3063: No options
 3064: No first char
 3065: No need char
 3066:     ((abc(ade)ufh()()x
 3067:  0: abc(ade)ufh()()x
 3068:  1: x
 3069: 
 3070: /\(([^()]++|\([^()]+\))+\)/I
 3071: Capturing subpattern count = 1
 3072: No options
 3073: First char = '('
 3074: Need char = ')'
 3075:     (abc)
 3076:  0: (abc)
 3077:  1: abc
 3078:     (abc(def)xyz)
 3079:  0: (abc(def)xyz)
 3080:  1: xyz
 3081:     *** Failers
 3082: No match
 3083:     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 3084: No match
 3085: 
 3086: /(abc){1,3}+/DZ
 3087: ------------------------------------------------------------------
 3088:         Bra
 3089:         Once
 3090:         CBra 1
 3091:         abc
 3092:         Ket
 3093:         Brazero
 3094:         Bra
 3095:         CBra 1
 3096:         abc
 3097:         Ket
 3098:         Brazero
 3099:         CBra 1
 3100:         abc
 3101:         Ket
 3102:         Ket
 3103:         Ket
 3104:         Ket
 3105:         End
 3106: ------------------------------------------------------------------
 3107: Capturing subpattern count = 1
 3108: No options
 3109: First char = 'a'
 3110: Need char = 'c'
 3111: 
 3112: /a+?+/I
 3113: Failed: nothing to repeat at offset 3
 3114: 
 3115: /a{2,3}?+b/I
 3116: Failed: nothing to repeat at offset 7
 3117: 
 3118: /(?U)a+?+/I
 3119: Failed: nothing to repeat at offset 7
 3120: 
 3121: /a{2,3}?+b/IU
 3122: Failed: nothing to repeat at offset 7
 3123: 
 3124: /x(?U)a++b/DZ
 3125: ------------------------------------------------------------------
 3126:         Bra
 3127:         x
 3128:         a++
 3129:         b
 3130:         Ket
 3131:         End
 3132: ------------------------------------------------------------------
 3133: Capturing subpattern count = 0
 3134: No options
 3135: First char = 'x'
 3136: Need char = 'b'
 3137:     xaaaab
 3138:  0: xaaaab
 3139: 
 3140: /(?U)xa++b/DZ
 3141: ------------------------------------------------------------------
 3142:         Bra
 3143:         x
 3144:         a++
 3145:         b
 3146:         Ket
 3147:         End
 3148: ------------------------------------------------------------------
 3149: Capturing subpattern count = 0
 3150: Options: ungreedy
 3151: First char = 'x'
 3152: Need char = 'b'
 3153:     xaaaab
 3154:  0: xaaaab
 3155: 
 3156: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
 3157: ------------------------------------------------------------------
 3158:         Bra
 3159:         ^
 3160:         CBra 1
 3161:         CBra 2
 3162:         a+
 3163:         Ket
 3164:         CBra 3
 3165:         [ab]+?
 3166:         Ket
 3167:         CBra 4
 3168:         [bc]+
 3169:         Ket
 3170:         CBra 5
 3171:         \w*
 3172:         Ket
 3173:         Ket
 3174:         Ket
 3175:         End
 3176: ------------------------------------------------------------------
 3177: Capturing subpattern count = 5
 3178: Options: anchored
 3179: No first char
 3180: No need char
 3181: 
 3182: /^x(?U)a+b/DZ
 3183: ------------------------------------------------------------------
 3184:         Bra
 3185:         ^
 3186:         x
 3187:         a++
 3188:         b
 3189:         Ket
 3190:         End
 3191: ------------------------------------------------------------------
 3192: Capturing subpattern count = 0
 3193: Options: anchored
 3194: No first char
 3195: Need char = 'b'
 3196: 
 3197: /^x(?U)(a+)b/DZ
 3198: ------------------------------------------------------------------
 3199:         Bra
 3200:         ^
 3201:         x
 3202:         CBra 1
 3203:         a+?
 3204:         Ket
 3205:         b
 3206:         Ket
 3207:         End
 3208: ------------------------------------------------------------------
 3209: Capturing subpattern count = 1
 3210: Options: anchored
 3211: No first char
 3212: Need char = 'b'
 3213: 
 3214: /[.x.]/I
 3215: Failed: POSIX collating elements are not supported at offset 0
 3216: 
 3217: /[=x=]/I
 3218: Failed: POSIX collating elements are not supported at offset 0
 3219: 
 3220: /[:x:]/I
 3221: Failed: POSIX named classes are supported only within a class at offset 0
 3222: 
 3223: /\l/I
 3224: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3225: 
 3226: /\L/I
 3227: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3228: 
 3229: /\N{name}/I
 3230: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3231: 
 3232: /\u/I
 3233: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3234: 
 3235: /\U/I
 3236: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
 3237: 
 3238: /[/I
 3239: Failed: missing terminating ] for character class at offset 1
 3240: 
 3241: /[a-/I
 3242: Failed: missing terminating ] for character class at offset 3
 3243: 
 3244: /[[:space:]/I
 3245: Failed: missing terminating ] for character class at offset 10
 3246: 
 3247: /[\s]/IDZ
 3248: ------------------------------------------------------------------
 3249:         Bra
 3250:         [\x09\x0a\x0c\x0d ]
 3251:         Ket
 3252:         End
 3253: ------------------------------------------------------------------
 3254: Capturing subpattern count = 0
 3255: No options
 3256: No first char
 3257: No need char
 3258: 
 3259: /[[:space:]]/IDZ
 3260: ------------------------------------------------------------------
 3261:         Bra
 3262:         [\x09-\x0d ]
 3263:         Ket
 3264:         End
 3265: ------------------------------------------------------------------
 3266: Capturing subpattern count = 0
 3267: No options
 3268: No first char
 3269: No need char
 3270: 
 3271: /[[:space:]abcde]/IDZ
 3272: ------------------------------------------------------------------
 3273:         Bra
 3274:         [\x09-\x0d a-e]
 3275:         Ket
 3276:         End
 3277: ------------------------------------------------------------------
 3278: Capturing subpattern count = 0
 3279: No options
 3280: No first char
 3281: No need char
 3282: 
 3283: /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
 3284: Capturing subpattern count = 0
 3285: Options: extended
 3286: First char = '<'
 3287: Need char = '>'
 3288:     <>
 3289:  0: <>
 3290:     <abcd>
 3291:  0: <abcd>
 3292:     <abc <123> hij>
 3293:  0: <abc <123> hij>
 3294:     <abc <def> hij>
 3295:  0: <def>
 3296:     <abc<>def>
 3297:  0: <abc<>def>
 3298:     <abc<>
 3299:  0: <>
 3300:     *** Failers
 3301: No match
 3302:     <abc
 3303: No match
 3304: 
 3305: |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
 3306: ------------------------------------------------------------------
 3307:         Bra
 3308:         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
 3309:         \b
 3310:         Ket
 3311:         End
 3312: ------------------------------------------------------------------
 3313: Capturing subpattern count = 0
 3314: No options
 3315: First char = '8'
 3316: Need char = 'X'
 3317: 
 3318: |\$\<\.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
 3319: ------------------------------------------------------------------
 3320:         Bra
 3321:         $<.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
 3322:         \b
 3323:         Ket
 3324:         End
 3325: ------------------------------------------------------------------
 3326: Capturing subpattern count = 0
 3327: No options
 3328: First char = '$'
 3329: Need char = 'X'
 3330: 
 3331: /(.*)\d+\1/I
 3332: Capturing subpattern count = 1
 3333: Max back reference = 1
 3334: No options
 3335: No first char
 3336: No need char
 3337: 
 3338: /(.*)\d+/I
 3339: Capturing subpattern count = 1
 3340: No options
 3341: First char at start or follows newline
 3342: No need char
 3343: 
 3344: /(.*)\d+\1/Is
 3345: Capturing subpattern count = 1
 3346: Max back reference = 1
 3347: Options: dotall
 3348: No first char
 3349: No need char
 3350: 
 3351: /(.*)\d+/Is
 3352: Capturing subpattern count = 1
 3353: Options: anchored dotall
 3354: No first char
 3355: No need char
 3356: 
 3357: /(.*(xyz))\d+\2/I
 3358: Capturing subpattern count = 2
 3359: Max back reference = 2
 3360: No options
 3361: First char at start or follows newline
 3362: Need char = 'z'
 3363: 
 3364: /((.*))\d+\1/I
 3365: Capturing subpattern count = 2
 3366: Max back reference = 1
 3367: No options
 3368: No first char
 3369: No need char
 3370:     abc123bc
 3371:  0: bc123bc
 3372:  1: bc
 3373:  2: bc
 3374: 
 3375: /a[b]/I
 3376: Capturing subpattern count = 0
 3377: No options
 3378: First char = 'a'
 3379: Need char = 'b'
 3380: 
 3381: /(?=a).*/I
 3382: Capturing subpattern count = 0
 3383: No options
 3384: First char = 'a'
 3385: No need char
 3386: 
 3387: /(?=abc).xyz/IiI
 3388: Capturing subpattern count = 0
 3389: Options: caseless
 3390: First char = 'a' (caseless)
 3391: Need char = 'z' (caseless)
 3392: 
 3393: /(?=abc)(?i).xyz/I
 3394: Capturing subpattern count = 0
 3395: No options
 3396: First char = 'a'
 3397: Need char = 'z' (caseless)
 3398: 
 3399: /(?=a)(?=b)/I
 3400: Capturing subpattern count = 0
 3401: No options
 3402: First char = 'a'
 3403: No need char
 3404: 
 3405: /(?=.)a/I
 3406: Capturing subpattern count = 0
 3407: No options
 3408: First char = 'a'
 3409: No need char
 3410: 
 3411: /((?=abcda)a)/I
 3412: Capturing subpattern count = 1
 3413: No options
 3414: First char = 'a'
 3415: Need char = 'a'
 3416: 
 3417: /((?=abcda)ab)/I
 3418: Capturing subpattern count = 1
 3419: No options
 3420: First char = 'a'
 3421: Need char = 'b'
 3422: 
 3423: /()a/I
 3424: Capturing subpattern count = 1
 3425: No options
 3426: No first char
 3427: Need char = 'a'
 3428: 
 3429: /(?(1)ab|ac)(.)/I
 3430: Capturing subpattern count = 1
 3431: No options
 3432: First char = 'a'
 3433: No need char
 3434: 
 3435: /(?(1)abz|acz)(.)/I
 3436: Capturing subpattern count = 1
 3437: No options
 3438: First char = 'a'
 3439: Need char = 'z'
 3440: 
 3441: /(?(1)abz)(.)/I
 3442: Capturing subpattern count = 1
 3443: No options
 3444: No first char
 3445: No need char
 3446: 
 3447: /(?(1)abz)(1)23/I
 3448: Capturing subpattern count = 1
 3449: No options
 3450: No first char
 3451: Need char = '3'
 3452: 
 3453: /(a)+/I
 3454: Capturing subpattern count = 1
 3455: No options
 3456: First char = 'a'
 3457: No need char
 3458: 
 3459: /(a){2,3}/I
 3460: Capturing subpattern count = 1
 3461: No options
 3462: First char = 'a'
 3463: Need char = 'a'
 3464: 
 3465: /(a)*/I
 3466: Capturing subpattern count = 1
 3467: No options
 3468: No first char
 3469: No need char
 3470: 
 3471: /[a]/I
 3472: Capturing subpattern count = 0
 3473: No options
 3474: First char = 'a'
 3475: No need char
 3476: 
 3477: /[ab]/I
 3478: Capturing subpattern count = 0
 3479: No options
 3480: No first char
 3481: No need char
 3482: 
 3483: /[ab]/IS
 3484: Capturing subpattern count = 0
 3485: No options
 3486: No first char
 3487: No need char
 3488: Subject length lower bound = 1
 3489: Starting byte set: a b 
 3490: 
 3491: /[^a]/I
 3492: Capturing subpattern count = 0
 3493: No options
 3494: No first char
 3495: No need char
 3496: 
 3497: /\d456/I
 3498: Capturing subpattern count = 0
 3499: No options
 3500: No first char
 3501: Need char = '6'
 3502: 
 3503: /\d456/IS
 3504: Capturing subpattern count = 0
 3505: No options
 3506: No first char
 3507: Need char = '6'
 3508: Subject length lower bound = 4
 3509: Starting byte set: 0 1 2 3 4 5 6 7 8 9 
 3510: 
 3511: /a^b/I
 3512: Capturing subpattern count = 0
 3513: No options
 3514: First char = 'a'
 3515: Need char = 'b'
 3516: 
 3517: /^a/Im
 3518: Capturing subpattern count = 0
 3519: Options: multiline
 3520: First char at start or follows newline
 3521: Need char = 'a'
 3522:   abcde
 3523:  0: a
 3524:   xy\nabc
 3525:  0: a
 3526:   *** Failers
 3527: No match
 3528:   xyabc
 3529: No match
 3530: 
 3531: /c|abc/I
 3532: Capturing subpattern count = 0
 3533: No options
 3534: No first char
 3535: Need char = 'c'
 3536: 
 3537: /(?i)[ab]/IS
 3538: Capturing subpattern count = 0
 3539: Options: caseless
 3540: No first char
 3541: No need char
 3542: Subject length lower bound = 1
 3543: Starting byte set: A B a b 
 3544: 
 3545: /[ab](?i)cd/IS
 3546: Capturing subpattern count = 0
 3547: No options
 3548: No first char
 3549: Need char = 'd' (caseless)
 3550: Subject length lower bound = 3
 3551: Starting byte set: a b 
 3552: 
 3553: /abc(?C)def/I
 3554: Capturing subpattern count = 0
 3555: No options
 3556: First char = 'a'
 3557: Need char = 'f'
 3558:     abcdef
 3559: --->abcdef
 3560:   0 ^  ^       d
 3561:  0: abcdef
 3562:     1234abcdef
 3563: --->1234abcdef
 3564:   0     ^  ^       d
 3565:  0: abcdef
 3566:     *** Failers
 3567: No match
 3568:     abcxyz
 3569: No match
 3570:     abcxyzf
 3571: --->abcxyzf
 3572:   0 ^  ^        d
 3573: No match
 3574: 
 3575: /abc(?C)de(?C1)f/I
 3576: Capturing subpattern count = 0
 3577: No options
 3578: First char = 'a'
 3579: Need char = 'f'
 3580:     123abcdef
 3581: --->123abcdef
 3582:   0    ^  ^       d
 3583:   1    ^    ^     f
 3584:  0: abcdef
 3585: 
 3586: /(?C1)\dabc(?C2)def/IS
 3587: Capturing subpattern count = 0
 3588: No options
 3589: No first char
 3590: Need char = 'f'
 3591: Subject length lower bound = 7
 3592: Starting byte set: 0 1 2 3 4 5 6 7 8 9 
 3593:     1234abcdef
 3594: --->1234abcdef
 3595:   1 ^              \d
 3596:   1  ^             \d
 3597:   1   ^            \d
 3598:   1    ^           \d
 3599:   2    ^   ^       d
 3600:  0: 4abcdef
 3601:     *** Failers
 3602: No match
 3603:     abcdef
 3604: No match
 3605: 
 3606: /(?C1)\dabc(?C2)def/ISS
 3607: Capturing subpattern count = 0
 3608: No options
 3609: No first char
 3610: Need char = 'f'
 3611:     1234abcdef
 3612: --->1234abcdef
 3613:   1 ^              \d
 3614:   1  ^             \d
 3615:   1   ^            \d
 3616:   1    ^           \d
 3617:   2    ^   ^       d
 3618:  0: 4abcdef
 3619:     *** Failers
 3620: No match
 3621:     abcdef
 3622: --->abcdef
 3623:   1 ^          \d
 3624:   1  ^         \d
 3625:   1   ^        \d
 3626:   1    ^       \d
 3627:   1     ^      \d
 3628:   1      ^     \d
 3629: No match
 3630: 
 3631: /(?C255)ab/I
 3632: Capturing subpattern count = 0
 3633: No options
 3634: First char = 'a'
 3635: Need char = 'b'
 3636: 
 3637: /(?C256)ab/I
 3638: Failed: number after (?C is > 255 at offset 6
 3639: 
 3640: /(?Cab)xx/I
 3641: Failed: closing ) for (?C expected at offset 3
 3642: 
 3643: /(?C12vr)x/I
 3644: Failed: closing ) for (?C expected at offset 5
 3645: 
 3646: /abc(?C)def/I
 3647: Capturing subpattern count = 0
 3648: No options
 3649: First char = 'a'
 3650: Need char = 'f'
 3651:     *** Failers
 3652: No match
 3653:     \x83\x0\x61bcdef
 3654: --->\x83\x00abcdef
 3655:   0         ^  ^       d
 3656:  0: abcdef
 3657: 
 3658: /(abc)(?C)de(?C1)f/I
 3659: Capturing subpattern count = 1
 3660: No options
 3661: First char = 'a'
 3662: Need char = 'f'
 3663:     123abcdef
 3664: --->123abcdef
 3665:   0    ^  ^       d
 3666:   1    ^    ^     f
 3667:  0: abcdef
 3668:  1: abc
 3669:     123abcdef\C+
 3670: Callout 0: last capture = 1
 3671:  0: <unset>
 3672:  1: abc
 3673: --->123abcdef
 3674:        ^  ^       d
 3675: Callout 1: last capture = 1
 3676:  0: <unset>
 3677:  1: abc
 3678: --->123abcdef
 3679:        ^    ^     f
 3680:  0: abcdef
 3681:  1: abc
 3682:     123abcdef\C-
 3683:  0: abcdef
 3684:  1: abc
 3685:     *** Failers
 3686: No match
 3687:     123abcdef\C!1
 3688: --->123abcdef
 3689:   0    ^  ^       d
 3690:   1    ^    ^     f
 3691: No match
 3692: 
 3693: /(?C0)(abc(?C1))*/I
 3694: Capturing subpattern count = 1
 3695: No options
 3696: No first char
 3697: No need char
 3698:     abcabcabc
 3699: --->abcabcabc
 3700:   0 ^             (abc(?C1))*
 3701:   1 ^  ^          )
 3702:   1 ^     ^       )
 3703:   1 ^        ^    )
 3704:  0: abcabcabc
 3705:  1: abc
 3706:     abcabc\C!1!3
 3707: --->abcabc
 3708:   0 ^          (abc(?C1))*
 3709:   1 ^  ^       )
 3710:   1 ^     ^    )
 3711:  0: abcabc
 3712:  1: abc
 3713:     *** Failers
 3714: --->*** Failers
 3715:   0 ^               (abc(?C1))*
 3716:  0: 
 3717:     abcabcabc\C!1!3
 3718: --->abcabcabc
 3719:   0 ^             (abc(?C1))*
 3720:   1 ^  ^          )
 3721:   1 ^     ^       )
 3722:   1 ^        ^    )
 3723:  0: abcabc
 3724:  1: abc
 3725: 
 3726: /(\d{3}(?C))*/I
 3727: Capturing subpattern count = 1
 3728: No options
 3729: No first char
 3730: No need char
 3731:     123\C+
 3732: Callout 0: last capture = -1
 3733:  0: <unset>
 3734: --->123
 3735:     ^  ^    )
 3736:  0: 123
 3737:  1: 123
 3738:     123456\C+
 3739: Callout 0: last capture = -1
 3740:  0: <unset>
 3741: --->123456
 3742:     ^  ^       )
 3743: Callout 0: last capture = 1
 3744:  0: <unset>
 3745:  1: 123
 3746: --->123456
 3747:     ^     ^    )
 3748:  0: 123456
 3749:  1: 456
 3750:     123456789\C+
 3751: Callout 0: last capture = -1
 3752:  0: <unset>
 3753: --->123456789
 3754:     ^  ^          )
 3755: Callout 0: last capture = 1
 3756:  0: <unset>
 3757:  1: 123
 3758: --->123456789
 3759:     ^     ^       )
 3760: Callout 0: last capture = 1
 3761:  0: <unset>
 3762:  1: 456
 3763: --->123456789
 3764:     ^        ^    )
 3765:  0: 123456789
 3766:  1: 789
 3767: 
 3768: /((xyz)(?C)p|(?C1)xyzabc)/I
 3769: Capturing subpattern count = 2
 3770: No options
 3771: First char = 'x'
 3772: No need char
 3773:     xyzabc\C+
 3774: Callout 0: last capture = 2
 3775:  0: <unset>
 3776:  1: <unset>
 3777:  2: xyz
 3778: --->xyzabc
 3779:     ^  ^       p
 3780: Callout 1: last capture = -1
 3781:  0: <unset>
 3782: --->xyzabc
 3783:     ^          x
 3784:  0: xyzabc
 3785:  1: xyzabc
 3786: 
 3787: /(X)((xyz)(?C)p|(?C1)xyzabc)/I
 3788: Capturing subpattern count = 3
 3789: No options
 3790: First char = 'X'
 3791: Need char = 'x'
 3792:     Xxyzabc\C+
 3793: Callout 0: last capture = 3
 3794:  0: <unset>
 3795:  1: X
 3796:  2: <unset>
 3797:  3: xyz
 3798: --->Xxyzabc
 3799:     ^   ^       p
 3800: Callout 1: last capture = 1
 3801:  0: <unset>
 3802:  1: X
 3803: --->Xxyzabc
 3804:     ^^          x
 3805:  0: Xxyzabc
 3806:  1: X
 3807:  2: xyzabc
 3808: 
 3809: /(?=(abc))(?C)abcdef/I
 3810: Capturing subpattern count = 1
 3811: No options
 3812: First char = 'a'
 3813: Need char = 'f'
 3814:     abcdef\C+
 3815: Callout 0: last capture = 1
 3816:  0: <unset>
 3817:  1: abc
 3818: --->abcdef
 3819:     ^          a
 3820:  0: abcdef
 3821:  1: abc
 3822: 
 3823: /(?!(abc)(?C1)d)(?C2)abcxyz/I
 3824: Capturing subpattern count = 1
 3825: No options
 3826: First char = 'a'
 3827: Need char = 'z'
 3828:     abcxyz\C+
 3829: Callout 1: last capture = 1
 3830:  0: <unset>
 3831:  1: abc
 3832: --->abcxyz
 3833:     ^  ^       d
 3834: Callout 2: last capture = -1
 3835:  0: <unset>
 3836: --->abcxyz
 3837:     ^          a
 3838:  0: abcxyz
 3839: 
 3840: /(?<=(abc)(?C))xyz/I
 3841: Capturing subpattern count = 1
 3842: No options
 3843: First char = 'x'
 3844: Need char = 'z'
 3845:    abcxyz\C+
 3846: Callout 0: last capture = 1
 3847:  0: <unset>
 3848:  1: abc
 3849: --->abcxyz
 3850:        ^       )
 3851:  0: xyz
 3852:  1: abc
 3853: 
 3854: /a(b+)(c*)(?C1)/I
 3855: Capturing subpattern count = 2
 3856: No options
 3857: First char = 'a'
 3858: Need char = 'b'
 3859:     abbbbbccc\C*1
 3860: --->abbbbbccc
 3861:   1 ^        ^    
 3862: Callout data = 1
 3863:   1 ^       ^     
 3864: Callout data = 1
 3865:   1 ^      ^      
 3866: Callout data = 1
 3867:   1 ^     ^       
 3868: Callout data = 1
 3869:   1 ^    ^        
 3870: Callout data = 1
 3871:   1 ^   ^         
 3872: Callout data = 1
 3873:   1 ^  ^          
 3874: Callout data = 1
 3875:   1 ^ ^           
 3876: Callout data = 1
 3877: No match
 3878: 
 3879: /a(b+?)(c*?)(?C1)/I
 3880: Capturing subpattern count = 2
 3881: No options
 3882: First char = 'a'
 3883: Need char = 'b'
 3884:     abbbbbccc\C*1
 3885: --->abbbbbccc
 3886:   1 ^ ^           
 3887: Callout data = 1
 3888:   1 ^  ^          
 3889: Callout data = 1
 3890:   1 ^   ^         
 3891: Callout data = 1
 3892:   1 ^    ^        
 3893: Callout data = 1
 3894:   1 ^     ^       
 3895: Callout data = 1
 3896:   1 ^      ^      
 3897: Callout data = 1
 3898:   1 ^       ^     
 3899: Callout data = 1
 3900:   1 ^        ^    
 3901: Callout data = 1
 3902: No match
 3903: 
 3904: /(?C)abc/I
 3905: Capturing subpattern count = 0
 3906: No options
 3907: First char = 'a'
 3908: Need char = 'c'
 3909: 
 3910: /(?C)^abc/I
 3911: Capturing subpattern count = 0
 3912: Options: anchored
 3913: No first char
 3914: No need char
 3915: 
 3916: /(?C)a|b/IS
 3917: Capturing subpattern count = 0
 3918: No options
 3919: No first char
 3920: No need char
 3921: Subject length lower bound = 1
 3922: Starting byte set: a b 
 3923: 
 3924: /(?R)/I
 3925: Failed: recursive call could loop indefinitely at offset 3
 3926: 
 3927: /(a|(?R))/I
 3928: Failed: recursive call could loop indefinitely at offset 6
 3929: 
 3930: /(ab|(bc|(de|(?R))))/I
 3931: Failed: recursive call could loop indefinitely at offset 15
 3932: 
 3933: /x(ab|(bc|(de|(?R))))/I
 3934: Capturing subpattern count = 3
 3935: No options
 3936: First char = 'x'
 3937: No need char
 3938:     xab
 3939:  0: xab
 3940:  1: ab
 3941:     xbc
 3942:  0: xbc
 3943:  1: bc
 3944:  2: bc
 3945:     xde
 3946:  0: xde
 3947:  1: de
 3948:  2: de
 3949:  3: de
 3950:     xxab
 3951:  0: xxab
 3952:  1: xab
 3953:  2: xab
 3954:  3: xab
 3955:     xxxab
 3956:  0: xxxab
 3957:  1: xxab
 3958:  2: xxab
 3959:  3: xxab
 3960:     *** Failers
 3961: No match
 3962:     xyab
 3963: No match
 3964: 
 3965: /(ab|(bc|(de|(?1))))/I
 3966: Failed: recursive call could loop indefinitely at offset 15
 3967: 
 3968: /x(ab|(bc|(de|(?1)x)x)x)/I
 3969: Failed: recursive call could loop indefinitely at offset 16
 3970: 
 3971: /^([^()]|\((?1)*\))*$/I
 3972: Capturing subpattern count = 1
 3973: Options: anchored
 3974: No first char
 3975: No need char
 3976:     abc
 3977:  0: abc
 3978:  1: c
 3979:     a(b)c
 3980:  0: a(b)c
 3981:  1: c
 3982:     a(b(c))d
 3983:  0: a(b(c))d
 3984:  1: d
 3985:     *** Failers)
 3986: No match
 3987:     a(b(c)d
 3988: No match
 3989: 
 3990: /^>abc>([^()]|\((?1)*\))*<xyz<$/I
 3991: Capturing subpattern count = 1
 3992: Options: anchored
 3993: No first char
 3994: Need char = '<'
 3995:    >abc>123<xyz<
 3996:  0: >abc>123<xyz<
 3997:  1: 3
 3998:    >abc>1(2)3<xyz<
 3999:  0: >abc>1(2)3<xyz<
 4000:  1: 3
 4001:    >abc>(1(2)3)<xyz<
 4002:  0: >abc>(1(2)3)<xyz<
 4003:  1: (1(2)3)
 4004: 
 4005: /(a(?1)b)/DZ
 4006: ------------------------------------------------------------------
 4007:         Bra
 4008:         CBra 1
 4009:         a
 4010:         Recurse
 4011:         b
 4012:         Ket
 4013:         Ket
 4014:         End
 4015: ------------------------------------------------------------------
 4016: Capturing subpattern count = 1
 4017: No options
 4018: First char = 'a'
 4019: Need char = 'b'
 4020: 
 4021: /(a(?1)+b)/DZ
 4022: ------------------------------------------------------------------
 4023:         Bra
 4024:         CBra 1
 4025:         a
 4026:         Once
 4027:         Recurse
 4028:         KetRmax
 4029:         b
 4030:         Ket
 4031:         Ket
 4032:         End
 4033: ------------------------------------------------------------------
 4034: Capturing subpattern count = 1
 4035: No options
 4036: First char = 'a'
 4037: Need char = 'b'
 4038: 
 4039: /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
 4040: Capturing subpattern count = 2
 4041: Options: anchored
 4042: No first char
 4043: No need char
 4044:     12
 4045:  0: 12
 4046:  1: 12
 4047:     (((2+2)*-3)-7)
 4048:  0: (((2+2)*-3)-7)
 4049:  1: (((2+2)*-3)-7)
 4050:  2: -
 4051:     -12
 4052:  0: -12
 4053:  1: -12
 4054:     *** Failers
 4055: No match
 4056:     ((2+2)*-3)-7)
 4057: No match
 4058: 
 4059: /^(x(y|(?1){2})z)/I
 4060: Capturing subpattern count = 2
 4061: Options: anchored
 4062: No first char
 4063: No need char
 4064:     xyz
 4065:  0: xyz
 4066:  1: xyz
 4067:  2: y
 4068:     xxyzxyzz
 4069:  0: xxyzxyzz
 4070:  1: xxyzxyzz
 4071:  2: xyzxyz
 4072:     *** Failers
 4073: No match
 4074:     xxyzz
 4075: No match
 4076:     xxyzxyzxyzz
 4077: No match
 4078: 
 4079: /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
 4080: Capturing subpattern count = 2
 4081: Options: extended
 4082: First char = '<'
 4083: Need char = '>'
 4084:     <>
 4085:  0: <>
 4086:  1: <>
 4087:  2: <>
 4088:     <abcd>
 4089:  0: <abcd>
 4090:  1: <abcd>
 4091:  2: <abcd>
 4092:     <abc <123> hij>
 4093:  0: <abc <123> hij>
 4094:  1: <abc <123> hij>
 4095:  2: <abc <123> hij>
 4096:     <abc <def> hij>
 4097:  0: <def>
 4098:  1: <def>
 4099:  2: <def>
 4100:     <abc<>def>
 4101:  0: <abc<>def>
 4102:  1: <abc<>def>
 4103:  2: <abc<>def>
 4104:     <abc<>
 4105:  0: <>
 4106:  1: <>
 4107:  2: <>
 4108:     *** Failers
 4109: No match
 4110:     <abc
 4111: No match
 4112: 
 4113: /(?1)/I
 4114: Failed: reference to non-existent subpattern at offset 3
 4115: 
 4116: /((?2)(abc)/I
 4117: Failed: missing ) at offset 10
 4118: 
 4119: /^(abc)def(?1)/I
 4120: Capturing subpattern count = 1
 4121: Options: anchored
 4122: No first char
 4123: No need char
 4124:     abcdefabc
 4125:  0: abcdefabc
 4126:  1: abc
 4127: 
 4128: /^(a|b|c)=(?1)+/I
 4129: Capturing subpattern count = 1
 4130: Options: anchored
 4131: No first char
 4132: No need char
 4133:     a=a
 4134:  0: a=a
 4135:  1: a
 4136:     a=b
 4137:  0: a=b
 4138:  1: a
 4139:     a=bc
 4140:  0: a=bc
 4141:  1: a
 4142: 
 4143: /^(a|b|c)=((?1))+/I
 4144: Capturing subpattern count = 2
 4145: Options: anchored
 4146: No first char
 4147: No need char
 4148:     a=a
 4149:  0: a=a
 4150:  1: a
 4151:  2: a
 4152:     a=b
 4153:  0: a=b
 4154:  1: a
 4155:  2: b
 4156:     a=bc
 4157:  0: a=bc
 4158:  1: a
 4159:  2: c
 4160: 
 4161: /a(?P<name1>b|c)d(?P<longername2>e)/DZ
 4162: ------------------------------------------------------------------
 4163:         Bra
 4164:         a
 4165:         CBra 1
 4166:         b
 4167:         Alt
 4168:         c
 4169:         Ket
 4170:         d
 4171:         CBra 2
 4172:         e
 4173:         Ket
 4174:         Ket
 4175:         End
 4176: ------------------------------------------------------------------
 4177: Capturing subpattern count = 2
 4178: Named capturing subpatterns:
 4179:   longername2   2
 4180:   name1         1
 4181: No options
 4182: First char = 'a'
 4183: Need char = 'e'
 4184:     abde
 4185:  0: abde
 4186:  1: b
 4187:  2: e
 4188:     acde
 4189:  0: acde
 4190:  1: c
 4191:  2: e
 4192: 
 4193: /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
 4194: ------------------------------------------------------------------
 4195:         Bra
 4196:         Bra
 4197:         a
 4198:         CBra 1
 4199:         c
 4200:         CBra 2
 4201:         d
 4202:         Ket
 4203:         Ket
 4204:         Ket
 4205:         CBra 3
 4206:         a
 4207:         Ket
 4208:         Ket
 4209:         End
 4210: ------------------------------------------------------------------
 4211: Capturing subpattern count = 3
 4212: Named capturing subpatterns:
 4213:   a   3
 4214:   c   1
 4215:   d   2
 4216: No options
 4217: First char = 'a'
 4218: Need char = 'a'
 4219: 
 4220: /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
 4221: ------------------------------------------------------------------
 4222:         Bra
 4223:         CBra 1
 4224:         a
 4225:         Ket
 4226:         Any
 4227:         Any
 4228:         Any
 4229:         \1
 4230:         bbb
 4231:         Recurse
 4232:         d
 4233:         Ket
 4234:         End
 4235: ------------------------------------------------------------------
 4236: Capturing subpattern count = 1
 4237: Max back reference = 1
 4238: Named capturing subpatterns:
 4239:   a   1
 4240: No options
 4241: First char = 'a'
 4242: Need char = 'd'
 4243: 
 4244: /^\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
 4245: Capturing subpattern count = 4
 4246: Max back reference = 4
 4247: Named capturing subpatterns:
 4248:   four    4
 4249:   one     1
 4250:   three   3
 4251:   two     2
 4252: Options: anchored caseless
 4253: No first char
 4254: No need char
 4255:     1221
 4256:  0: 1221
 4257:  1: 1221
 4258:  2: 1
 4259:     Satan, oscillate my metallic sonatas!
 4260:  0: Satan, oscillate my metallic sonatas!
 4261:  1: <unset>
 4262:  2: <unset>
 4263:  3: Satan, oscillate my metallic sonatas
 4264:  4: S
 4265:     A man, a plan, a canal: Panama!
 4266:  0: A man, a plan, a canal: Panama!
 4267:  1: <unset>
 4268:  2: <unset>
 4269:  3: A man, a plan, a canal: Panama
 4270:  4: A
 4271:     Able was I ere I saw Elba.
 4272:  0: Able was I ere I saw Elba.
 4273:  1: <unset>
 4274:  2: <unset>
 4275:  3: Able was I ere I saw Elba
 4276:  4: A
 4277:     *** Failers
 4278: No match
 4279:     The quick brown fox
 4280: No match
 4281: 
 4282: /((?(R)a|b))\1(?1)?/I
 4283: Capturing subpattern count = 1
 4284: Max back reference = 1
 4285: No options
 4286: No first char
 4287: No need char
 4288:   bb
 4289:  0: bb
 4290:  1: b
 4291:   bbaa
 4292:  0: bba
 4293:  1: b
 4294: 
 4295: /(.*)a/Is
 4296: Capturing subpattern count = 1
 4297: Options: anchored dotall
 4298: No first char
 4299: Need char = 'a'
 4300: 
 4301: /(.*)a\1/Is
 4302: Capturing subpattern count = 1
 4303: Max back reference = 1
 4304: Options: dotall
 4305: No first char
 4306: Need char = 'a'
 4307: 
 4308: /(.*)a(b)\2/Is
 4309: Capturing subpattern count = 2
 4310: Max back reference = 2
 4311: Options: anchored dotall
 4312: No first char
 4313: Need char = 'b'
 4314: 
 4315: /((.*)a|(.*)b)z/Is
 4316: Capturing subpattern count = 3
 4317: Options: anchored dotall
 4318: No first char
 4319: Need char = 'z'
 4320: 
 4321: /((.*)a|(.*)b)z\1/Is
 4322: Capturing subpattern count = 3
 4323: Max back reference = 1
 4324: Options: dotall
 4325: No first char
 4326: Need char = 'z'
 4327: 
 4328: /((.*)a|(.*)b)z\2/Is
 4329: Capturing subpattern count = 3
 4330: Max back reference = 2
 4331: Options: dotall
 4332: No first char
 4333: Need char = 'z'
 4334: 
 4335: /((.*)a|(.*)b)z\3/Is
 4336: Capturing subpattern count = 3
 4337: Max back reference = 3
 4338: Options: dotall
 4339: No first char
 4340: Need char = 'z'
 4341: 
 4342: /((.*)a|^(.*)b)z\3/Is
 4343: Capturing subpattern count = 3
 4344: Max back reference = 3
 4345: Options: anchored dotall
 4346: No first char
 4347: Need char = 'z'
 4348: 
 4349: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
 4350: Capturing subpattern count = 31
 4351: Options: anchored dotall
 4352: No first char
 4353: No need char
 4354: 
 4355: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
 4356: Capturing subpattern count = 31
 4357: Max back reference = 31
 4358: Options: dotall
 4359: No first char
 4360: No need char
 4361: 
 4362: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
 4363: Capturing subpattern count = 32
 4364: Max back reference = 32
 4365: Options: dotall
 4366: No first char
 4367: No need char
 4368: 
 4369: /(a)(bc)/INDZ
 4370: ------------------------------------------------------------------
 4371:         Bra
 4372:         Bra
 4373:         a
 4374:         Ket
 4375:         Bra
 4376:         bc
 4377:         Ket
 4378:         Ket
 4379:         End
 4380: ------------------------------------------------------------------
 4381: Capturing subpattern count = 0
 4382: Options: no_auto_capture
 4383: First char = 'a'
 4384: Need char = 'c'
 4385:   abc
 4386:  0: abc
 4387: 
 4388: /(?P<one>a)(bc)/INDZ
 4389: ------------------------------------------------------------------
 4390:         Bra
 4391:         CBra 1
 4392:         a
 4393:         Ket
 4394:         Bra
 4395:         bc
 4396:         Ket
 4397:         Ket
 4398:         End
 4399: ------------------------------------------------------------------
 4400: Capturing subpattern count = 1
 4401: Named capturing subpatterns:
 4402:   one   1
 4403: Options: no_auto_capture
 4404: First char = 'a'
 4405: Need char = 'c'
 4406:   abc
 4407:  0: abc
 4408:  1: a
 4409: 
 4410: /(a)(?P<named>bc)/INDZ
 4411: ------------------------------------------------------------------
 4412:         Bra
 4413:         Bra
 4414:         a
 4415:         Ket
 4416:         CBra 1
 4417:         bc
 4418:         Ket
 4419:         Ket
 4420:         End
 4421: ------------------------------------------------------------------
 4422: Capturing subpattern count = 1
 4423: Named capturing subpatterns:
 4424:   named   1
 4425: Options: no_auto_capture
 4426: First char = 'a'
 4427: Need char = 'c'
 4428: 
 4429: /(a+)*zz/I
 4430: Capturing subpattern count = 1
 4431: No options
 4432: No first char
 4433: Need char = 'z'
 4434:   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
 4435: Minimum match() limit = 8
 4436: Minimum match() recursion limit = 6
 4437:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
 4438:  1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 4439:   aaaaaaaaaaaaaz\M
 4440: Minimum match() limit = 32768
 4441: Minimum match() recursion limit = 42
 4442: No match
 4443: 
 4444: /(aaa(?C1)bbb|ab)/I
 4445: Capturing subpattern count = 1
 4446: No options
 4447: First char = 'a'
 4448: Need char = 'b'
 4449:    aaabbb
 4450: --->aaabbb
 4451:   1 ^  ^       b
 4452:  0: aaabbb
 4453:  1: aaabbb
 4454:    aaabbb\C*0
 4455: --->aaabbb
 4456:   1 ^  ^       b
 4457:  0: aaabbb
 4458:  1: aaabbb
 4459:    aaabbb\C*1
 4460: --->aaabbb
 4461:   1 ^  ^       b
 4462: Callout data = 1
 4463:  0: ab
 4464:  1: ab
 4465:    aaabbb\C*-1
 4466: --->aaabbb
 4467:   1 ^  ^       b
 4468: Callout data = -1
 4469: No match
 4470: 
 4471: /ab(?P<one>cd)ef(?P<two>gh)/I
 4472: Capturing subpattern count = 2
 4473: Named capturing subpatterns:
 4474:   one   1
 4475:   two   2
 4476: No options
 4477: First char = 'a'
 4478: Need char = 'h'
 4479:     abcdefgh
 4480:  0: abcdefgh
 4481:  1: cd
 4482:  2: gh
 4483:     abcdefgh\C1\Gtwo
 4484:  0: abcdefgh
 4485:  1: cd
 4486:  2: gh
 4487:  1C cd (2)
 4488:   G gh (2) two
 4489:     abcdefgh\Cone\Ctwo
 4490:  0: abcdefgh
 4491:  1: cd
 4492:  2: gh
 4493:   C cd (2) one
 4494:   C gh (2) two
 4495:     abcdefgh\Cthree
 4496: no parentheses with name "three"
 4497:  0: abcdefgh
 4498:  1: cd
 4499:  2: gh
 4500: copy substring three failed -7
 4501: 
 4502: /(?P<Tes>)(?P<Test>)/DZ
 4503: ------------------------------------------------------------------
 4504:         Bra
 4505:         CBra 1
 4506:         Ket
 4507:         CBra 2
 4508:         Ket
 4509:         Ket
 4510:         End
 4511: ------------------------------------------------------------------
 4512: Capturing subpattern count = 2
 4513: Named capturing subpatterns:
 4514:   Tes    1
 4515:   Test   2
 4516: No options
 4517: No first char
 4518: No need char
 4519: 
 4520: /(?P<Test>)(?P<Tes>)/DZ
 4521: ------------------------------------------------------------------
 4522:         Bra
 4523:         CBra 1
 4524:         Ket
 4525:         CBra 2
 4526:         Ket
 4527:         Ket
 4528:         End
 4529: ------------------------------------------------------------------
 4530: Capturing subpattern count = 2
 4531: Named capturing subpatterns:
 4532:   Tes    2
 4533:   Test   1
 4534: No options
 4535: No first char
 4536: No need char
 4537: 
 4538: /(?P<Z>zz)(?P<A>aa)/I
 4539: Capturing subpattern count = 2
 4540: Named capturing subpatterns:
 4541:   A   2
 4542:   Z   1
 4543: No options
 4544: First char = 'z'
 4545: Need char = 'a'
 4546:     zzaa\CZ
 4547:  0: zzaa
 4548:  1: zz
 4549:  2: aa
 4550:   C zz (2) Z
 4551:     zzaa\CA
 4552:  0: zzaa
 4553:  1: zz
 4554:  2: aa
 4555:   C aa (2) A
 4556: 
 4557: /(?P<x>eks)(?P<x>eccs)/I
 4558: Failed: two named subpatterns have the same name at offset 15
 4559: 
 4560: /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
 4561: Failed: two named subpatterns have the same name at offset 30
 4562: 
 4563: "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
 4564: Capturing subpattern count = 3
 4565: Named capturing subpatterns:
 4566:   elem   2
 4567: No options
 4568: First char = '['
 4569: Need char = ']'
 4570:     [10,20,30,5,5,4,4,2,43,23,4234]
 4571:  0: [10,20,30,5,5,4,4,2,43,23,4234]
 4572:  1: 10,20,30,5,5,4,4,2,43,23,4234
 4573:  2: 10
 4574:  3: ,4234
 4575:     *** Failers
 4576: No match
 4577:     []
 4578: No match
 4579: 
 4580: "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
 4581: Capturing subpattern count = 3
 4582: Named capturing subpatterns:
 4583:   elem   2
 4584: No options
 4585: First char = '['
 4586: Need char = ']'
 4587:     [10,20,30,5,5,4,4,2,43,23,4234]
 4588:  0: [10,20,30,5,5,4,4,2,43,23,4234]
 4589:  1: 10,20,30,5,5,4,4,2,43,23,4234
 4590:  2: 10
 4591:  3: ,4234
 4592:     []
 4593:  0: []
 4594: 
 4595: /(a(b(?2)c))?/DZ
 4596: ------------------------------------------------------------------
 4597:         Bra
 4598:         Brazero
 4599:         CBra 1
 4600:         a
 4601:         CBra 2
 4602:         b
 4603:         Recurse
 4604:         c
 4605:         Ket
 4606:         Ket
 4607:         Ket
 4608:         End
 4609: ------------------------------------------------------------------
 4610: Capturing subpattern count = 2
 4611: No options
 4612: No first char
 4613: No need char
 4614: 
 4615: /(a(b(?2)c))*/DZ
 4616: ------------------------------------------------------------------
 4617:         Bra
 4618:         Brazero
 4619:         CBra 1
 4620:         a
 4621:         CBra 2
 4622:         b
 4623:         Recurse
 4624:         c
 4625:         Ket
 4626:         KetRmax
 4627:         Ket
 4628:         End
 4629: ------------------------------------------------------------------
 4630: Capturing subpattern count = 2
 4631: No options
 4632: No first char
 4633: No need char
 4634: 
 4635: /(a(b(?2)c)){0,2}/DZ
 4636: ------------------------------------------------------------------
 4637:         Bra
 4638:         Brazero
 4639:         Bra
 4640:         CBra 1
 4641:         a
 4642:         CBra 2
 4643:         b
 4644:         Recurse
 4645:         c
 4646:         Ket
 4647:         Ket
 4648:         Brazero
 4649:         CBra 1
 4650:         a
 4651:         CBra 2
 4652:         b
 4653:         Recurse
 4654:         c
 4655:         Ket
 4656:         Ket
 4657:         Ket
 4658:         Ket
 4659:         End
 4660: ------------------------------------------------------------------
 4661: Capturing subpattern count = 2
 4662: No options
 4663: No first char
 4664: No need char
 4665: 
 4666: /[ab]{1}+/DZ
 4667: ------------------------------------------------------------------
 4668:         Bra
 4669:         Once
 4670:         [ab]{1,1}
 4671:         Ket
 4672:         Ket
 4673:         End
 4674: ------------------------------------------------------------------
 4675: Capturing subpattern count = 0
 4676: No options
 4677: No first char
 4678: No need char
 4679: 
 4680: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
 4681: Capturing subpattern count = 3
 4682: Options: caseless
 4683: No first char
 4684: Need char = 'g' (caseless)
 4685:      Baby Bjorn Active Carrier - With free SHIPPING!!
 4686:  0: Baby Bjorn Active Carrier - With free SHIPPING!!
 4687:  1: Baby Bjorn Active Carrier - With free SHIPPING!!
 4688: 
 4689: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
 4690: Capturing subpattern count = 3
 4691: Options: caseless
 4692: No first char
 4693: Need char = 'g' (caseless)
 4694: Subject length lower bound = 8
 4695: No set of starting bytes
 4696:      Baby Bjorn Active Carrier - With free SHIPPING!!
 4697:  0: Baby Bjorn Active Carrier - With free SHIPPING!!
 4698:  1: Baby Bjorn Active Carrier - With free SHIPPING!!
 4699: 
 4700: /a*.*b/ISDZ
 4701: ------------------------------------------------------------------
 4702:         Bra
 4703:         a*
 4704:         Any*
 4705:         b
 4706:         Ket
 4707:         End
 4708: ------------------------------------------------------------------
 4709: Capturing subpattern count = 0
 4710: No options
 4711: No first char
 4712: Need char = 'b'
 4713: Subject length lower bound = 1
 4714: No set of starting bytes
 4715: 
 4716: /(a|b)*.?c/ISDZ
 4717: ------------------------------------------------------------------
 4718:         Bra
 4719:         Brazero
 4720:         CBra 1
 4721:         a
 4722:         Alt
 4723:         b
 4724:         KetRmax
 4725:         Any?
 4726:         c
 4727:         Ket
 4728:         End
 4729: ------------------------------------------------------------------
 4730: Capturing subpattern count = 1
 4731: No options
 4732: No first char
 4733: Need char = 'c'
 4734: Subject length lower bound = 1
 4735: No set of starting bytes
 4736: 
 4737: /abc(?C255)de(?C)f/DZ
 4738: ------------------------------------------------------------------
 4739:         Bra
 4740:         abc
 4741:         Callout 255 10 1
 4742:         de
 4743:         Callout 0 16 1
 4744:         f
 4745:         Ket
 4746:         End
 4747: ------------------------------------------------------------------
 4748: Capturing subpattern count = 0
 4749: No options
 4750: First char = 'a'
 4751: Need char = 'f'
 4752: 
 4753: /abcde/ICDZ
 4754: ------------------------------------------------------------------
 4755:         Bra
 4756:         Callout 255 0 1
 4757:         a
 4758:         Callout 255 1 1
 4759:         b
 4760:         Callout 255 2 1
 4761:         c
 4762:         Callout 255 3 1
 4763:         d
 4764:         Callout 255 4 1
 4765:         e
 4766:         Callout 255 5 0
 4767:         Ket
 4768:         End
 4769: ------------------------------------------------------------------
 4770: Capturing subpattern count = 0
 4771: Options:
 4772: First char = 'a'
 4773: Need char = 'e'
 4774:   abcde
 4775: --->abcde
 4776:  +0 ^         a
 4777:  +1 ^^        b
 4778:  +2 ^ ^       c
 4779:  +3 ^  ^      d
 4780:  +4 ^   ^     e
 4781:  +5 ^    ^    
 4782:  0: abcde
 4783:   abcdfe
 4784: --->abcdfe
 4785:  +0 ^          a
 4786:  +1 ^^         b
 4787:  +2 ^ ^        c
 4788:  +3 ^  ^       d
 4789:  +4 ^   ^      e
 4790: No match
 4791: 
 4792: /a*b/ICDZS
 4793: ------------------------------------------------------------------
 4794:         Bra
 4795:         Callout 255 0 2
 4796:         a*+
 4797:         Callout 255 2 1
 4798:         b
 4799:         Callout 255 3 0
 4800:         Ket
 4801:         End
 4802: ------------------------------------------------------------------
 4803: Capturing subpattern count = 0
 4804: Options:
 4805: No first char
 4806: Need char = 'b'
 4807: Subject length lower bound = 1
 4808: Starting byte set: a b 
 4809:   ab
 4810: --->ab
 4811:  +0 ^      a*
 4812:  +2 ^^     b
 4813:  +3 ^ ^    
 4814:  0: ab
 4815:   aaaab
 4816: --->aaaab
 4817:  +0 ^         a*
 4818:  +2 ^   ^     b
 4819:  +3 ^    ^    
 4820:  0: aaaab
 4821:   aaaacb
 4822: --->aaaacb
 4823:  +0 ^          a*
 4824:  +2 ^   ^      b
 4825:  +0  ^         a*
 4826:  +2  ^  ^      b
 4827:  +0   ^        a*
 4828:  +2   ^ ^      b
 4829:  +0    ^       a*
 4830:  +2    ^^      b
 4831:  +0      ^     a*
 4832:  +2      ^     b
 4833:  +3      ^^    
 4834:  0: b
 4835: 
 4836: /a*b/ICDZSS
 4837: ------------------------------------------------------------------
 4838:         Bra
 4839:         Callout 255 0 2
 4840:         a*+
 4841:         Callout 255 2 1
 4842:         b
 4843:         Callout 255 3 0
 4844:         Ket
 4845:         End
 4846: ------------------------------------------------------------------
 4847: Capturing subpattern count = 0
 4848: Options:
 4849: No first char
 4850: Need char = 'b'
 4851:   ab
 4852: --->ab
 4853:  +0 ^      a*
 4854:  +2 ^^     b
 4855:  +3 ^ ^    
 4856:  0: ab
 4857:   aaaab
 4858: --->aaaab
 4859:  +0 ^         a*
 4860:  +2 ^   ^     b
 4861:  +3 ^    ^    
 4862:  0: aaaab
 4863:   aaaacb
 4864: --->aaaacb
 4865:  +0 ^          a*
 4866:  +2 ^   ^      b
 4867:  +0  ^         a*
 4868:  +2  ^  ^      b
 4869:  +0   ^        a*
 4870:  +2   ^ ^      b
 4871:  +0    ^       a*
 4872:  +2    ^^      b
 4873:  +0     ^      a*
 4874:  +2     ^      b
 4875:  +0      ^     a*
 4876:  +2      ^     b
 4877:  +3      ^^    
 4878:  0: b
 4879: 
 4880: /a+b/ICDZ
 4881: ------------------------------------------------------------------
 4882:         Bra
 4883:         Callout 255 0 2
 4884:         a++
 4885:         Callout 255 2 1
 4886:         b
 4887:         Callout 255 3 0
 4888:         Ket
 4889:         End
 4890: ------------------------------------------------------------------
 4891: Capturing subpattern count = 0
 4892: Options:
 4893: First char = 'a'
 4894: Need char = 'b'
 4895:   ab
 4896: --->ab
 4897:  +0 ^      a+
 4898:  +2 ^^     b
 4899:  +3 ^ ^    
 4900:  0: ab
 4901:   aaaab
 4902: --->aaaab
 4903:  +0 ^         a+
 4904:  +2 ^   ^     b
 4905:  +3 ^    ^    
 4906:  0: aaaab
 4907:   aaaacb
 4908: --->aaaacb
 4909:  +0 ^          a+
 4910:  +2 ^   ^      b
 4911:  +0  ^         a+
 4912:  +2  ^  ^      b
 4913:  +0   ^        a+
 4914:  +2   ^ ^      b
 4915:  +0    ^       a+
 4916:  +2    ^^      b
 4917: No match
 4918: 
 4919: /(abc|def)x/ICDZS
 4920: ------------------------------------------------------------------
 4921:         Bra
 4922:         Callout 255 0 9
 4923:         CBra 1
 4924:         Callout 255 1 1
 4925:         a
 4926:         Callout 255 2 1
 4927:         b
 4928:         Callout 255 3 1
 4929:         c
 4930:         Callout 255 4 0
 4931:         Alt
 4932:         Callout 255 5 1
 4933:         d
 4934:         Callout 255 6 1
 4935:         e
 4936:         Callout 255 7 1
 4937:         f
 4938:         Callout 255 8 0
 4939:         Ket
 4940:         Callout 255 9 1
 4941:         x
 4942:         Callout 255 10 0
 4943:         Ket
 4944:         End
 4945: ------------------------------------------------------------------
 4946: Capturing subpattern count = 1
 4947: Options:
 4948: No first char
 4949: Need char = 'x'
 4950: Subject length lower bound = 4
 4951: Starting byte set: a d 
 4952:   abcx
 4953: --->abcx
 4954:  +0 ^        (abc|def)
 4955:  +1 ^        a
 4956:  +2 ^^       b
 4957:  +3 ^ ^      c
 4958:  +4 ^  ^     |
 4959:  +9 ^  ^     x
 4960: +10 ^   ^    
 4961:  0: abcx
 4962:  1: abc
 4963:   defx
 4964: --->defx
 4965:  +0 ^        (abc|def)
 4966:  +1 ^        a
 4967:  +5 ^        d
 4968:  +6 ^^       e
 4969:  +7 ^ ^      f
 4970:  +8 ^  ^     )
 4971:  +9 ^  ^     x
 4972: +10 ^   ^    
 4973:  0: defx
 4974:  1: def
 4975:   ** Failers 
 4976: No match
 4977:   abcdefzx
 4978: --->abcdefzx
 4979:  +0 ^            (abc|def)
 4980:  +1 ^            a
 4981:  +2 ^^           b
 4982:  +3 ^ ^          c
 4983:  +4 ^  ^         |
 4984:  +9 ^  ^         x
 4985:  +5 ^            d
 4986:  +0    ^         (abc|def)
 4987:  +1    ^         a
 4988:  +5    ^         d
 4989:  +6    ^^        e
 4990:  +7    ^ ^       f
 4991:  +8    ^  ^      )
 4992:  +9    ^  ^      x
 4993: No match
 4994: 
 4995: /(abc|def)x/ICDZSS
 4996: ------------------------------------------------------------------
 4997:         Bra
 4998:         Callout 255 0 9
 4999:         CBra 1
 5000:         Callout 255 1 1
 5001:         a
 5002:         Callout 255 2 1
 5003:         b
 5004:         Callout 255 3 1
 5005:         c
 5006:         Callout 255 4 0
 5007:         Alt
 5008:         Callout 255 5 1
 5009:         d
 5010:         Callout 255 6 1
 5011:         e
 5012:         Callout 255 7 1
 5013:         f
 5014:         Callout 255 8 0
 5015:         Ket
 5016:         Callout 255 9 1
 5017:         x
 5018:         Callout 255 10 0
 5019:         Ket
 5020:         End
 5021: ------------------------------------------------------------------
 5022: Capturing subpattern count = 1
 5023: Options:
 5024: No first char
 5025: Need char = 'x'
 5026:   abcx
 5027: --->abcx
 5028:  +0 ^        (abc|def)
 5029:  +1 ^        a
 5030:  +2 ^^       b
 5031:  +3 ^ ^      c
 5032:  +4 ^  ^     |
 5033:  +9 ^  ^     x
 5034: +10 ^   ^    
 5035:  0: abcx
 5036:  1: abc
 5037:   defx
 5038: --->defx
 5039:  +0 ^        (abc|def)
 5040:  +1 ^        a
 5041:  +5 ^        d
 5042:  +6 ^^       e
 5043:  +7 ^ ^      f
 5044:  +8 ^  ^     )
 5045:  +9 ^  ^     x
 5046: +10 ^   ^    
 5047:  0: defx
 5048:  1: def
 5049:   ** Failers 
 5050: No match
 5051:   abcdefzx
 5052: --->abcdefzx
 5053:  +0 ^            (abc|def)
 5054:  +1 ^            a
 5055:  +2 ^^           b
 5056:  +3 ^ ^          c
 5057:  +4 ^  ^         |
 5058:  +9 ^  ^         x
 5059:  +5 ^            d
 5060:  +0  ^           (abc|def)
 5061:  +1  ^           a
 5062:  +5  ^           d
 5063:  +0   ^          (abc|def)
 5064:  +1   ^          a
 5065:  +5   ^          d
 5066:  +0    ^         (abc|def)
 5067:  +1    ^         a
 5068:  +5    ^         d
 5069:  +6    ^^        e
 5070:  +7    ^ ^       f
 5071:  +8    ^  ^      )
 5072:  +9    ^  ^      x
 5073:  +0     ^        (abc|def)
 5074:  +1     ^        a
 5075:  +5     ^        d
 5076:  +0      ^       (abc|def)
 5077:  +1      ^       a
 5078:  +5      ^       d
 5079:  +0       ^      (abc|def)
 5080:  +1       ^      a
 5081:  +5       ^      d
 5082:  +0        ^     (abc|def)
 5083:  +1        ^     a
 5084:  +5        ^     d
 5085: No match
 5086: 
 5087: /(ab|cd){3,4}/IC
 5088: Capturing subpattern count = 1
 5089: Options:
 5090: No first char
 5091: No need char
 5092:   ababab
 5093: --->ababab
 5094:  +0 ^          (ab|cd){3,4}
 5095:  +1 ^          a
 5096:  +2 ^^         b
 5097:  +3 ^ ^        |
 5098:  +1 ^ ^        a
 5099:  +2 ^  ^       b
 5100:  +3 ^   ^      |
 5101:  +1 ^   ^      a
 5102:  +2 ^    ^     b
 5103:  +3 ^     ^    |
 5104:  +1 ^     ^    a
 5105:  +4 ^     ^    c
 5106: +12 ^     ^    
 5107:  0: ababab
 5108:  1: ab
 5109:   abcdabcd
 5110: --->abcdabcd
 5111:  +0 ^            (ab|cd){3,4}
 5112:  +1 ^            a
 5113:  +2 ^^           b
 5114:  +3 ^ ^          |
 5115:  +1 ^ ^          a
 5116:  +4 ^ ^          c
 5117:  +5 ^  ^         d
 5118:  +6 ^   ^        )
 5119:  +1 ^   ^        a
 5120:  +2 ^    ^       b
 5121:  +3 ^     ^      |
 5122:  +1 ^     ^      a
 5123:  +4 ^     ^      c
 5124:  +5 ^      ^     d
 5125:  +6 ^       ^    )
 5126: +12 ^       ^    
 5127:  0: abcdabcd
 5128:  1: cd
 5129:   abcdcdcdcdcd
 5130: --->abcdcdcdcdcd
 5131:  +0 ^                (ab|cd){3,4}
 5132:  +1 ^                a
 5133:  +2 ^^               b
 5134:  +3 ^ ^              |
 5135:  +1 ^ ^              a
 5136:  +4 ^ ^              c
 5137:  +5 ^  ^             d
 5138:  +6 ^   ^            )
 5139:  +1 ^   ^            a
 5140:  +4 ^   ^            c
 5141:  +5 ^    ^           d
 5142:  +6 ^     ^          )
 5143:  +1 ^     ^          a
 5144:  +4 ^     ^          c
 5145:  +5 ^      ^         d
 5146:  +6 ^       ^        )
 5147: +12 ^       ^        
 5148:  0: abcdcdcd
 5149:  1: cd
 5150: 
 5151: /([ab]{,4}c|xy)/ICDZS
 5152: ------------------------------------------------------------------
 5153:         Bra
 5154:         Callout 255 0 14
 5155:         CBra 1
 5156:         Callout 255 1 4
 5157:         [ab]
 5158:         Callout 255 5 1
 5159:         {
 5160:         Callout 255 6 1
 5161:         ,
 5162:         Callout 255 7 1
 5163:         4
 5164:         Callout 255 8 1
 5165:         }
 5166:         Callout 255 9 1
 5167:         c
 5168:         Callout 255 10 0
 5169:         Alt
 5170:         Callout 255 11 1
 5171:         x
 5172:         Callout 255 12 1
 5173:         y
 5174:         Callout 255 13 0
 5175:         Ket
 5176:         Callout 255 14 0
 5177:         Ket
 5178:         End
 5179: ------------------------------------------------------------------
 5180: Capturing subpattern count = 1
 5181: Options:
 5182: No first char
 5183: No need char
 5184: Subject length lower bound = 2
 5185: Starting byte set: a b x 
 5186:     Note: that { does NOT introduce a quantifier
 5187: --->Note: that { does NOT introduce a quantifier
 5188:  +0         ^                                        ([ab]{,4}c|xy)
 5189:  +1         ^                                        [ab]
 5190:  +5         ^^                                       {
 5191: +11         ^                                        x
 5192:  +0                                 ^                ([ab]{,4}c|xy)
 5193:  +1                                 ^                [ab]
 5194:  +5                                 ^^               {
 5195: +11                                 ^                x
 5196:  +0                                     ^            ([ab]{,4}c|xy)
 5197:  +1                                     ^            [ab]
 5198:  +5                                     ^^           {
 5199: +11                                     ^            x
 5200: No match
 5201: 
 5202: /([ab]{,4}c|xy)/ICDZSS
 5203: ------------------------------------------------------------------
 5204:         Bra
 5205:         Callout 255 0 14
 5206:         CBra 1
 5207:         Callout 255 1 4
 5208:         [ab]
 5209:         Callout 255 5 1
 5210:         {
 5211:         Callout 255 6 1
 5212:         ,
 5213:         Callout 255 7 1
 5214:         4
 5215:         Callout 255 8 1
 5216:         }
 5217:         Callout 255 9 1
 5218:         c
 5219:         Callout 255 10 0
 5220:         Alt
 5221:         Callout 255 11 1
 5222:         x
 5223:         Callout 255 12 1
 5224:         y
 5225:         Callout 255 13 0
 5226:         Ket
 5227:         Callout 255 14 0
 5228:         Ket
 5229:         End
 5230: ------------------------------------------------------------------
 5231: Capturing subpattern count = 1
 5232: Options:
 5233: No first char
 5234: No need char
 5235:     Note: that { does NOT introduce a quantifier
 5236: --->Note: that { does NOT introduce a quantifier
 5237:  +0 ^                                                ([ab]{,4}c|xy)
 5238:  +1 ^                                                [ab]
 5239: +11 ^                                                x
 5240:  +0  ^                                               ([ab]{,4}c|xy)
 5241:  +1  ^                                               [ab]
 5242: +11  ^                                               x
 5243:  +0   ^                                              ([ab]{,4}c|xy)
 5244:  +1   ^                                              [ab]
 5245: +11   ^                                              x
 5246:  +0    ^                                             ([ab]{,4}c|xy)
 5247:  +1    ^                                             [ab]
 5248: +11    ^                                             x
 5249:  +0     ^                                            ([ab]{,4}c|xy)
 5250:  +1     ^                                            [ab]
 5251: +11     ^                                            x
 5252:  +0      ^                                           ([ab]{,4}c|xy)
 5253:  +1      ^                                           [ab]
 5254: +11      ^                                           x
 5255:  +0       ^                                          ([ab]{,4}c|xy)
 5256:  +1       ^                                          [ab]
 5257: +11       ^                                          x
 5258:  +0        ^                                         ([ab]{,4}c|xy)
 5259:  +1        ^                                         [ab]
 5260: +11        ^                                         x
 5261:  +0         ^                                        ([ab]{,4}c|xy)
 5262:  +1         ^                                        [ab]
 5263:  +5         ^^                                       {
 5264: +11         ^                                        x
 5265:  +0          ^                                       ([ab]{,4}c|xy)
 5266:  +1          ^                                       [ab]
 5267: +11          ^                                       x
 5268:  +0           ^                                      ([ab]{,4}c|xy)
 5269:  +1           ^                                      [ab]
 5270: +11           ^                                      x
 5271:  +0            ^                                     ([ab]{,4}c|xy)
 5272:  +1            ^                                     [ab]
 5273: +11            ^                                     x
 5274:  +0             ^                                    ([ab]{,4}c|xy)
 5275:  +1             ^                                    [ab]
 5276: +11             ^                                    x
 5277:  +0              ^                                   ([ab]{,4}c|xy)
 5278:  +1              ^                                   [ab]
 5279: +11              ^                                   x
 5280:  +0               ^                                  ([ab]{,4}c|xy)
 5281:  +1               ^                                  [ab]
 5282: +11               ^                                  x
 5283:  +0                ^                                 ([ab]{,4}c|xy)
 5284:  +1                ^                                 [ab]
 5285: +11                ^                                 x
 5286:  +0                 ^                                ([ab]{,4}c|xy)
 5287:  +1                 ^                                [ab]
 5288: +11                 ^                                x
 5289:  +0                  ^                               ([ab]{,4}c|xy)
 5290:  +1                  ^                               [ab]
 5291: +11                  ^                               x
 5292:  +0                   ^                              ([ab]{,4}c|xy)
 5293:  +1                   ^                              [ab]
 5294: +11                   ^                              x
 5295:  +0                    ^                             ([ab]{,4}c|xy)
 5296:  +1                    ^                             [ab]
 5297: +11                    ^                             x
 5298:  +0                     ^                            ([ab]{,4}c|xy)
 5299:  +1                     ^                            [ab]
 5300: +11                     ^                            x
 5301:  +0                      ^                           ([ab]{,4}c|xy)
 5302:  +1                      ^                           [ab]
 5303: +11                      ^                           x
 5304:  +0                       ^                          ([ab]{,4}c|xy)
 5305:  +1                       ^                          [ab]
 5306: +11                       ^                          x
 5307:  +0                        ^                         ([ab]{,4}c|xy)
 5308:  +1                        ^                         [ab]
 5309: +11                        ^                         x
 5310:  +0                         ^                        ([ab]{,4}c|xy)
 5311:  +1                         ^                        [ab]
 5312: +11                         ^                        x
 5313:  +0                          ^                       ([ab]{,4}c|xy)
 5314:  +1                          ^                       [ab]
 5315: +11                          ^                       x
 5316:  +0                           ^                      ([ab]{,4}c|xy)
 5317:  +1                           ^                      [ab]
 5318: +11                           ^                      x
 5319:  +0                            ^                     ([ab]{,4}c|xy)
 5320:  +1                            ^                     [ab]
 5321: +11                            ^                     x
 5322:  +0                             ^                    ([ab]{,4}c|xy)
 5323:  +1                             ^                    [ab]
 5324: +11                             ^                    x
 5325:  +0                              ^                   ([ab]{,4}c|xy)
 5326:  +1                              ^                   [ab]
 5327: +11                              ^                   x
 5328:  +0                               ^                  ([ab]{,4}c|xy)
 5329:  +1                               ^                  [ab]
 5330: +11                               ^                  x
 5331:  +0                                ^                 ([ab]{,4}c|xy)
 5332:  +1                                ^                 [ab]
 5333: +11                                ^                 x
 5334:  +0                                 ^                ([ab]{,4}c|xy)
 5335:  +1                                 ^                [ab]
 5336:  +5                                 ^^               {
 5337: +11                                 ^                x
 5338:  +0                                  ^               ([ab]{,4}c|xy)
 5339:  +1                                  ^               [ab]
 5340: +11                                  ^               x
 5341:  +0                                   ^              ([ab]{,4}c|xy)
 5342:  +1                                   ^              [ab]
 5343: +11                                   ^              x
 5344:  +0                                    ^             ([ab]{,4}c|xy)
 5345:  +1                                    ^             [ab]
 5346: +11                                    ^             x
 5347:  +0                                     ^            ([ab]{,4}c|xy)
 5348:  +1                                     ^            [ab]
 5349:  +5                                     ^^           {
 5350: +11                                     ^            x
 5351:  +0                                      ^           ([ab]{,4}c|xy)
 5352:  +1                                      ^           [ab]
 5353: +11                                      ^           x
 5354:  +0                                       ^          ([ab]{,4}c|xy)
 5355:  +1                                       ^          [ab]
 5356: +11                                       ^          x
 5357:  +0                                        ^         ([ab]{,4}c|xy)
 5358:  +1                                        ^         [ab]
 5359: +11                                        ^         x
 5360:  +0                                         ^        ([ab]{,4}c|xy)
 5361:  +1                                         ^        [ab]
 5362: +11                                         ^        x
 5363:  +0                                          ^       ([ab]{,4}c|xy)
 5364:  +1                                          ^       [ab]
 5365: +11                                          ^       x
 5366:  +0                                           ^      ([ab]{,4}c|xy)
 5367:  +1                                           ^      [ab]
 5368: +11                                           ^      x
 5369:  +0                                            ^     ([ab]{,4}c|xy)
 5370:  +1                                            ^     [ab]
 5371: +11                                            ^     x
 5372:  +0                                             ^    ([ab]{,4}c|xy)
 5373:  +1                                             ^    [ab]
 5374: +11                                             ^    x
 5375: No match
 5376: 
 5377: /([ab]{1,4}c|xy){4,5}?123/ICDZ
 5378: ------------------------------------------------------------------
 5379:         Bra
 5380:         Callout 255 0 21
 5381:         CBra 1
 5382:         Callout 255 1 9
 5383:         [ab]{1,4}
 5384:         Callout 255 10 1
 5385:         c
 5386:         Callout 255 11 0
 5387:         Alt
 5388:         Callout 255 12 1
 5389:         x
 5390:         Callout 255 13 1
 5391:         y
 5392:         Callout 255 14 0
 5393:         Ket
 5394:         CBra 1
 5395:         Callout 255 1 9
 5396:         [ab]{1,4}
 5397:         Callout 255 10 1
 5398:         c
 5399:         Callout 255 11 0
 5400:         Alt
 5401:         Callout 255 12 1
 5402:         x
 5403:         Callout 255 13 1
 5404:         y
 5405:         Callout 255 14 0
 5406:         Ket
 5407:         CBra 1
 5408:         Callout 255 1 9
 5409:         [ab]{1,4}
 5410:         Callout 255 10 1
 5411:         c
 5412:         Callout 255 11 0
 5413:         Alt
 5414:         Callout 255 12 1
 5415:         x
 5416:         Callout 255 13 1
 5417:         y
 5418:         Callout 255 14 0
 5419:         Ket
 5420:         CBra 1
 5421:         Callout 255 1 9
 5422:         [ab]{1,4}
 5423:         Callout 255 10 1
 5424:         c
 5425:         Callout 255 11 0
 5426:         Alt
 5427:         Callout 255 12 1
 5428:         x
 5429:         Callout 255 13 1
 5430:         y
 5431:         Callout 255 14 0
 5432:         Ket
 5433:         Braminzero
 5434:         CBra 1
 5435:         Callout 255 1 9
 5436:         [ab]{1,4}
 5437:         Callout 255 10 1
 5438:         c
 5439:         Callout 255 11 0
 5440:         Alt
 5441:         Callout 255 12 1
 5442:         x
 5443:         Callout 255 13 1
 5444:         y
 5445:         Callout 255 14 0
 5446:         Ket
 5447:         Callout 255 21 1
 5448:         1
 5449:         Callout 255 22 1
 5450:         2
 5451:         Callout 255 23 1
 5452:         3
 5453:         Callout 255 24 0
 5454:         Ket
 5455:         End
 5456: ------------------------------------------------------------------
 5457: Capturing subpattern count = 1
 5458: Options:
 5459: No first char
 5460: Need char = '3'
 5461:     aacaacaacaacaac123
 5462: --->aacaacaacaacaac123
 5463:  +0 ^                      ([ab]{1,4}c|xy){4,5}?
 5464:  +1 ^                      [ab]{1,4}
 5465: +10 ^ ^                    c
 5466: +11 ^  ^                   |
 5467:  +1 ^  ^                   [ab]{1,4}
 5468: +10 ^    ^                 c
 5469: +11 ^     ^                |
 5470:  +1 ^     ^                [ab]{1,4}
 5471: +10 ^       ^              c
 5472: +11 ^        ^             |
 5473:  +1 ^        ^             [ab]{1,4}
 5474: +10 ^          ^           c
 5475: +11 ^           ^          |
 5476: +21 ^           ^          1
 5477:  +1 ^           ^          [ab]{1,4}
 5478: +10 ^             ^        c
 5479: +11 ^              ^       |
 5480: +21 ^              ^       1
 5481: +22 ^               ^      2
 5482: +23 ^                ^     3
 5483: +24 ^                 ^    
 5484:  0: aacaacaacaacaac123
 5485:  1: aac
 5486: 
 5487: /\b.*/I
 5488: Capturing subpattern count = 0
 5489: No options
 5490: No first char
 5491: No need char
 5492:   ab cd\>1
 5493:  0:  cd
 5494: 
 5495: /\b.*/Is
 5496: Capturing subpattern count = 0
 5497: Options: dotall
 5498: No first char
 5499: No need char
 5500:   ab cd\>1
 5501:  0:  cd
 5502: 
 5503: /(?!.bcd).*/I
 5504: Capturing subpattern count = 0
 5505: No options
 5506: No first char
 5507: No need char
 5508:   Xbcd12345
 5509:  0: bcd12345
 5510: 
 5511: /abcde/I
 5512: Capturing subpattern count = 0
 5513: No options
 5514: First char = 'a'
 5515: Need char = 'e'
 5516:     ab\P
 5517: Partial match: ab
 5518:     abc\P
 5519: Partial match: abc
 5520:     abcd\P
 5521: Partial match: abcd
 5522:     abcde\P
 5523:  0: abcde
 5524:     the quick brown abc\P
 5525: Partial match: abc
 5526:     ** Failers\P
 5527: No match
 5528:     the quick brown abxyz fox\P
 5529: No match
 5530: 
 5531: "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
 5532: Capturing subpattern count = 3
 5533: Options: anchored
 5534: No first char
 5535: Need char = '/'
 5536:     13/05/04\P
 5537:  0: 13/05/04
 5538:  1: 13
 5539:  2: 05
 5540:     13/5/2004\P
 5541:  0: 13/5/2004
 5542:  1: 13
 5543:  2: 5
 5544:  3: 20
 5545:     02/05/09\P
 5546:  0: 02/05/09
 5547:  1: 02
 5548:  2: 05
 5549:     1\P
 5550: Partial match: 1
 5551:     1/2\P
 5552: Partial match: 1/2
 5553:     1/2/0\P
 5554: Partial match: 1/2/0
 5555:     1/2/04\P
 5556:  0: 1/2/04
 5557:  1: 1
 5558:  2: 2
 5559:     0\P
 5560: Partial match: 0
 5561:     02/\P
 5562: Partial match: 02/
 5563:     02/0\P
 5564: Partial match: 02/0
 5565:     02/1\P
 5566: Partial match: 02/1
 5567:     ** Failers\P
 5568: No match
 5569:     \P
 5570: No match
 5571:     123\P
 5572: No match
 5573:     33/4/04\P
 5574: No match
 5575:     3/13/04\P
 5576: No match
 5577:     0/1/2003\P
 5578: No match
 5579:     0/\P
 5580: No match
 5581:     02/0/\P
 5582: No match
 5583:     02/13\P
 5584: No match
 5585: 
 5586: /0{0,2}ABC/I
 5587: Capturing subpattern count = 0
 5588: No options
 5589: No first char
 5590: Need char = 'C'
 5591: 
 5592: /\d{3,}ABC/I
 5593: Capturing subpattern count = 0
 5594: No options
 5595: No first char
 5596: Need char = 'C'
 5597: 
 5598: /\d*ABC/I
 5599: Capturing subpattern count = 0
 5600: No options
 5601: No first char
 5602: Need char = 'C'
 5603: 
 5604: /[abc]+DE/I
 5605: Capturing subpattern count = 0
 5606: No options
 5607: No first char
 5608: Need char = 'E'
 5609: 
 5610: /[abc]?123/I
 5611: Capturing subpattern count = 0
 5612: No options
 5613: No first char
 5614: Need char = '3'
 5615:     123\P
 5616:  0: 123
 5617:     a\P
 5618: Partial match: a
 5619:     b\P
 5620: Partial match: b
 5621:     c\P
 5622: Partial match: c
 5623:     c12\P
 5624: Partial match: c12
 5625:     c123\P
 5626:  0: c123
 5627: 
 5628: /^(?:\d){3,5}X/I
 5629: Capturing subpattern count = 0
 5630: Options: anchored
 5631: No first char
 5632: Need char = 'X'
 5633:     1\P
 5634: Partial match: 1
 5635:     123\P
 5636: Partial match: 123
 5637:     123X
 5638:  0: 123X
 5639:     1234\P
 5640: Partial match: 1234
 5641:     1234X
 5642:  0: 1234X
 5643:     12345\P
 5644: Partial match: 12345
 5645:     12345X
 5646:  0: 12345X
 5647:     *** Failers
 5648: No match
 5649:     1X
 5650: No match
 5651:     123456\P
 5652: No match
 5653: 
 5654: /abc/IS>testsavedregex
 5655: Capturing subpattern count = 0
 5656: No options
 5657: First char = 'a'
 5658: Need char = 'c'
 5659: Subject length lower bound = 3
 5660: No set of starting bytes
 5661: Compiled pattern written to testsavedregex
 5662: Study data written to testsavedregex
 5663: <testsavedregex
 5664: Compiled pattern loaded from testsavedregex
 5665: Study data loaded from testsavedregex
 5666:     abc
 5667:  0: abc
 5668:     ** Failers
 5669: No match
 5670:     bca
 5671: No match
 5672: 
 5673: /abc/ISS>testsavedregex
 5674: Capturing subpattern count = 0
 5675: No options
 5676: First char = 'a'
 5677: Need char = 'c'
 5678: Compiled pattern written to testsavedregex
 5679: <testsavedregex
 5680: Compiled pattern loaded from testsavedregex
 5681: No study data
 5682:     abc
 5683:  0: abc
 5684:     ** Failers
 5685: No match
 5686:     bca
 5687: No match
 5688: 
 5689: /abc/IFS>testsavedregex
 5690: Capturing subpattern count = 0
 5691: No options
 5692: First char = 'a'
 5693: Need char = 'c'
 5694: Subject length lower bound = 3
 5695: No set of starting bytes
 5696: Compiled pattern written to testsavedregex
 5697: Study data written to testsavedregex
 5698: <testsavedregex
 5699: Compiled pattern (byte-inverted) loaded from testsavedregex
 5700: Study data loaded from testsavedregex
 5701:     abc
 5702:  0: abc
 5703:     ** Failers
 5704: No match
 5705:     bca
 5706: No match
 5707: 
 5708: /abc/IFSS>testsavedregex
 5709: Capturing subpattern count = 0
 5710: No options
 5711: First char = 'a'
 5712: Need char = 'c'
 5713: Compiled pattern written to testsavedregex
 5714: <testsavedregex
 5715: Compiled pattern (byte-inverted) loaded from testsavedregex
 5716: No study data
 5717:     abc
 5718:  0: abc
 5719:     ** Failers
 5720: No match
 5721:     bca
 5722: No match
 5723: 
 5724: /(a|b)/IS>testsavedregex
 5725: Capturing subpattern count = 1
 5726: No options
 5727: No first char
 5728: No need char
 5729: Subject length lower bound = 1
 5730: Starting byte set: a b 
 5731: Compiled pattern written to testsavedregex
 5732: Study data written to testsavedregex
 5733: <testsavedregex
 5734: Compiled pattern loaded from testsavedregex
 5735: Study data loaded from testsavedregex
 5736:     abc
 5737:  0: a
 5738:  1: a
 5739:     ** Failers
 5740:  0: a
 5741:  1: a
 5742:     def
 5743: No match
 5744: 
 5745: /(a|b)/ISS>testsavedregex
 5746: Capturing subpattern count = 1
 5747: No options
 5748: No first char
 5749: No need char
 5750: Compiled pattern written to testsavedregex
 5751: <testsavedregex
 5752: Compiled pattern loaded from testsavedregex
 5753: No study data
 5754:     abc
 5755:  0: a
 5756:  1: a
 5757:     ** Failers
 5758:  0: a
 5759:  1: a
 5760:     def
 5761: No match
 5762: 
 5763: /(a|b)/ISF>testsavedregex
 5764: Capturing subpattern count = 1
 5765: No options
 5766: No first char
 5767: No need char
 5768: Subject length lower bound = 1
 5769: Starting byte set: a b 
 5770: Compiled pattern written to testsavedregex
 5771: Study data written to testsavedregex
 5772: <testsavedregex
 5773: Compiled pattern (byte-inverted) loaded from testsavedregex
 5774: Study data loaded from testsavedregex
 5775:     abc
 5776:  0: a
 5777:  1: a
 5778:     ** Failers
 5779:  0: a
 5780:  1: a
 5781:     def
 5782: No match
 5783: 
 5784: /(a|b)/ISSF>testsavedregex
 5785: Capturing subpattern count = 1
 5786: No options
 5787: No first char
 5788: No need char
 5789: Compiled pattern written to testsavedregex
 5790: <testsavedregex
 5791: Compiled pattern (byte-inverted) loaded from testsavedregex
 5792: No study data
 5793:     abc
 5794:  0: a
 5795:  1: a
 5796:     ** Failers
 5797:  0: a
 5798:  1: a
 5799:     def
 5800: No match
 5801: 
 5802: ~<(\w+)/?>(.)*</(\1)>~smgI
 5803: Capturing subpattern count = 3
 5804: Max back reference = 1
 5805: Options: multiline dotall
 5806: First char = '<'
 5807: Need char = '>'
 5808:     \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>
 5809:  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>
 5810:  1: seite
 5811:  2: \x0a
 5812:  3: seite
 5813: 
 5814: /^a/IF
 5815: Capturing subpattern count = 0
 5816: Options: anchored
 5817: No first char
 5818: No need char
 5819: 
 5820: /line\nbreak/I
 5821: Capturing subpattern count = 0
 5822: Contains explicit CR or LF match
 5823: No options
 5824: First char = 'l'
 5825: Need char = 'k'
 5826:     this is a line\nbreak
 5827:  0: line\x0abreak
 5828:     line one\nthis is a line\nbreak in the second line
 5829:  0: line\x0abreak
 5830: 
 5831: /line\nbreak/If
 5832: Capturing subpattern count = 0
 5833: Contains explicit CR or LF match
 5834: Options: firstline
 5835: First char = 'l'
 5836: Need char = 'k'
 5837:     this is a line\nbreak
 5838:  0: line\x0abreak
 5839:     ** Failers
 5840: No match
 5841:     line one\nthis is a line\nbreak in the second line
 5842: No match
 5843: 
 5844: /line\nbreak/Imf
 5845: Capturing subpattern count = 0
 5846: Contains explicit CR or LF match
 5847: Options: multiline firstline
 5848: First char = 'l'
 5849: Need char = 'k'
 5850:     this is a line\nbreak
 5851:  0: line\x0abreak
 5852:     ** Failers
 5853: No match
 5854:     line one\nthis is a line\nbreak in the second line
 5855: No match
 5856: 
 5857: /ab.cd/P
 5858:     ab-cd
 5859:  0: ab-cd
 5860:     ab=cd
 5861:  0: ab=cd
 5862:     ** Failers
 5863: No match: POSIX code 17: match failed
 5864:     ab\ncd
 5865: No match: POSIX code 17: match failed
 5866: 
 5867: /ab.cd/Ps
 5868:     ab-cd
 5869:  0: ab-cd
 5870:     ab=cd
 5871:  0: ab=cd
 5872:     ab\ncd
 5873:  0: ab\x0acd
 5874: 
 5875: /(?i)(?-i)AbCd/I
 5876: Capturing subpattern count = 0
 5877: No options
 5878: First char = 'A'
 5879: Need char = 'd'
 5880:     AbCd
 5881:  0: AbCd
 5882:     ** Failers
 5883: No match
 5884:     abcd
 5885: No match
 5886: 
 5887: /a{11111111111111111111}/I
 5888: Failed: number too big in {} quantifier at offset 22
 5889: 
 5890: /(){64294967295}/I
 5891: Failed: number too big in {} quantifier at offset 14
 5892: 
 5893: /(){2,4294967295}/I
 5894: Failed: number too big in {} quantifier at offset 15
 5895: 
 5896: "(?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
 5897: Capturing subpattern count = 1
 5898: Max back reference = 1
 5899: No options
 5900: First char = 'a' (caseless)
 5901: Need char = 'B'
 5902:     abcdefghijklAkB
 5903:  0: abcdefghijklAkB
 5904:  1: k
 5905: 
 5906: "(?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
 5907: Capturing subpattern count = 12
 5908: Max back reference = 11
 5909: Named capturing subpatterns:
 5910:   n0    1
 5911:   n1    2
 5912:   n10  11
 5913:   n11  12
 5914:   n2    3
 5915:   n3    4
 5916:   n4    5
 5917:   n5    6
 5918:   n6    7
 5919:   n7    8
 5920:   n8    9
 5921:   n9   10
 5922: No options
 5923: First char = 'a'
 5924: Need char = 'B'
 5925:     abcdefghijklAkB
 5926:  0: abcdefghijklAkB
 5927:  1: a
 5928:  2: b
 5929:  3: c
 5930:  4: d
 5931:  5: e
 5932:  6: f
 5933:  7: g
 5934:  8: h
 5935:  9: i
 5936: 10: j
 5937: 11: k
 5938: 12: l
 5939: 
 5940: "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
 5941: Capturing subpattern count = 12
 5942: Max back reference = 11
 5943: No options
 5944: First char = 'a'
 5945: Need char = 'B'
 5946:     abcdefghijklAkB
 5947:  0: abcdefghijklAkB
 5948:  1: a
 5949:  2: b
 5950:  3: c
 5951:  4: d
 5952:  5: e
 5953:  6: f
 5954:  7: g
 5955:  8: h
 5956:  9: i
 5957: 10: j
 5958: 11: k
 5959: 12: l
 5960: 
 5961: "(?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
 5962: Capturing subpattern count = 101
 5963: Named capturing subpatterns:
 5964:   name0     1
 5965:   name1     2
 5966:   name10   11
 5967:   name100 101
 5968:   name11   12
 5969:   name12   13
 5970:   name13   14
 5971:   name14   15
 5972:   name15   16
 5973:   name16   17
 5974:   name17   18
 5975:   name18   19
 5976:   name19   20
 5977:   name2     3
 5978:   name20   21
 5979:   name21   22
 5980:   name22   23
 5981:   name23   24
 5982:   name24   25
 5983:   name25   26
 5984:   name26   27
 5985:   name27   28
 5986:   name28   29
 5987:   name29   30
 5988:   name3     4
 5989:   name30   31
 5990:   name31   32
 5991:   name32   33
 5992:   name33   34
 5993:   name34   35
 5994:   name35   36
 5995:   name36   37
 5996:   name37   38
 5997:   name38   39
 5998:   name39   40
 5999:   name4     5
 6000:   name40   41
 6001:   name41   42
 6002:   name42   43
 6003:   name43   44
 6004:   name44   45
 6005:   name45   46
 6006:   name46   47
 6007:   name47   48
 6008:   name48   49
 6009:   name49   50
 6010:   name5     6
 6011:   name50   51
 6012:   name51   52
 6013:   name52   53
 6014:   name53   54
 6015:   name54   55
 6016:   name55   56
 6017:   name56   57
 6018:   name57   58
 6019:   name58   59
 6020:   name59   60
 6021:   name6     7
 6022:   name60   61
 6023:   name61   62
 6024:   name62   63
 6025:   name63   64
 6026:   name64   65
 6027:   name65   66
 6028:   name66   67
 6029:   name67   68
 6030:   name68   69
 6031:   name69   70
 6032:   name7     8
 6033:   name70   71
 6034:   name71   72
 6035:   name72   73
 6036:   name73   74
 6037:   name74   75
 6038:   name75   76
 6039:   name76   77
 6040:   name77   78
 6041:   name78   79
 6042:   name79   80
 6043:   name8     9
 6044:   name80   81
 6045:   name81   82
 6046:   name82   83
 6047:   name83   84
 6048:   name84   85
 6049:   name85   86
 6050:   name86   87
 6051:   name87   88
 6052:   name88   89
 6053:   name89   90
 6054:   name9    10
 6055:   name90   91
 6056:   name91   92
 6057:   name92   93
 6058:   name93   94
 6059:   name94   95
 6060:   name95   96
 6061:   name96   97
 6062:   name97   98
 6063:   name98   99
 6064:   name99  100
 6065: No options
 6066: First char = 'a'
 6067: Need char = 'a'
 6068:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 6069: Matched, but too many substrings
 6070:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 6071:  1: a
 6072:  2: a
 6073:  3: a
 6074:  4: a
 6075:  5: a
 6076:  6: a
 6077:  7: a
 6078:  8: a
 6079:  9: a
 6080: 10: a
 6081: 11: a
 6082: 12: a
 6083: 13: a
 6084: 14: a
 6085: 
 6086: "(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(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
 6087: Capturing subpattern count = 101
 6088: No options
 6089: First char = 'a'
 6090: Need char = 'a'
 6091:     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 6092: Matched, but too many substrings
 6093:  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 6094:  1: a
 6095:  2: a
 6096:  3: a
 6097:  4: a
 6098:  5: a
 6099:  6: a
 6100:  7: a
 6101:  8: a
 6102:  9: a
 6103: 10: a
 6104: 11: a
 6105: 12: a
 6106: 13: a
 6107: 14: a
 6108: 
 6109: /[^()]*(?:\((?R)\)[^()]*)*/I
 6110: Capturing subpattern count = 0
 6111: No options
 6112: No first char
 6113: No need char
 6114:     (this(and)that
 6115:  0: 
 6116:     (this(and)that)
 6117:  0: (this(and)that)
 6118:     (this(and)that)stuff
 6119:  0: (this(and)that)stuff
 6120: 
 6121: /[^()]*(?:\((?>(?R))\)[^()]*)*/I
 6122: Capturing subpattern count = 0
 6123: No options
 6124: No first char
 6125: No need char
 6126:     (this(and)that
 6127:  0: 
 6128:     (this(and)that)
 6129:  0: (this(and)that)
 6130: 
 6131: /[^()]*(?:\((?R)\))*[^()]*/I
 6132: Capturing subpattern count = 0
 6133: No options
 6134: No first char
 6135: No need char
 6136:     (this(and)that
 6137:  0: 
 6138:     (this(and)that)
 6139:  0: (this(and)that)
 6140: 
 6141: /(?:\((?R)\))*[^()]*/I
 6142: Capturing subpattern count = 0
 6143: No options
 6144: No first char
 6145: No need char
 6146:     (this(and)that
 6147:  0: 
 6148:     (this(and)that)
 6149:  0: 
 6150:     ((this))
 6151:  0: ((this))
 6152: 
 6153: /(?:\((?R)\))|[^()]*/I
 6154: Capturing subpattern count = 0
 6155: No options
 6156: No first char
 6157: No need char
 6158:     (this(and)that
 6159:  0: 
 6160:     (this(and)that)
 6161:  0: 
 6162:     (this)
 6163:  0: (this)
 6164:     ((this))
 6165:  0: ((this))
 6166: 
 6167: /a(b)c/PN
 6168:     abc
 6169: Matched with REG_NOSUB
 6170: 
 6171: /a(?P<name>b)c/PN
 6172:     abc
 6173: Matched with REG_NOSUB
 6174: 
 6175: /\x{100}/I
 6176: Failed: character value in \x{...} sequence is too large at offset 6
 6177: 
 6178: /\x{0000ff}/I
 6179: Capturing subpattern count = 0
 6180: No options
 6181: First char = 255
 6182: No need char
 6183: 
 6184: /^((?P<A>a1)|(?P<A>a2)b)/I
 6185: Failed: two named subpatterns have the same name at offset 17
 6186: 
 6187: /^((?P<A>a1)|(?P<A>a2)b)/IJ
 6188: Capturing subpattern count = 3
 6189: Named capturing subpatterns:
 6190:   A   2
 6191:   A   3
 6192: Options: anchored dupnames
 6193: No first char
 6194: No need char
 6195:     a1b\CA
 6196:  0: a1
 6197:  1: a1
 6198:  2: a1
 6199:   C a1 (2) A
 6200:     a2b\CA
 6201:  0: a2b
 6202:  1: a2b
 6203:  2: <unset>
 6204:  3: a2
 6205:   C a2 (2) A
 6206:     ** Failers
 6207: No match
 6208:     a1b\CZ\CA
 6209: no parentheses with name "Z"
 6210:  0: a1
 6211:  1: a1
 6212:  2: a1
 6213: copy substring Z failed -7
 6214:   C a1 (2) A
 6215: 
 6216: /^(?P<A>a)(?P<A>b)/IJ
 6217: Capturing subpattern count = 2
 6218: Named capturing subpatterns:
 6219:   A   1
 6220:   A   2
 6221: Options: anchored dupnames
 6222: No first char
 6223: No need char
 6224:     ab\CA
 6225:  0: ab
 6226:  1: a
 6227:  2: b
 6228:   C a (1) A
 6229: 
 6230: /^(?P<A>a)(?P<A>b)|cd/IJ
 6231: Capturing subpattern count = 2
 6232: Named capturing subpatterns:
 6233:   A   1
 6234:   A   2
 6235: Options: dupnames
 6236: No first char
 6237: No need char
 6238:     ab\CA
 6239:  0: ab
 6240:  1: a
 6241:  2: b
 6242:   C a (1) A
 6243:     cd\CA
 6244:  0: cd
 6245: copy substring A failed -7
 6246: 
 6247: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
 6248: Capturing subpattern count = 4
 6249: Named capturing subpatterns:
 6250:   A   1
 6251:   A   2
 6252:   A   3
 6253:   A   4
 6254: Options: dupnames
 6255: No first char
 6256: No need char
 6257:     cdefgh\CA
 6258:  0: cdefgh
 6259:  1: <unset>
 6260:  2: <unset>
 6261:  3: ef
 6262:  4: gh
 6263:   C ef (2) A
 6264: 
 6265: /^((?P<A>a1)|(?P<A>a2)b)/IJ
 6266: Capturing subpattern count = 3
 6267: Named capturing subpatterns:
 6268:   A   2
 6269:   A   3
 6270: Options: anchored dupnames
 6271: No first char
 6272: No need char
 6273:     a1b\GA
 6274:  0: a1
 6275:  1: a1
 6276:  2: a1
 6277:   G a1 (2) A
 6278:     a2b\GA
 6279:  0: a2b
 6280:  1: a2b
 6281:  2: <unset>
 6282:  3: a2
 6283:   G a2 (2) A
 6284:     ** Failers
 6285: No match
 6286:     a1b\GZ\GA
 6287: no parentheses with name "Z"
 6288:  0: a1
 6289:  1: a1
 6290:  2: a1
 6291: copy substring Z failed -7
 6292:   G a1 (2) A
 6293: 
 6294: /^(?P<A>a)(?P<A>b)/IJ
 6295: Capturing subpattern count = 2
 6296: Named capturing subpatterns:
 6297:   A   1
 6298:   A   2
 6299: Options: anchored dupnames
 6300: No first char
 6301: No need char
 6302:     ab\GA
 6303:  0: ab
 6304:  1: a
 6305:  2: b
 6306:   G a (1) A
 6307: 
 6308: /^(?P<A>a)(?P<A>b)|cd/IJ
 6309: Capturing subpattern count = 2
 6310: Named capturing subpatterns:
 6311:   A   1
 6312:   A   2
 6313: Options: dupnames
 6314: No first char
 6315: No need char
 6316:     ab\GA
 6317:  0: ab
 6318:  1: a
 6319:  2: b
 6320:   G a (1) A
 6321:     cd\GA
 6322:  0: cd
 6323: copy substring A failed -7
 6324: 
 6325: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
 6326: Capturing subpattern count = 4
 6327: Named capturing subpatterns:
 6328:   A   1
 6329:   A   2
 6330:   A   3
 6331:   A   4
 6332: Options: dupnames
 6333: No first char
 6334: No need char
 6335:     cdefgh\GA
 6336:  0: cdefgh
 6337:  1: <unset>
 6338:  2: <unset>
 6339:  3: ef
 6340:  4: gh
 6341:   G ef (2) A
 6342: 
 6343: /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
 6344: Capturing subpattern count = 3
 6345: Named capturing subpatterns:
 6346:   A   2
 6347:   A   3
 6348: Options: anchored dupnames
 6349: Duplicate name status changes
 6350: No first char
 6351: No need char
 6352:     a1b\CA
 6353:  0: a1
 6354:  1: a1
 6355:  2: a1
 6356:   C a1 (2) A
 6357:     a2b\CA
 6358:  0: a2b
 6359:  1: a2b
 6360:  2: <unset>
 6361:  3: a2
 6362:   C a2 (2) A
 6363: 
 6364: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
 6365: Failed: two named subpatterns have the same name at offset 37
 6366: 
 6367: / In this next test, J is not set at the outer level; consequently it isn't
 6368: set in the pattern's options; consequently pcre_get_named_substring() produces
 6369: a random value. /Ix
 6370: Capturing subpattern count = 1
 6371: Options: extended
 6372: First char = 'I'
 6373: Need char = 'e'
 6374: 
 6375: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
 6376: Capturing subpattern count = 4
 6377: Named capturing subpatterns:
 6378:   A   1
 6379:   B   2
 6380:   B   3
 6381:   C   4
 6382: Options: anchored
 6383: Duplicate name status changes
 6384: No first char
 6385: No need char
 6386:     a bc d\CA\CB\CC
 6387:  0: a bc d
 6388:  1: a
 6389:  2: b
 6390:  3: c
 6391:  4: d
 6392:   C a (1) A
 6393:   C b (1) B
 6394:   C d (1) C
 6395: 
 6396: /^(?P<A>a)?(?(A)a|b)/I
 6397: Capturing subpattern count = 1
 6398: Named capturing subpatterns:
 6399:   A   1
 6400: Options: anchored
 6401: No first char
 6402: No need char
 6403:     aabc
 6404:  0: aa
 6405:  1: a
 6406:     bc
 6407:  0: b
 6408:     ** Failers
 6409: No match
 6410:     abc
 6411: No match
 6412: 
 6413: /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
 6414: Capturing subpattern count = 1
 6415: Named capturing subpatterns:
 6416:   ZZ   1
 6417: No options
 6418: No first char
 6419: Need char = 'X'
 6420:     bXaX
 6421:  0: bXaX
 6422:  1: X
 6423: 
 6424: /(?:(?(2y)a|b)(X))+/I
 6425: Failed: reference to non-existent subpattern at offset 9
 6426: 
 6427: /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
 6428: Failed: reference to non-existent subpattern at offset 9
 6429: 
 6430: /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
 6431: Capturing subpattern count = 1
 6432: Named capturing subpatterns:
 6433:   ZZ   1
 6434: No options
 6435: No first char
 6436: Need char = 'X'
 6437:     bbXaaX
 6438:  0: bbXaaX
 6439:  1: X
 6440: 
 6441: /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
 6442: Capturing subpattern count = 1
 6443: Named capturing subpatterns:
 6444:   ZZ   1
 6445: No options
 6446: No first char
 6447: Need char = 'X'
 6448:     (b)\\Xa\\X
 6449:  0: (b)\Xa\X
 6450:  1: X
 6451: 
 6452: /(?P<ABC/I
 6453: Failed: syntax error in subpattern name (missing terminator) at offset 7
 6454: 
 6455: /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
 6456: Capturing subpattern count = 1
 6457: Max back reference = 1
 6458: Named capturing subpatterns:
 6459:   A   1
 6460: No options
 6461: No first char
 6462: No need char
 6463:     bXXaYYaY
 6464:  0: bXXaYYaY
 6465:  1: Y
 6466:     bXYaXXaX
 6467:  0: bX
 6468:  1: X
 6469: 
 6470: /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
 6471: Capturing subpattern count = 10
 6472: Max back reference = 10
 6473: Named capturing subpatterns:
 6474:   A  10
 6475: No options
 6476: No first char
 6477: No need char
 6478:     bXXaYYaY
 6479:  0: bXXaYYaY
 6480:  1: 
 6481:  2: 
 6482:  3: 
 6483:  4: 
 6484:  5: 
 6485:  6: 
 6486:  7: 
 6487:  8: 
 6488:  9: 
 6489: 10: Y
 6490: 
 6491: /\777/I
 6492: Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3
 6493: 
 6494: /\s*,\s*/IS
 6495: Capturing subpattern count = 0
 6496: No options
 6497: No first char
 6498: Need char = ','
 6499: Subject length lower bound = 1
 6500: Starting byte set: \x09 \x0a \x0c \x0d \x20 , 
 6501:     \x0b,\x0b
 6502:  0: ,
 6503:     \x0c,\x0d
 6504:  0: \x0c,\x0d
 6505: 
 6506: /^abc/Im
 6507: Capturing subpattern count = 0
 6508: Options: multiline
 6509: First char at start or follows newline
 6510: Need char = 'c'
 6511:     xyz\nabc
 6512:  0: abc
 6513:     xyz\nabc\<lf>
 6514:  0: abc
 6515:     xyz\r\nabc\<lf>
 6516:  0: abc
 6517:     xyz\rabc\<cr>
 6518:  0: abc
 6519:     xyz\r\nabc\<crlf>
 6520:  0: abc
 6521:     ** Failers
 6522: No match
 6523:     xyz\nabc\<cr>
 6524: No match
 6525:     xyz\r\nabc\<cr>
 6526: No match
 6527:     xyz\nabc\<crlf>
 6528: No match
 6529:     xyz\rabc\<crlf>
 6530: No match
 6531:     xyz\rabc\<lf>
 6532: No match
 6533: 
 6534: /abc$/Im<lf>
 6535: Capturing subpattern count = 0
 6536: Options: multiline
 6537: Forced newline sequence: LF
 6538: First char = 'a'
 6539: Need char = 'c'
 6540:     xyzabc
 6541:  0: abc
 6542:     xyzabc\n
 6543:  0: abc
 6544:     xyzabc\npqr
 6545:  0: abc
 6546:     xyzabc\r\<cr>
 6547:  0: abc
 6548:     xyzabc\rpqr\<cr>
 6549:  0: abc
 6550:     xyzabc\r\n\<crlf>
 6551:  0: abc
 6552:     xyzabc\r\npqr\<crlf>
 6553:  0: abc
 6554:     ** Failers
 6555: No match
 6556:     xyzabc\r
 6557: No match
 6558:     xyzabc\rpqr
 6559: No match
 6560:     xyzabc\r\n
 6561: No match
 6562:     xyzabc\r\npqr
 6563: No match
 6564: 
 6565: /^abc/Im<cr>
 6566: Capturing subpattern count = 0
 6567: Options: multiline
 6568: Forced newline sequence: CR
 6569: First char at start or follows newline
 6570: Need char = 'c'
 6571:     xyz\rabcdef
 6572:  0: abc
 6573:     xyz\nabcdef\<lf>
 6574:  0: abc
 6575:     ** Failers
 6576: No match
 6577:     xyz\nabcdef
 6578: No match
 6579: 
 6580: /^abc/Im<lf>
 6581: Capturing subpattern count = 0
 6582: Options: multiline
 6583: Forced newline sequence: LF
 6584: First char at start or follows newline
 6585: Need char = 'c'
 6586:     xyz\nabcdef
 6587:  0: abc
 6588:     xyz\rabcdef\<cr>
 6589:  0: abc
 6590:     ** Failers
 6591: No match
 6592:     xyz\rabcdef
 6593: No match
 6594: 
 6595: /^abc/Im<crlf>
 6596: Capturing subpattern count = 0
 6597: Options: multiline
 6598: Forced newline sequence: CRLF
 6599: First char at start or follows newline
 6600: Need char = 'c'
 6601:     xyz\r\nabcdef
 6602:  0: abc
 6603:     xyz\rabcdef\<cr>
 6604:  0: abc
 6605:     ** Failers
 6606: No match
 6607:     xyz\rabcdef
 6608: No match
 6609: 
 6610: /^abc/Im<bad>
 6611: Unknown newline type at: <bad>
 6612: 
 6613: 
 6614: /abc/I
 6615: Capturing subpattern count = 0
 6616: No options
 6617: First char = 'a'
 6618: Need char = 'c'
 6619:     xyz\rabc\<bad>
 6620: Unknown newline type at: <bad>
 6621:     abc
 6622:  0: abc
 6623: 
 6624: /.*/I<lf>
 6625: Capturing subpattern count = 0
 6626: Options:
 6627: Forced newline sequence: LF
 6628: First char at start or follows newline
 6629: No need char
 6630:     abc\ndef
 6631:  0: abc
 6632:     abc\rdef
 6633:  0: abc\x0ddef
 6634:     abc\r\ndef
 6635:  0: abc\x0d
 6636:     \<cr>abc\ndef
 6637:  0: abc\x0adef
 6638:     \<cr>abc\rdef
 6639:  0: abc
 6640:     \<cr>abc\r\ndef
 6641:  0: abc
 6642:     \<crlf>abc\ndef
 6643:  0: abc\x0adef
 6644:     \<crlf>abc\rdef
 6645:  0: abc\x0ddef
 6646:     \<crlf>abc\r\ndef
 6647:  0: abc
 6648: 
 6649: /\w+(.)(.)?def/Is
 6650: Capturing subpattern count = 2
 6651: Options: dotall
 6652: No first char
 6653: Need char = 'f'
 6654:     abc\ndef
 6655:  0: abc\x0adef
 6656:  1: \x0a
 6657:     abc\rdef
 6658:  0: abc\x0ddef
 6659:  1: \x0d
 6660:     abc\r\ndef
 6661:  0: abc\x0d\x0adef
 6662:  1: \x0d
 6663:  2: \x0a
 6664: 
 6665: +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
 6666: Capturing subpattern count = 1
 6667: No options
 6668: No first char
 6669: No need char
 6670:    /* this is a C style comment */\M
 6671: Minimum match() limit = 120
 6672: Minimum match() recursion limit = 6
 6673:  0: /* this is a C style comment */
 6674:  1: /* this is a C style comment */
 6675: 
 6676: /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
 6677: Capturing subpattern count = 1
 6678: Named capturing subpatterns:
 6679:   B   1
 6680: No options
 6681: No first char
 6682: Need char = '.'
 6683: 
 6684: /()()()()()()()()()()()()()()()()()()()()
 6685:  ()()()()()()()()()()()()()()()()()()()()
 6686:  ()()()()()()()()()()()()()()()()()()()()
 6687:  ()()()()()()()()()()()()()()()()()()()()
 6688:  ()()()()()()()()()()()()()()()()()()()()
 6689:  (.(.))/Ix
 6690: Capturing subpattern count = 102
 6691: Options: extended
 6692: No first char
 6693: No need char
 6694:     XY\O400
 6695:  0: XY
 6696:  1: 
 6697:  2: 
 6698:  3: 
 6699:  4: 
 6700:  5: 
 6701:  6: 
 6702:  7: 
 6703:  8: 
 6704:  9: 
 6705: 10: 
 6706: 11: 
 6707: 12: 
 6708: 13: 
 6709: 14: 
 6710: 15: 
 6711: 16: 
 6712: 17: 
 6713: 18: 
 6714: 19: 
 6715: 20: 
 6716: 21: 
 6717: 22: 
 6718: 23: 
 6719: 24: 
 6720: 25: 
 6721: 26: 
 6722: 27: 
 6723: 28: 
 6724: 29: 
 6725: 30: 
 6726: 31: 
 6727: 32: 
 6728: 33: 
 6729: 34: 
 6730: 35: 
 6731: 36: 
 6732: 37: 
 6733: 38: 
 6734: 39: 
 6735: 40: 
 6736: 41: 
 6737: 42: 
 6738: 43: 
 6739: 44: 
 6740: 45: 
 6741: 46: 
 6742: 47: 
 6743: 48: 
 6744: 49: 
 6745: 50: 
 6746: 51: 
 6747: 52: 
 6748: 53: 
 6749: 54: 
 6750: 55: 
 6751: 56: 
 6752: 57: 
 6753: 58: 
 6754: 59: 
 6755: 60: 
 6756: 61: 
 6757: 62: 
 6758: 63: 
 6759: 64: 
 6760: 65: 
 6761: 66: 
 6762: 67: 
 6763: 68: 
 6764: 69: 
 6765: 70: 
 6766: 71: 
 6767: 72: 
 6768: 73: 
 6769: 74: 
 6770: 75: 
 6771: 76: 
 6772: 77: 
 6773: 78: 
 6774: 79: 
 6775: 80: 
 6776: 81: 
 6777: 82: 
 6778: 83: 
 6779: 84: 
 6780: 85: 
 6781: 86: 
 6782: 87: 
 6783: 88: 
 6784: 89: 
 6785: 90: 
 6786: 91: 
 6787: 92: 
 6788: 93: 
 6789: 94: 
 6790: 95: 
 6791: 96: 
 6792: 97: 
 6793: 98: 
 6794: 99: 
 6795: 100: 
 6796: 101: XY
 6797: 102: Y
 6798: 
 6799: /(a*b|(?i:c*(?-i)d))/IS
 6800: Capturing subpattern count = 1
 6801: No options
 6802: No first char
 6803: No need char
 6804: Subject length lower bound = 1
 6805: Starting byte set: C a b c d 
 6806: 
 6807: /()[ab]xyz/IS
 6808: Capturing subpattern count = 1
 6809: No options
 6810: No first char
 6811: Need char = 'z'
 6812: Subject length lower bound = 4
 6813: Starting byte set: a b 
 6814: 
 6815: /(|)[ab]xyz/IS
 6816: Capturing subpattern count = 1
 6817: No options
 6818: No first char
 6819: Need char = 'z'
 6820: Subject length lower bound = 4
 6821: Starting byte set: a b 
 6822: 
 6823: /(|c)[ab]xyz/IS
 6824: Capturing subpattern count = 1
 6825: No options
 6826: No first char
 6827: Need char = 'z'
 6828: Subject length lower bound = 4
 6829: Starting byte set: a b c 
 6830: 
 6831: /(|c?)[ab]xyz/IS
 6832: Capturing subpattern count = 1
 6833: No options
 6834: No first char
 6835: Need char = 'z'
 6836: Subject length lower bound = 4
 6837: Starting byte set: a b c 
 6838: 
 6839: /(d?|c?)[ab]xyz/IS
 6840: Capturing subpattern count = 1
 6841: No options
 6842: No first char
 6843: Need char = 'z'
 6844: Subject length lower bound = 4
 6845: Starting byte set: a b c d 
 6846: 
 6847: /(d?|c)[ab]xyz/IS
 6848: Capturing subpattern count = 1
 6849: No options
 6850: No first char
 6851: Need char = 'z'
 6852: Subject length lower bound = 4
 6853: Starting byte set: a b c d 
 6854: 
 6855: /^a*b\d/DZ
 6856: ------------------------------------------------------------------
 6857:         Bra
 6858:         ^
 6859:         a*+
 6860:         b
 6861:         \d
 6862:         Ket
 6863:         End
 6864: ------------------------------------------------------------------
 6865: Capturing subpattern count = 0
 6866: Options: anchored
 6867: No first char
 6868: Need char = 'b'
 6869: 
 6870: /^a*+b\d/DZ
 6871: ------------------------------------------------------------------
 6872:         Bra
 6873:         ^
 6874:         a*+
 6875:         b
 6876:         \d
 6877:         Ket
 6878:         End
 6879: ------------------------------------------------------------------
 6880: Capturing subpattern count = 0
 6881: Options: anchored
 6882: No first char
 6883: Need char = 'b'
 6884: 
 6885: /^a*?b\d/DZ
 6886: ------------------------------------------------------------------
 6887:         Bra
 6888:         ^
 6889:         a*+
 6890:         b
 6891:         \d
 6892:         Ket
 6893:         End
 6894: ------------------------------------------------------------------
 6895: Capturing subpattern count = 0
 6896: Options: anchored
 6897: No first char
 6898: Need char = 'b'
 6899: 
 6900: /^a+A\d/DZ
 6901: ------------------------------------------------------------------
 6902:         Bra
 6903:         ^
 6904:         a++
 6905:         A
 6906:         \d
 6907:         Ket
 6908:         End
 6909: ------------------------------------------------------------------
 6910: Capturing subpattern count = 0
 6911: Options: anchored
 6912: No first char
 6913: Need char = 'A'
 6914:     aaaA5
 6915:  0: aaaA5
 6916:     ** Failers
 6917: No match
 6918:     aaaa5
 6919: No match
 6920: 
 6921: /^a*A\d/IiDZ
 6922: ------------------------------------------------------------------
 6923:         Bra
 6924:         ^
 6925:      /i a*
 6926:      /i A
 6927:         \d
 6928:         Ket
 6929:         End
 6930: ------------------------------------------------------------------
 6931: Capturing subpattern count = 0
 6932: Options: anchored caseless
 6933: No first char
 6934: Need char = 'A' (caseless)
 6935:     aaaA5
 6936:  0: aaaA5
 6937:     aaaa5
 6938:  0: aaaa5
 6939: 
 6940: /(a*|b*)[cd]/IS
 6941: Capturing subpattern count = 1
 6942: No options
 6943: No first char
 6944: No need char
 6945: Subject length lower bound = 1
 6946: Starting byte set: a b c d 
 6947: 
 6948: /(a+|b*)[cd]/IS
 6949: Capturing subpattern count = 1
 6950: No options
 6951: No first char
 6952: No need char
 6953: Subject length lower bound = 1
 6954: Starting byte set: a b c d 
 6955: 
 6956: /(a*|b+)[cd]/IS
 6957: Capturing subpattern count = 1
 6958: No options
 6959: No first char
 6960: No need char
 6961: Subject length lower bound = 1
 6962: Starting byte set: a b c d 
 6963: 
 6964: /(a+|b+)[cd]/IS
 6965: Capturing subpattern count = 1
 6966: No options
 6967: No first char
 6968: No need char
 6969: Subject length lower bound = 2
 6970: Starting byte set: a b 
 6971: 
 6972: /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
 6973:  ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
 6974:  (((
 6975:  a
 6976:  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
 6977:  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
 6978:  )))
 6979: /Ix
 6980: Capturing subpattern count = 203
 6981: Options: extended
 6982: First char = 'a'
 6983: No need char
 6984:   large nest
 6985: Matched, but too many substrings
 6986:  0: a
 6987:  1: a
 6988:  2: a
 6989:  3: a
 6990:  4: a
 6991:  5: a
 6992:  6: a
 6993:  7: a
 6994:  8: a
 6995:  9: a
 6996: 10: a
 6997: 11: a
 6998: 12: a
 6999: 13: a
 7000: 14: a
 7001: 
 7002: /a*\d/BZ
 7003: ------------------------------------------------------------------
 7004:         Bra
 7005:         a*+
 7006:         \d
 7007:         Ket
 7008:         End
 7009: ------------------------------------------------------------------
 7010: 
 7011: /a*\D/BZ
 7012: ------------------------------------------------------------------
 7013:         Bra
 7014:         a*
 7015:         \D
 7016:         Ket
 7017:         End
 7018: ------------------------------------------------------------------
 7019: 
 7020: /0*\d/BZ
 7021: ------------------------------------------------------------------
 7022:         Bra
 7023:         0*
 7024:         \d
 7025:         Ket
 7026:         End
 7027: ------------------------------------------------------------------
 7028: 
 7029: /0*\D/BZ
 7030: ------------------------------------------------------------------
 7031:         Bra
 7032:         0*+
 7033:         \D
 7034:         Ket
 7035:         End
 7036: ------------------------------------------------------------------
 7037: 
 7038: /a*\s/BZ
 7039: ------------------------------------------------------------------
 7040:         Bra
 7041:         a*+
 7042:         \s
 7043:         Ket
 7044:         End
 7045: ------------------------------------------------------------------
 7046: 
 7047: /a*\S/BZ
 7048: ------------------------------------------------------------------
 7049:         Bra
 7050:         a*
 7051:         \S
 7052:         Ket
 7053:         End
 7054: ------------------------------------------------------------------
 7055: 
 7056: / *\s/BZ
 7057: ------------------------------------------------------------------
 7058:         Bra
 7059:          *
 7060:         \s
 7061:         Ket
 7062:         End
 7063: ------------------------------------------------------------------
 7064: 
 7065: / *\S/BZ
 7066: ------------------------------------------------------------------
 7067:         Bra
 7068:          *+
 7069:         \S
 7070:         Ket
 7071:         End
 7072: ------------------------------------------------------------------
 7073: 
 7074: /a*\w/BZ
 7075: ------------------------------------------------------------------
 7076:         Bra
 7077:         a*
 7078:         \w
 7079:         Ket
 7080:         End
 7081: ------------------------------------------------------------------
 7082: 
 7083: /a*\W/BZ
 7084: ------------------------------------------------------------------
 7085:         Bra
 7086:         a*+
 7087:         \W
 7088:         Ket
 7089:         End
 7090: ------------------------------------------------------------------
 7091: 
 7092: /=*\w/BZ
 7093: ------------------------------------------------------------------
 7094:         Bra
 7095:         =*+
 7096:         \w
 7097:         Ket
 7098:         End
 7099: ------------------------------------------------------------------
 7100: 
 7101: /=*\W/BZ
 7102: ------------------------------------------------------------------
 7103:         Bra
 7104:         =*
 7105:         \W
 7106:         Ket
 7107:         End
 7108: ------------------------------------------------------------------
 7109: 
 7110: /\d*a/BZ
 7111: ------------------------------------------------------------------
 7112:         Bra
 7113:         \d*+
 7114:         a
 7115:         Ket
 7116:         End
 7117: ------------------------------------------------------------------
 7118: 
 7119: /\d*2/BZ
 7120: ------------------------------------------------------------------
 7121:         Bra
 7122:         \d*
 7123:         2
 7124:         Ket
 7125:         End
 7126: ------------------------------------------------------------------
 7127: 
 7128: /\d*\d/BZ
 7129: ------------------------------------------------------------------
 7130:         Bra
 7131:         \d*
 7132:         \d
 7133:         Ket
 7134:         End
 7135: ------------------------------------------------------------------
 7136: 
 7137: /\d*\D/BZ
 7138: ------------------------------------------------------------------
 7139:         Bra
 7140:         \d*+
 7141:         \D
 7142:         Ket
 7143:         End
 7144: ------------------------------------------------------------------
 7145: 
 7146: /\d*\s/BZ
 7147: ------------------------------------------------------------------
 7148:         Bra
 7149:         \d*+
 7150:         \s
 7151:         Ket
 7152:         End
 7153: ------------------------------------------------------------------
 7154: 
 7155: /\d*\S/BZ
 7156: ------------------------------------------------------------------
 7157:         Bra
 7158:         \d*
 7159:         \S
 7160:         Ket
 7161:         End
 7162: ------------------------------------------------------------------
 7163: 
 7164: /\d*\w/BZ
 7165: ------------------------------------------------------------------
 7166:         Bra
 7167:         \d*
 7168:         \w
 7169:         Ket
 7170:         End
 7171: ------------------------------------------------------------------
 7172: 
 7173: /\d*\W/BZ
 7174: ------------------------------------------------------------------
 7175:         Bra
 7176:         \d*+
 7177:         \W
 7178:         Ket
 7179:         End
 7180: ------------------------------------------------------------------
 7181: 
 7182: /\D*a/BZ
 7183: ------------------------------------------------------------------
 7184:         Bra
 7185:         \D*
 7186:         a
 7187:         Ket
 7188:         End
 7189: ------------------------------------------------------------------
 7190: 
 7191: /\D*2/BZ
 7192: ------------------------------------------------------------------
 7193:         Bra
 7194:         \D*+
 7195:         2
 7196:         Ket
 7197:         End
 7198: ------------------------------------------------------------------
 7199: 
 7200: /\D*\d/BZ
 7201: ------------------------------------------------------------------
 7202:         Bra
 7203:         \D*+
 7204:         \d
 7205:         Ket
 7206:         End
 7207: ------------------------------------------------------------------
 7208: 
 7209: /\D*\D/BZ
 7210: ------------------------------------------------------------------
 7211:         Bra
 7212:         \D*
 7213:         \D
 7214:         Ket
 7215:         End
 7216: ------------------------------------------------------------------
 7217: 
 7218: /\D*\s/BZ
 7219: ------------------------------------------------------------------
 7220:         Bra
 7221:         \D*
 7222:         \s
 7223:         Ket
 7224:         End
 7225: ------------------------------------------------------------------
 7226: 
 7227: /\D*\S/BZ
 7228: ------------------------------------------------------------------
 7229:         Bra
 7230:         \D*
 7231:         \S
 7232:         Ket
 7233:         End
 7234: ------------------------------------------------------------------
 7235: 
 7236: /\D*\w/BZ
 7237: ------------------------------------------------------------------
 7238:         Bra
 7239:         \D*
 7240:         \w
 7241:         Ket
 7242:         End
 7243: ------------------------------------------------------------------
 7244: 
 7245: /\D*\W/BZ
 7246: ------------------------------------------------------------------
 7247:         Bra
 7248:         \D*
 7249:         \W
 7250:         Ket
 7251:         End
 7252: ------------------------------------------------------------------
 7253: 
 7254: /\s*a/BZ
 7255: ------------------------------------------------------------------
 7256:         Bra
 7257:         \s*+
 7258:         a
 7259:         Ket
 7260:         End
 7261: ------------------------------------------------------------------
 7262: 
 7263: /\s*2/BZ
 7264: ------------------------------------------------------------------
 7265:         Bra
 7266:         \s*+
 7267:         2
 7268:         Ket
 7269:         End
 7270: ------------------------------------------------------------------
 7271: 
 7272: /\s*\d/BZ
 7273: ------------------------------------------------------------------
 7274:         Bra
 7275:         \s*+
 7276:         \d
 7277:         Ket
 7278:         End
 7279: ------------------------------------------------------------------
 7280: 
 7281: /\s*\D/BZ
 7282: ------------------------------------------------------------------
 7283:         Bra
 7284:         \s*
 7285:         \D
 7286:         Ket
 7287:         End
 7288: ------------------------------------------------------------------
 7289: 
 7290: /\s*\s/BZ
 7291: ------------------------------------------------------------------
 7292:         Bra
 7293:         \s*
 7294:         \s
 7295:         Ket
 7296:         End
 7297: ------------------------------------------------------------------
 7298: 
 7299: /\s*\S/BZ
 7300: ------------------------------------------------------------------
 7301:         Bra
 7302:         \s*+
 7303:         \S
 7304:         Ket
 7305:         End
 7306: ------------------------------------------------------------------
 7307: 
 7308: /\s*\w/BZ
 7309: ------------------------------------------------------------------
 7310:         Bra
 7311:         \s*+
 7312:         \w
 7313:         Ket
 7314:         End
 7315: ------------------------------------------------------------------
 7316: 
 7317: /\s*\W/BZ
 7318: ------------------------------------------------------------------
 7319:         Bra
 7320:         \s*
 7321:         \W
 7322:         Ket
 7323:         End
 7324: ------------------------------------------------------------------
 7325: 
 7326: /\S*a/BZ
 7327: ------------------------------------------------------------------
 7328:         Bra
 7329:         \S*
 7330:         a
 7331:         Ket
 7332:         End
 7333: ------------------------------------------------------------------
 7334: 
 7335: /\S*2/BZ
 7336: ------------------------------------------------------------------
 7337:         Bra
 7338:         \S*
 7339:         2
 7340:         Ket
 7341:         End
 7342: ------------------------------------------------------------------
 7343: 
 7344: /\S*\d/BZ
 7345: ------------------------------------------------------------------
 7346:         Bra
 7347:         \S*
 7348:         \d
 7349:         Ket
 7350:         End
 7351: ------------------------------------------------------------------
 7352: 
 7353: /\S*\D/BZ
 7354: ------------------------------------------------------------------
 7355:         Bra
 7356:         \S*
 7357:         \D
 7358:         Ket
 7359:         End
 7360: ------------------------------------------------------------------
 7361: 
 7362: /\S*\s/BZ
 7363: ------------------------------------------------------------------
 7364:         Bra
 7365:         \S*+
 7366:         \s
 7367:         Ket
 7368:         End
 7369: ------------------------------------------------------------------
 7370: 
 7371: /\S*\S/BZ
 7372: ------------------------------------------------------------------
 7373:         Bra
 7374:         \S*
 7375:         \S
 7376:         Ket
 7377:         End
 7378: ------------------------------------------------------------------
 7379: 
 7380: /\S*\w/BZ
 7381: ------------------------------------------------------------------
 7382:         Bra
 7383:         \S*
 7384:         \w
 7385:         Ket
 7386:         End
 7387: ------------------------------------------------------------------
 7388: 
 7389: /\S*\W/BZ
 7390: ------------------------------------------------------------------
 7391:         Bra
 7392:         \S*
 7393:         \W
 7394:         Ket
 7395:         End
 7396: ------------------------------------------------------------------
 7397: 
 7398: /\w*a/BZ
 7399: ------------------------------------------------------------------
 7400:         Bra
 7401:         \w*
 7402:         a
 7403:         Ket
 7404:         End
 7405: ------------------------------------------------------------------
 7406: 
 7407: /\w*2/BZ
 7408: ------------------------------------------------------------------
 7409:         Bra
 7410:         \w*
 7411:         2
 7412:         Ket
 7413:         End
 7414: ------------------------------------------------------------------
 7415: 
 7416: /\w*\d/BZ
 7417: ------------------------------------------------------------------
 7418:         Bra
 7419:         \w*
 7420:         \d
 7421:         Ket
 7422:         End
 7423: ------------------------------------------------------------------
 7424: 
 7425: /\w*\D/BZ
 7426: ------------------------------------------------------------------
 7427:         Bra
 7428:         \w*
 7429:         \D
 7430:         Ket
 7431:         End
 7432: ------------------------------------------------------------------
 7433: 
 7434: /\w*\s/BZ
 7435: ------------------------------------------------------------------
 7436:         Bra
 7437:         \w*+
 7438:         \s
 7439:         Ket
 7440:         End
 7441: ------------------------------------------------------------------
 7442: 
 7443: /\w*\S/BZ
 7444: ------------------------------------------------------------------
 7445:         Bra
 7446:         \w*
 7447:         \S
 7448:         Ket
 7449:         End
 7450: ------------------------------------------------------------------
 7451: 
 7452: /\w*\w/BZ
 7453: ------------------------------------------------------------------
 7454:         Bra
 7455:         \w*
 7456:         \w
 7457:         Ket
 7458:         End
 7459: ------------------------------------------------------------------
 7460: 
 7461: /\w*\W/BZ
 7462: ------------------------------------------------------------------
 7463:         Bra
 7464:         \w*+
 7465:         \W
 7466:         Ket
 7467:         End
 7468: ------------------------------------------------------------------
 7469: 
 7470: /\W*a/BZ
 7471: ------------------------------------------------------------------
 7472:         Bra
 7473:         \W*+
 7474:         a
 7475:         Ket
 7476:         End
 7477: ------------------------------------------------------------------
 7478: 
 7479: /\W*2/BZ
 7480: ------------------------------------------------------------------
 7481:         Bra
 7482:         \W*+
 7483:         2
 7484:         Ket
 7485:         End
 7486: ------------------------------------------------------------------
 7487: 
 7488: /\W*\d/BZ
 7489: ------------------------------------------------------------------
 7490:         Bra
 7491:         \W*+
 7492:         \d
 7493:         Ket
 7494:         End
 7495: ------------------------------------------------------------------
 7496: 
 7497: /\W*\D/BZ
 7498: ------------------------------------------------------------------
 7499:         Bra
 7500:         \W*
 7501:         \D
 7502:         Ket
 7503:         End
 7504: ------------------------------------------------------------------
 7505: 
 7506: /\W*\s/BZ
 7507: ------------------------------------------------------------------
 7508:         Bra
 7509:         \W*
 7510:         \s
 7511:         Ket
 7512:         End
 7513: ------------------------------------------------------------------
 7514: 
 7515: /\W*\S/BZ
 7516: ------------------------------------------------------------------
 7517:         Bra
 7518:         \W*
 7519:         \S
 7520:         Ket
 7521:         End
 7522: ------------------------------------------------------------------
 7523: 
 7524: /\W*\w/BZ
 7525: ------------------------------------------------------------------
 7526:         Bra
 7527:         \W*+
 7528:         \w
 7529:         Ket
 7530:         End
 7531: ------------------------------------------------------------------
 7532: 
 7533: /\W*\W/BZ
 7534: ------------------------------------------------------------------
 7535:         Bra
 7536:         \W*
 7537:         \W
 7538:         Ket
 7539:         End
 7540: ------------------------------------------------------------------
 7541: 
 7542: /[^a]+a/BZ
 7543: ------------------------------------------------------------------
 7544:         Bra
 7545:         [^a]++
 7546:         a
 7547:         Ket
 7548:         End
 7549: ------------------------------------------------------------------
 7550: 
 7551: /[^a]+a/BZi
 7552: ------------------------------------------------------------------
 7553:         Bra
 7554:      /i [^A]++
 7555:      /i a
 7556:         Ket
 7557:         End
 7558: ------------------------------------------------------------------
 7559: 
 7560: /[^a]+A/BZi
 7561: ------------------------------------------------------------------
 7562:         Bra
 7563:      /i [^A]++
 7564:      /i A
 7565:         Ket
 7566:         End
 7567: ------------------------------------------------------------------
 7568: 
 7569: /[^a]+b/BZ
 7570: ------------------------------------------------------------------
 7571:         Bra
 7572:         [^a]+
 7573:         b
 7574:         Ket
 7575:         End
 7576: ------------------------------------------------------------------
 7577: 
 7578: /[^a]+\d/BZ
 7579: ------------------------------------------------------------------
 7580:         Bra
 7581:         [^a]+
 7582:         \d
 7583:         Ket
 7584:         End
 7585: ------------------------------------------------------------------
 7586: 
 7587: /a*[^a]/BZ
 7588: ------------------------------------------------------------------
 7589:         Bra
 7590:         a*
 7591:         [^a]
 7592:         Ket
 7593:         End
 7594: ------------------------------------------------------------------
 7595: 
 7596: /(?P<abc>x)(?P<xyz>y)/I
 7597: Capturing subpattern count = 2
 7598: Named capturing subpatterns:
 7599:   abc   1
 7600:   xyz   2
 7601: No options
 7602: First char = 'x'
 7603: Need char = 'y'
 7604:     xy\Cabc\Cxyz
 7605:  0: xy
 7606:  1: x
 7607:  2: y
 7608:   C x (1) abc
 7609:   C y (1) xyz
 7610: 
 7611: /(?<abc>x)(?'xyz'y)/I
 7612: Capturing subpattern count = 2
 7613: Named capturing subpatterns:
 7614:   abc   1
 7615:   xyz   2
 7616: No options
 7617: First char = 'x'
 7618: Need char = 'y'
 7619:     xy\Cabc\Cxyz
 7620:  0: xy
 7621:  1: x
 7622:  2: y
 7623:   C x (1) abc
 7624:   C y (1) xyz
 7625: 
 7626: /(?<abc'x)(?'xyz'y)/I
 7627: Failed: syntax error in subpattern name (missing terminator) at offset 6
 7628: 
 7629: /(?<abc>x)(?'xyz>y)/I
 7630: Failed: syntax error in subpattern name (missing terminator) at offset 15
 7631: 
 7632: /(?P'abc'x)(?P<xyz>y)/I
 7633: Failed: unrecognized character after (?P at offset 3
 7634: 
 7635: /^(?:(?(ZZ)a|b)(?<ZZ>X))+/
 7636:     bXaX
 7637:  0: bXaX
 7638:  1: X
 7639:     bXbX
 7640:  0: bX
 7641:  1: X
 7642:     ** Failers
 7643: No match
 7644:     aXaX
 7645: No match
 7646:     aXbX
 7647: No match
 7648: 
 7649: /^(?P>abc)(?<abcd>xxx)/
 7650: Failed: reference to non-existent subpattern at offset 8
 7651: 
 7652: /^(?P>abc)(?<abc>x|y)/
 7653:     xx
 7654:  0: xx
 7655:  1: x
 7656:     xy
 7657:  0: xy
 7658:  1: y
 7659:     yy
 7660:  0: yy
 7661:  1: y
 7662:     yx
 7663:  0: yx
 7664:  1: x
 7665: 
 7666: /^(?P>abc)(?P<abc>x|y)/
 7667:     xx
 7668:  0: xx
 7669:  1: x
 7670:     xy
 7671:  0: xy
 7672:  1: y
 7673:     yy
 7674:  0: yy
 7675:  1: y
 7676:     yx
 7677:  0: yx
 7678:  1: x
 7679: 
 7680: /^((?(abc)a|b)(?<abc>x|y))+/
 7681:     bxay
 7682:  0: bxay
 7683:  1: ay
 7684:  2: y
 7685:     bxby
 7686:  0: bx
 7687:  1: bx
 7688:  2: x
 7689:     ** Failers
 7690: No match
 7691:     axby
 7692: No match
 7693: 
 7694: /^(((?P=abc)|X)(?<abc>x|y))+/
 7695:     XxXxxx
 7696:  0: XxXxxx
 7697:  1: xx
 7698:  2: x
 7699:  3: x
 7700:     XxXyyx
 7701:  0: XxXyyx
 7702:  1: yx
 7703:  2: y
 7704:  3: x
 7705:     XxXyxx
 7706:  0: XxXy
 7707:  1: Xy
 7708:  2: X
 7709:  3: y
 7710:     ** Failers
 7711: No match
 7712:     x
 7713: No match
 7714: 
 7715: /^(?1)(abc)/
 7716:     abcabc
 7717:  0: abcabc
 7718:  1: abc
 7719: 
 7720: /^(?:(?:\1|X)(a|b))+/
 7721:     Xaaa
 7722:  0: Xaaa
 7723:  1: a
 7724:     Xaba
 7725:  0: Xa
 7726:  1: a
 7727: 
 7728: /^[\E\Qa\E-\Qz\E]+/BZ
 7729: ------------------------------------------------------------------
 7730:         Bra
 7731:         ^
 7732:         [a-z]+
 7733:         Ket
 7734:         End
 7735: ------------------------------------------------------------------
 7736: 
 7737: /^[a\Q]bc\E]/BZ
 7738: ------------------------------------------------------------------
 7739:         Bra
 7740:         ^
 7741:         [\]a-c]
 7742:         Ket
 7743:         End
 7744: ------------------------------------------------------------------
 7745: 
 7746: /^[a-\Q\E]/BZ
 7747: ------------------------------------------------------------------
 7748:         Bra
 7749:         ^
 7750:         [\-a]
 7751:         Ket
 7752:         End
 7753: ------------------------------------------------------------------
 7754: 
 7755: /^(?P>abc)[()](?<abc>)/BZ
 7756: ------------------------------------------------------------------
 7757:         Bra
 7758:         ^
 7759:         Recurse
 7760:         [()]
 7761:         CBra 1
 7762:         Ket
 7763:         Ket
 7764:         End
 7765: ------------------------------------------------------------------
 7766: 
 7767: /^((?(abc)y)[()](?P<abc>x))+/BZ
 7768: ------------------------------------------------------------------
 7769:         Bra
 7770:         ^
 7771:         CBra 1
 7772:         Cond
 7773:       2 Cond nref
 7774:         y
 7775:         Ket
 7776:         [()]
 7777:         CBra 2
 7778:         x
 7779:         Ket
 7780:         KetRmax
 7781:         Ket
 7782:         End
 7783: ------------------------------------------------------------------
 7784:     (xy)x
 7785:  0: (xy)x
 7786:  1: y)x
 7787:  2: x
 7788: 
 7789: /^(?P>abc)\Q()\E(?<abc>)/BZ
 7790: ------------------------------------------------------------------
 7791:         Bra
 7792:         ^
 7793:         Recurse
 7794:         ()
 7795:         CBra 1
 7796:         Ket
 7797:         Ket
 7798:         End
 7799: ------------------------------------------------------------------
 7800: 
 7801: /^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
 7802: ------------------------------------------------------------------
 7803:         Bra
 7804:         ^
 7805:         Recurse
 7806:         [(\]a]
 7807:         CBra 1
 7808:         Ket
 7809:         Ket
 7810:         End
 7811: ------------------------------------------------------------------
 7812: 
 7813: /^(?P>abc) # this is (a comment)
 7814:   (?<abc>)/BZx
 7815: ------------------------------------------------------------------
 7816:         Bra
 7817:         ^
 7818:         Recurse
 7819:         CBra 1
 7820:         Ket
 7821:         Ket
 7822:         End
 7823: ------------------------------------------------------------------
 7824: 
 7825: /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
 7826: Capturing subpattern count = 4
 7827: Max back reference = 4
 7828: Named capturing subpatterns:
 7829:   four    4
 7830:   one     1
 7831:   three   3
 7832:   two     2
 7833: Options: anchored caseless
 7834: No first char
 7835: No need char
 7836:     1221
 7837:  0: 1221
 7838:  1: 1221
 7839:  2: 1
 7840:     Satan, oscillate my metallic sonatas!
 7841:  0: Satan, oscillate my metallic sonatas!
 7842:  1: <unset>
 7843:  2: <unset>
 7844:  3: Satan, oscillate my metallic sonatas
 7845:  4: S
 7846:     A man, a plan, a canal: Panama!
 7847:  0: A man, a plan, a canal: Panama!
 7848:  1: <unset>
 7849:  2: <unset>
 7850:  3: A man, a plan, a canal: Panama
 7851:  4: A
 7852:     Able was I ere I saw Elba.
 7853:  0: Able was I ere I saw Elba.
 7854:  1: <unset>
 7855:  2: <unset>
 7856:  3: Able was I ere I saw Elba
 7857:  4: A
 7858:     *** Failers
 7859: No match
 7860:     The quick brown fox
 7861: No match
 7862: 
 7863: /(?=(\w+))\1:/I
 7864: Capturing subpattern count = 1
 7865: Max back reference = 1
 7866: No options
 7867: No first char
 7868: Need char = ':'
 7869:     abcd:
 7870:  0: abcd:
 7871:  1: abcd
 7872: 
 7873: /(?=(?'abc'\w+))\k<abc>:/I
 7874: Capturing subpattern count = 1
 7875: Max back reference = 1
 7876: Named capturing subpatterns:
 7877:   abc   1
 7878: No options
 7879: No first char
 7880: Need char = ':'
 7881:     abcd:
 7882:  0: abcd:
 7883:  1: abcd
 7884: 
 7885: /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
 7886:     adaa
 7887:  0: adaa
 7888:  1: a
 7889:  2: d
 7890:     ** Failers
 7891: No match
 7892:     addd
 7893: No match
 7894:     adbb
 7895: No match
 7896: 
 7897: /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
 7898:     bdaa
 7899:  0: bdaa
 7900:  1: b
 7901:  2: d
 7902:     bdab
 7903:  0: bdab
 7904:  1: b
 7905:  2: d
 7906:     ** Failers
 7907: No match
 7908:     bddd
 7909: No match
 7910: 
 7911: /(?(<bc))/
 7912: Failed: malformed number or name after (?( at offset 6
 7913: 
 7914: /(?(''))/
 7915: Failed: assertion expected after (?( at offset 4
 7916: 
 7917: /(?('R')stuff)/
 7918: Failed: reference to non-existent subpattern at offset 7
 7919: 
 7920: /((abc (?(R) (?(R1)1) (?(R2)2) X  |  (?1)  (?2)   (?R) ))) /x
 7921:     abcabc1Xabc2XabcXabcabc
 7922:  0: abcabc1Xabc2XabcX
 7923:  1: abcabc1Xabc2XabcX
 7924:  2: abcabc1Xabc2XabcX
 7925: 
 7926: /(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
 7927:     abcabc1Xabc2XabcXabcabc
 7928:  0: abcabc1Xabc2XabcX
 7929:  1: abcabc1Xabc2XabcX
 7930:  2: abcabc1Xabc2XabcX
 7931: 
 7932: /(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
 7933: Failed: reference to non-existent subpattern at offset 29
 7934: 
 7935: /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
 7936:     abcabc1Xabc2XabcXabcabc
 7937:  0: abcabc1Xabc2XabcX
 7938:  1: abcabc1Xabc2XabcX
 7939:  2: abcabc1Xabc2XabcX
 7940: 
 7941: /^(?(DEFINE) abc | xyz ) /x
 7942: Failed: DEFINE group contains more than one branch at offset 22
 7943: 
 7944: /(?(DEFINE) abc) xyz/xI
 7945: Capturing subpattern count = 0
 7946: Options: extended
 7947: First char = 'x'
 7948: Need char = 'z'
 7949: 
 7950: /(a|)*\d/
 7951:   \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 7952: No match
 7953:   \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
 7954: Matched, but too many substrings
 7955: 
 7956: /^a.b/<lf>
 7957:     a\rb
 7958:  0: a\x0db
 7959:     a\nb\<cr>
 7960:  0: a\x0ab
 7961:     a\x85b\<anycrlf> 
 7962:  0: a\x85b
 7963:     ** Failers
 7964: No match
 7965:     a\nb
 7966: No match
 7967:     a\nb\<any>
 7968: No match
 7969:     a\rb\<cr>
 7970: No match
 7971:     a\rb\<any>
 7972: No match
 7973:     a\x85b\<any> 
 7974: No match
 7975:     a\rb\<anycrlf>
 7976: No match
 7977: 
 7978: /^abc./mgx<any>
 7979:     abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
 7980:  0: abc1
 7981:  0: abc2
 7982:  0: abc3
 7983:  0: abc4
 7984:  0: abc5
 7985:  0: abc6
 7986:  0: abc7
 7987: 
 7988: /abc.$/mgx<any>
 7989:     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
 7990:  0: abc1
 7991:  0: abc2
 7992:  0: abc3
 7993:  0: abc4
 7994:  0: abc5
 7995:  0: abc6
 7996:  0: abc9
 7997: 
 7998: /a/<cr><any>
 7999: 
 8000: /a/<any><crlf>
 8001: Failed: inconsistent NEWLINE options at offset 0
 8002: 
 8003: /^a\Rb/<bsr_unicode>
 8004:     a\nb
 8005:  0: a\x0ab
 8006:     a\rb
 8007:  0: a\x0db
 8008:     a\r\nb
 8009:  0: a\x0d\x0ab
 8010:     a\x0bb
 8011:  0: a\x0bb
 8012:     a\x0cb
 8013:  0: a\x0cb
 8014:     a\x85b
 8015:  0: a\x85b
 8016:     ** Failers
 8017: No match
 8018:     a\n\rb
 8019: No match
 8020: 
 8021: /^a\R*b/<bsr_unicode>
 8022:     ab
 8023:  0: ab
 8024:     a\nb
 8025:  0: a\x0ab
 8026:     a\rb
 8027:  0: a\x0db
 8028:     a\r\nb
 8029:  0: a\x0d\x0ab
 8030:     a\x0bb
 8031:  0: a\x0bb
 8032:     a\x0cb
 8033:  0: a\x0cb
 8034:     a\x85b
 8035:  0: a\x85b
 8036:     a\n\rb
 8037:  0: a\x0a\x0db
 8038:     a\n\r\x85\x0cb
 8039:  0: a\x0a\x0d\x85\x0cb
 8040: 
 8041: /^a\R+b/<bsr_unicode>
 8042:     a\nb
 8043:  0: a\x0ab
 8044:     a\rb
 8045:  0: a\x0db
 8046:     a\r\nb
 8047:  0: a\x0d\x0ab
 8048:     a\x0bb
 8049:  0: a\x0bb
 8050:     a\x0cb
 8051:  0: a\x0cb
 8052:     a\x85b
 8053:  0: a\x85b
 8054:     a\n\rb
 8055:  0: a\x0a\x0db
 8056:     a\n\r\x85\x0cb
 8057:  0: a\x0a\x0d\x85\x0cb
 8058:     ** Failers
 8059: No match
 8060:     ab
 8061: No match
 8062: 
 8063: /^a\R{1,3}b/<bsr_unicode>
 8064:     a\nb
 8065:  0: a\x0ab
 8066:     a\n\rb
 8067:  0: a\x0a\x0db
 8068:     a\n\r\x85b
 8069:  0: a\x0a\x0d\x85b
 8070:     a\r\n\r\nb
 8071:  0: a\x0d\x0a\x0d\x0ab
 8072:     a\r\n\r\n\r\nb
 8073:  0: a\x0d\x0a\x0d\x0a\x0d\x0ab
 8074:     a\n\r\n\rb
 8075:  0: a\x0a\x0d\x0a\x0db
 8076:     a\n\n\r\nb
 8077:  0: a\x0a\x0a\x0d\x0ab
 8078:     ** Failers
 8079: No match
 8080:     a\n\n\n\rb
 8081: No match
 8082:     a\r
 8083: No match
 8084: 
 8085: /^a[\R]b/<bsr_unicode>
 8086:     aRb
 8087:  0: aRb
 8088:     ** Failers
 8089: No match
 8090:     a\nb
 8091: No match
 8092: 
 8093: /(?&abc)X(?<abc>P)/I
 8094: Capturing subpattern count = 1
 8095: Named capturing subpatterns:
 8096:   abc   1
 8097: No options
 8098: No first char
 8099: Need char = 'P'
 8100:     abcPXP123
 8101:  0: PXP
 8102:  1: P
 8103: 
 8104: /(?1)X(?<abc>P)/I
 8105: Capturing subpattern count = 1
 8106: Named capturing subpatterns:
 8107:   abc   1
 8108: No options
 8109: No first char
 8110: Need char = 'P'
 8111:     abcPXP123
 8112:  0: PXP
 8113:  1: P
 8114: 
 8115: /(?:a(?&abc)b)*(?<abc>x)/
 8116:     123axbaxbaxbx456
 8117:  0: axbaxbaxbx
 8118:  1: x
 8119:     123axbaxbaxb456
 8120:  0: x
 8121:  1: x
 8122: 
 8123: /(?:a(?&abc)b){1,5}(?<abc>x)/
 8124:     123axbaxbaxbx456
 8125:  0: axbaxbaxbx
 8126:  1: x
 8127: 
 8128: /(?:a(?&abc)b){2,5}(?<abc>x)/
 8129:     123axbaxbaxbx456
 8130:  0: axbaxbaxbx
 8131:  1: x
 8132: 
 8133: /(?:a(?&abc)b){2,}(?<abc>x)/
 8134:     123axbaxbaxbx456
 8135:  0: axbaxbaxbx
 8136:  1: x
 8137: 
 8138: /(abc)(?i:(?1))/
 8139:    defabcabcxyz
 8140:  0: abcabc
 8141:  1: abc
 8142:    DEFabcABCXYZ
 8143: No match
 8144: 
 8145: /(abc)(?:(?i)(?1))/
 8146:    defabcabcxyz
 8147:  0: abcabc
 8148:  1: abc
 8149:    DEFabcABCXYZ
 8150: No match
 8151: 
 8152: /^(a)\g-2/
 8153: Failed: reference to non-existent subpattern at offset 7
 8154: 
 8155: /^(a)\g/
 8156: Failed: a numbered reference must not be zero at offset 5
 8157: 
 8158: /^(a)\g{0}/
 8159: Failed: a numbered reference must not be zero at offset 8
 8160: 
 8161: /^(a)\g{3/
 8162: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
 8163: 
 8164: /^(a)\g{4a}/
 8165: Failed: reference to non-existent subpattern at offset 9
 8166: 
 8167: /^a.b/<lf>
 8168:     a\rb
 8169:  0: a\x0db
 8170:     *** Failers
 8171: No match
 8172:     a\nb
 8173: No match
 8174: 
 8175: /.+foo/
 8176:     afoo
 8177:  0: afoo
 8178:     ** Failers
 8179: No match
 8180:     \r\nfoo
 8181: No match
 8182:     \nfoo
 8183: No match
 8184: 
 8185: /.+foo/<crlf>
 8186:     afoo
 8187:  0: afoo
 8188:     \nfoo
 8189:  0: \x0afoo
 8190:     ** Failers
 8191: No match
 8192:     \r\nfoo
 8193: No match
 8194: 
 8195: /.+foo/<any>
 8196:     afoo
 8197:  0: afoo
 8198:     ** Failers
 8199: No match
 8200:     \nfoo
 8201: No match
 8202:     \r\nfoo
 8203: No match
 8204: 
 8205: /.+foo/s
 8206:     afoo
 8207:  0: afoo
 8208:     \r\nfoo
 8209:  0: \x0d\x0afoo
 8210:     \nfoo
 8211:  0: \x0afoo
 8212:     
 8213: /^$/mg<any>
 8214:     abc\r\rxyz
 8215:  0: 
 8216:     abc\n\rxyz  
 8217:  0: 
 8218:     ** Failers 
 8219: No match
 8220:     abc\r\nxyz
 8221: No match
 8222: 
 8223: /(?m)^$/<any>g+
 8224:     abc\r\n\r\n
 8225:  0: 
 8226:  0+ \x0d\x0a
 8227: 
 8228: /(?m)^$|^\r\n/<any>g+ 
 8229:     abc\r\n\r\n
 8230:  0: 
 8231:  0+ \x0d\x0a
 8232:  0: \x0d\x0a
 8233:  0+ 
 8234:     
 8235: /(?m)$/<any>g+ 
 8236:     abc\r\n\r\n
 8237:  0: 
 8238:  0+ \x0d\x0a\x0d\x0a
 8239:  0: 
 8240:  0+ \x0d\x0a
 8241:  0: 
 8242:  0+ 
 8243: 
 8244: /abc.$/mgx<anycrlf>
 8245:     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
 8246:  0: abc1
 8247:  0: abc4
 8248:  0: abc5
 8249:  0: abc9
 8250: 
 8251: /^X/m
 8252:     XABC
 8253:  0: X
 8254:     ** Failers 
 8255: No match
 8256:     XABC\B
 8257: No match
 8258: 
 8259: /(ab|c)(?-1)/BZ
 8260: ------------------------------------------------------------------
 8261:         Bra
 8262:         CBra 1
 8263:         ab
 8264:         Alt
 8265:         c
 8266:         Ket
 8267:         Recurse
 8268:         Ket
 8269:         End
 8270: ------------------------------------------------------------------
 8271:     abc
 8272:  0: abc
 8273:  1: ab
 8274: 
 8275: /xy(?+1)(abc)/BZ
 8276: ------------------------------------------------------------------
 8277:         Bra
 8278:         xy
 8279:         Recurse
 8280:         CBra 1
 8281:         abc
 8282:         Ket
 8283:         Ket
 8284:         End
 8285: ------------------------------------------------------------------
 8286:     xyabcabc
 8287:  0: xyabcabc
 8288:  1: abc
 8289:     ** Failers
 8290: No match
 8291:     xyabc  
 8292: No match
 8293:     
 8294: /x(?-0)y/
 8295: Failed: a numbered reference must not be zero at offset 5
 8296: 
 8297: /x(?-1)y/
 8298: Failed: reference to non-existent subpattern at offset 5
 8299: 
 8300: /x(?+0)y/ 
 8301: Failed: a numbered reference must not be zero at offset 5
 8302: 
 8303: /x(?+1)y/
 8304: Failed: reference to non-existent subpattern at offset 5
 8305: 
 8306: /^(abc)?(?(-1)X|Y)/BZ
 8307: ------------------------------------------------------------------
 8308:         Bra
 8309:         ^
 8310:         Brazero
 8311:         CBra 1
 8312:         abc
 8313:         Ket
 8314:         Cond
 8315:       1 Cond ref
 8316:         X
 8317:         Alt
 8318:         Y
 8319:         Ket
 8320:         Ket
 8321:         End
 8322: ------------------------------------------------------------------
 8323:     abcX
 8324:  0: abcX
 8325:  1: abc
 8326:     Y
 8327:  0: Y
 8328:     ** Failers
 8329: No match
 8330:     abcY   
 8331: No match
 8332:     
 8333: /^((?(+1)X|Y)(abc))+/BZ 
 8334: ------------------------------------------------------------------
 8335:         Bra
 8336:         ^
 8337:         CBra 1
 8338:         Cond
 8339:       2 Cond ref
 8340:         X
 8341:         Alt
 8342:         Y
 8343:         Ket
 8344:         CBra 2
 8345:         abc
 8346:         Ket
 8347:         KetRmax
 8348:         Ket
 8349:         End
 8350: ------------------------------------------------------------------
 8351:     YabcXabc
 8352:  0: YabcXabc
 8353:  1: Xabc
 8354:  2: abc
 8355:     YabcXabcXabc
 8356:  0: YabcXabcXabc
 8357:  1: Xabc
 8358:  2: abc
 8359:     ** Failers
 8360: No match
 8361:     XabcXabc  
 8362: No match
 8363: 
 8364: /(?(-1)a)/BZ
 8365: Failed: reference to non-existent subpattern at offset 6
 8366: 
 8367: /((?(-1)a))/BZ
 8368: ------------------------------------------------------------------
 8369:         Bra
 8370:         CBra 1
 8371:         Cond
 8372:       1 Cond ref
 8373:         a
 8374:         Ket
 8375:         Ket
 8376:         Ket
 8377:         End
 8378: ------------------------------------------------------------------
 8379: 
 8380: /((?(-2)a))/BZ
 8381: Failed: reference to non-existent subpattern at offset 7
 8382: 
 8383: /^(?(+1)X|Y)(.)/BZ
 8384: ------------------------------------------------------------------
 8385:         Bra
 8386:         ^
 8387:         Cond
 8388:       1 Cond ref
 8389:         X
 8390:         Alt
 8391:         Y
 8392:         Ket
 8393:         CBra 1
 8394:         Any
 8395:         Ket
 8396:         Ket
 8397:         End
 8398: ------------------------------------------------------------------
 8399:     Y!
 8400:  0: Y!
 8401:  1: !
 8402: 
 8403: /(?<A>tom|bon)-\k{A}/
 8404:     tom-tom
 8405:  0: tom-tom
 8406:  1: tom
 8407:     bon-bon 
 8408:  0: bon-bon
 8409:  1: bon
 8410:     ** Failers
 8411: No match
 8412:     tom-bon  
 8413: No match
 8414: 
 8415: /\g{A/ 
 8416: Failed: syntax error in subpattern name (missing terminator) at offset 4
 8417: 
 8418: /(?|(abc)|(xyz))/BZ
 8419: ------------------------------------------------------------------
 8420:         Bra
 8421:         Bra
 8422:         CBra 1
 8423:         abc
 8424:         Ket
 8425:         Alt
 8426:         CBra 1
 8427:         xyz
 8428:         Ket
 8429:         Ket
 8430:         Ket
 8431:         End
 8432: ------------------------------------------------------------------
 8433:    >abc<
 8434:  0: abc
 8435:  1: abc
 8436:    >xyz< 
 8437:  0: xyz
 8438:  1: xyz
 8439: 
 8440: /(x)(?|(abc)|(xyz))(x)/BZ
 8441: ------------------------------------------------------------------
 8442:         Bra
 8443:         CBra 1
 8444:         x
 8445:         Ket
 8446:         Bra
 8447:         CBra 2
 8448:         abc
 8449:         Ket
 8450:         Alt
 8451:         CBra 2
 8452:         xyz
 8453:         Ket
 8454:         Ket
 8455:         CBra 3
 8456:         x
 8457:         Ket
 8458:         Ket
 8459:         End
 8460: ------------------------------------------------------------------
 8461:     xabcx
 8462:  0: xabcx
 8463:  1: x
 8464:  2: abc
 8465:  3: x
 8466:     xxyzx 
 8467:  0: xxyzx
 8468:  1: x
 8469:  2: xyz
 8470:  3: x
 8471: 
 8472: /(x)(?|(abc)(pqr)|(xyz))(x)/BZ
 8473: ------------------------------------------------------------------
 8474:         Bra
 8475:         CBra 1
 8476:         x
 8477:         Ket
 8478:         Bra
 8479:         CBra 2
 8480:         abc
 8481:         Ket
 8482:         CBra 3
 8483:         pqr
 8484:         Ket
 8485:         Alt
 8486:         CBra 2
 8487:         xyz
 8488:         Ket
 8489:         Ket
 8490:         CBra 4
 8491:         x
 8492:         Ket
 8493:         Ket
 8494:         End
 8495: ------------------------------------------------------------------
 8496:     xabcpqrx
 8497:  0: xabcpqrx
 8498:  1: x
 8499:  2: abc
 8500:  3: pqr
 8501:  4: x
 8502:     xxyzx 
 8503:  0: xxyzx
 8504:  1: x
 8505:  2: xyz
 8506:  3: <unset>
 8507:  4: x
 8508: 
 8509: /[\h]/BZ
 8510: ------------------------------------------------------------------
 8511:         Bra
 8512:         [\x09 \xa0]
 8513:         Ket
 8514:         End
 8515: ------------------------------------------------------------------
 8516:     >\x09<
 8517:  0: \x09
 8518: 
 8519: /[\h]+/BZ
 8520: ------------------------------------------------------------------
 8521:         Bra
 8522:         [\x09 \xa0]+
 8523:         Ket
 8524:         End
 8525: ------------------------------------------------------------------
 8526:     >\x09\x20\xa0<
 8527:  0: \x09 \xa0
 8528: 
 8529: /[\v]/BZ
 8530: ------------------------------------------------------------------
 8531:         Bra
 8532:         [\x0a-\x0d\x85]
 8533:         Ket
 8534:         End
 8535: ------------------------------------------------------------------
 8536: 
 8537: /[\H]/BZ
 8538: ------------------------------------------------------------------
 8539:         Bra
 8540:         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff]
 8541:         Ket
 8542:         End
 8543: ------------------------------------------------------------------
 8544: 
 8545: /[^\h]/BZ
 8546: ------------------------------------------------------------------
 8547:         Bra
 8548:         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff] (neg)
 8549:         Ket
 8550:         End
 8551: ------------------------------------------------------------------
 8552: 
 8553: /[\V]/BZ
 8554: ------------------------------------------------------------------
 8555:         Bra
 8556:         [\x00-\x09\x0e-\x84\x86-\xff]
 8557:         Ket
 8558:         End
 8559: ------------------------------------------------------------------
 8560: 
 8561: /[\x0a\V]/BZ
 8562: ------------------------------------------------------------------
 8563:         Bra
 8564:         [\x00-\x0a\x0e-\x84\x86-\xff]
 8565:         Ket
 8566:         End
 8567: ------------------------------------------------------------------
 8568: 
 8569: /\H++X/BZ
 8570: ------------------------------------------------------------------
 8571:         Bra
 8572:         \H++
 8573:         X
 8574:         Ket
 8575:         End
 8576: ------------------------------------------------------------------
 8577:     ** Failers
 8578: No match
 8579:     XXXX
 8580: No match
 8581:     
 8582: /\H+\hY/BZ
 8583: ------------------------------------------------------------------
 8584:         Bra
 8585:         \H++
 8586:         \h
 8587:         Y
 8588:         Ket
 8589:         End
 8590: ------------------------------------------------------------------
 8591:     XXXX Y 
 8592:  0: XXXX Y
 8593: 
 8594: /\H+ Y/BZ
 8595: ------------------------------------------------------------------
 8596:         Bra
 8597:         \H++
 8598:          Y
 8599:         Ket
 8600:         End
 8601: ------------------------------------------------------------------
 8602: 
 8603: /\h+A/BZ
 8604: ------------------------------------------------------------------
 8605:         Bra
 8606:         \h++
 8607:         A
 8608:         Ket
 8609:         End
 8610: ------------------------------------------------------------------
 8611: 
 8612: /\v*B/BZ
 8613: ------------------------------------------------------------------
 8614:         Bra
 8615:         \v*+
 8616:         B
 8617:         Ket
 8618:         End
 8619: ------------------------------------------------------------------
 8620: 
 8621: /\V+\x0a/BZ
 8622: ------------------------------------------------------------------
 8623:         Bra
 8624:         \V++
 8625:         \x0a
 8626:         Ket
 8627:         End
 8628: ------------------------------------------------------------------
 8629: 
 8630: /A+\h/BZ
 8631: ------------------------------------------------------------------
 8632:         Bra
 8633:         A++
 8634:         \h
 8635:         Ket
 8636:         End
 8637: ------------------------------------------------------------------
 8638: 
 8639: / *\H/BZ
 8640: ------------------------------------------------------------------
 8641:         Bra
 8642:          *+
 8643:         \H
 8644:         Ket
 8645:         End
 8646: ------------------------------------------------------------------
 8647: 
 8648: /A*\v/BZ
 8649: ------------------------------------------------------------------
 8650:         Bra
 8651:         A*+
 8652:         \v
 8653:         Ket
 8654:         End
 8655: ------------------------------------------------------------------
 8656: 
 8657: /\x0b*\V/BZ
 8658: ------------------------------------------------------------------
 8659:         Bra
 8660:         \x0b*+
 8661:         \V
 8662:         Ket
 8663:         End
 8664: ------------------------------------------------------------------
 8665: 
 8666: /\d+\h/BZ
 8667: ------------------------------------------------------------------
 8668:         Bra
 8669:         \d++
 8670:         \h
 8671:         Ket
 8672:         End
 8673: ------------------------------------------------------------------
 8674: 
 8675: /\d*\v/BZ
 8676: ------------------------------------------------------------------
 8677:         Bra
 8678:         \d*+
 8679:         \v
 8680:         Ket
 8681:         End
 8682: ------------------------------------------------------------------
 8683: 
 8684: /S+\h\S+\v/BZ
 8685: ------------------------------------------------------------------
 8686:         Bra
 8687:         S++
 8688:         \h
 8689:         \S++
 8690:         \v
 8691:         Ket
 8692:         End
 8693: ------------------------------------------------------------------
 8694: 
 8695: /\w{3,}\h\w+\v/BZ
 8696: ------------------------------------------------------------------
 8697:         Bra
 8698:         \w{3}
 8699:         \w*+
 8700:         \h
 8701:         \w++
 8702:         \v
 8703:         Ket
 8704:         End
 8705: ------------------------------------------------------------------
 8706: 
 8707: /\h+\d\h+\w\h+\S\h+\H/BZ
 8708: ------------------------------------------------------------------
 8709:         Bra
 8710:         \h++
 8711:         \d
 8712:         \h++
 8713:         \w
 8714:         \h++
 8715:         \S
 8716:         \h++
 8717:         \H
 8718:         Ket
 8719:         End
 8720: ------------------------------------------------------------------
 8721: 
 8722: /\v+\d\v+\w\v+\S\v+\V/BZ
 8723: ------------------------------------------------------------------
 8724:         Bra
 8725:         \v++
 8726:         \d
 8727:         \v++
 8728:         \w
 8729:         \v+
 8730:         \S
 8731:         \v++
 8732:         \V
 8733:         Ket
 8734:         End
 8735: ------------------------------------------------------------------
 8736: 
 8737: /\H+\h\H+\d/BZ
 8738: ------------------------------------------------------------------
 8739:         Bra
 8740:         \H++
 8741:         \h
 8742:         \H+
 8743:         \d
 8744:         Ket
 8745:         End
 8746: ------------------------------------------------------------------
 8747: 
 8748: /\V+\v\V+\w/BZ
 8749: ------------------------------------------------------------------
 8750:         Bra
 8751:         \V++
 8752:         \v
 8753:         \V+
 8754:         \w
 8755:         Ket
 8756:         End
 8757: ------------------------------------------------------------------
 8758: 
 8759: /\( (?: [^()]* | (?R) )* \)/x
 8760: \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)
 8761:  0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
 8762: 
 8763: /[\E]AAA/
 8764: Failed: missing terminating ] for character class at offset 7
 8765: 
 8766: /[\Q\E]AAA/
 8767: Failed: missing terminating ] for character class at offset 9
 8768: 
 8769: /[^\E]AAA/
 8770: Failed: missing terminating ] for character class at offset 8
 8771: 
 8772: /[^\Q\E]AAA/
 8773: Failed: missing terminating ] for character class at offset 10
 8774: 
 8775: /[\E^]AAA/
 8776: Failed: missing terminating ] for character class at offset 8
 8777: 
 8778: /[\Q\E^]AAA/
 8779: Failed: missing terminating ] for character class at offset 10
 8780: 
 8781: /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
 8782: ------------------------------------------------------------------
 8783:         Bra
 8784:         A
 8785:         *PRUNE
 8786:         B
 8787:         *SKIP
 8788:         C
 8789:         *THEN
 8790:         D
 8791:         *COMMIT
 8792:         E
 8793:         *FAIL
 8794:         F
 8795:         *FAIL
 8796:         G
 8797:         *FAIL
 8798:         H
 8799:         *ACCEPT
 8800:         I
 8801:         Ket
 8802:         End
 8803: ------------------------------------------------------------------
 8804: 
 8805: /^a+(*FAIL)/C
 8806:     aaaaaa
 8807: --->aaaaaa
 8808:  +0 ^          ^
 8809:  +1 ^          a+
 8810:  +3 ^     ^    (*FAIL)
 8811:  +3 ^    ^     (*FAIL)
 8812:  +3 ^   ^      (*FAIL)
 8813:  +3 ^  ^       (*FAIL)
 8814:  +3 ^ ^        (*FAIL)
 8815:  +3 ^^         (*FAIL)
 8816: No match
 8817:     
 8818: /a+b?c+(*FAIL)/C
 8819:     aaabccc
 8820: --->aaabccc
 8821:  +0 ^           a+
 8822:  +2 ^  ^        b?
 8823:  +4 ^   ^       c+
 8824:  +6 ^      ^    (*FAIL)
 8825:  +6 ^     ^     (*FAIL)
 8826:  +6 ^    ^      (*FAIL)
 8827:  +4 ^  ^        c+
 8828:  +2 ^ ^         b?
 8829:  +4 ^ ^         c+
 8830:  +2 ^^          b?
 8831:  +4 ^^          c+
 8832:  +0  ^          a+
 8833:  +2  ^ ^        b?
 8834:  +4  ^  ^       c+
 8835:  +6  ^     ^    (*FAIL)
 8836:  +6  ^    ^     (*FAIL)
 8837:  +6  ^   ^      (*FAIL)
 8838:  +4  ^ ^        c+
 8839:  +2  ^^         b?
 8840:  +4  ^^         c+
 8841:  +0   ^         a+
 8842:  +2   ^^        b?
 8843:  +4   ^ ^       c+
 8844:  +6   ^    ^    (*FAIL)
 8845:  +6   ^   ^     (*FAIL)
 8846:  +6   ^  ^      (*FAIL)
 8847:  +4   ^^        c+
 8848: No match
 8849: 
 8850: /a+b?(*PRUNE)c+(*FAIL)/C
 8851:     aaabccc
 8852: --->aaabccc
 8853:  +0 ^           a+
 8854:  +2 ^  ^        b?
 8855:  +4 ^   ^       (*PRUNE)
 8856: +12 ^   ^       c+
 8857: +14 ^      ^    (*FAIL)
 8858: +14 ^     ^     (*FAIL)
 8859: +14 ^    ^      (*FAIL)
 8860:  +0  ^          a+
 8861:  +2  ^ ^        b?
 8862:  +4  ^  ^       (*PRUNE)
 8863: +12  ^  ^       c+
 8864: +14  ^     ^    (*FAIL)
 8865: +14  ^    ^     (*FAIL)
 8866: +14  ^   ^      (*FAIL)
 8867:  +0   ^         a+
 8868:  +2   ^^        b?
 8869:  +4   ^ ^       (*PRUNE)
 8870: +12   ^ ^       c+
 8871: +14   ^    ^    (*FAIL)
 8872: +14   ^   ^     (*FAIL)
 8873: +14   ^  ^      (*FAIL)
 8874: No match
 8875: 
 8876: /a+b?(*COMMIT)c+(*FAIL)/C
 8877:     aaabccc
 8878: --->aaabccc
 8879:  +0 ^           a+
 8880:  +2 ^  ^        b?
 8881:  +4 ^   ^       (*COMMIT)
 8882: +13 ^   ^       c+
 8883: +15 ^      ^    (*FAIL)
 8884: +15 ^     ^     (*FAIL)
 8885: +15 ^    ^      (*FAIL)
 8886: No match
 8887:     
 8888: /a+b?(*SKIP)c+(*FAIL)/C
 8889:     aaabcccaaabccc
 8890: --->aaabcccaaabccc
 8891:  +0 ^                  a+
 8892:  +2 ^  ^               b?
 8893:  +4 ^   ^              (*SKIP)
 8894: +11 ^   ^              c+
 8895: +13 ^      ^           (*FAIL)
 8896: +13 ^     ^            (*FAIL)
 8897: +13 ^    ^             (*FAIL)
 8898:  +0        ^           a+
 8899:  +2        ^  ^        b?
 8900:  +4        ^   ^       (*SKIP)
 8901: +11        ^   ^       c+
 8902: +13        ^      ^    (*FAIL)
 8903: +13        ^     ^     (*FAIL)
 8904: +13        ^    ^      (*FAIL)
 8905: No match
 8906: 
 8907: /a+b?(*THEN)c+(*FAIL)/C
 8908:     aaabccc
 8909: --->aaabccc
 8910:  +0 ^           a+
 8911:  +2 ^  ^        b?
 8912:  +4 ^   ^       (*THEN)
 8913: +11 ^   ^       c+
 8914: +13 ^      ^    (*FAIL)
 8915: +13 ^     ^     (*FAIL)
 8916: +13 ^    ^      (*FAIL)
 8917:  +0  ^          a+
 8918:  +2  ^ ^        b?
 8919:  +4  ^  ^       (*THEN)
 8920: +11  ^  ^       c+
 8921: +13  ^     ^    (*FAIL)
 8922: +13  ^    ^     (*FAIL)
 8923: +13  ^   ^      (*FAIL)
 8924:  +0   ^         a+
 8925:  +2   ^^        b?
 8926:  +4   ^ ^       (*THEN)
 8927: +11   ^ ^       c+
 8928: +13   ^    ^    (*FAIL)
 8929: +13   ^   ^     (*FAIL)
 8930: +13   ^  ^      (*FAIL)
 8931: No match
 8932:     
 8933: /a(*MARK)b/ 
 8934: Failed: (*MARK) must have an argument at offset 7
 8935: 
 8936: /(?i:A{1,}\6666666666)/
 8937: Failed: number is too big at offset 19
 8938: 
 8939: /\g6666666666/
 8940: Failed: number is too big at offset 11
 8941: 
 8942: /[\g6666666666]/BZ
 8943: ------------------------------------------------------------------
 8944:         Bra
 8945:         [6g]
 8946:         Ket
 8947:         End
 8948: ------------------------------------------------------------------
 8949: 
 8950: /(?1)\c[/
 8951: Failed: reference to non-existent subpattern at offset 3
 8952: 
 8953: /.+A/<crlf>
 8954:     \r\nA
 8955: No match
 8956:     
 8957: /\nA/<crlf>
 8958:     \r\nA 
 8959:  0: \x0aA
 8960: 
 8961: /[\r\n]A/<crlf>
 8962:     \r\nA 
 8963:  0: \x0aA
 8964: 
 8965: /(\r|\n)A/<crlf>
 8966:     \r\nA 
 8967:  0: \x0aA
 8968:  1: \x0a
 8969: 
 8970: /a(*CR)b/
 8971: Failed: (*VERB) not recognized at offset 5
 8972: 
 8973: /(*CR)a.b/
 8974:     a\nb
 8975:  0: a\x0ab
 8976:     ** Failers
 8977: No match
 8978:     a\rb  
 8979: No match
 8980: 
 8981: /(*CR)a.b/<lf>
 8982:     a\nb
 8983:  0: a\x0ab
 8984:     ** Failers
 8985: No match
 8986:     a\rb  
 8987: No match
 8988: 
 8989: /(*LF)a.b/<CRLF>
 8990:     a\rb
 8991:  0: a\x0db
 8992:     ** Failers
 8993: No match
 8994:     a\nb  
 8995: No match
 8996: 
 8997: /(*CRLF)a.b/
 8998:     a\rb
 8999:  0: a\x0db
 9000:     a\nb  
 9001:  0: a\x0ab
 9002:     ** Failers
 9003: No match
 9004:     a\r\nb  
 9005: No match
 9006: 
 9007: /(*ANYCRLF)a.b/<CR>
 9008:     ** Failers
 9009: No match
 9010:     a\rb
 9011: No match
 9012:     a\nb  
 9013: No match
 9014:     a\r\nb  
 9015: No match
 9016: 
 9017: /(*ANY)a.b/<cr>
 9018:     ** Failers
 9019: No match
 9020:     a\rb
 9021: No match
 9022:     a\nb  
 9023: No match
 9024:     a\r\nb  
 9025: No match
 9026:     a\x85b 
 9027: No match
 9028:     
 9029: /(*ANY).*/g
 9030:     abc\r\ndef
 9031:  0: abc
 9032:  0: 
 9033:  0: def
 9034:  0: 
 9035: 
 9036: /(*ANYCRLF).*/g
 9037:     abc\r\ndef
 9038:  0: abc
 9039:  0: 
 9040:  0: def
 9041:  0: 
 9042: 
 9043: /(*CRLF).*/g
 9044:     abc\r\ndef
 9045:  0: abc
 9046:  0: 
 9047:  0: def
 9048:  0: 
 9049: 
 9050: /a\Rb/I<bsr_anycrlf>
 9051: Capturing subpattern count = 0
 9052: Options: bsr_anycrlf
 9053: First char = 'a'
 9054: Need char = 'b'
 9055:     a\rb
 9056:  0: a\x0db
 9057:     a\nb
 9058:  0: a\x0ab
 9059:     a\r\nb
 9060:  0: a\x0d\x0ab
 9061:     ** Failers
 9062: No match
 9063:     a\x85b
 9064: No match
 9065:     a\x0bb     
 9066: No match
 9067: 
 9068: /a\Rb/I<bsr_unicode>
 9069: Capturing subpattern count = 0
 9070: Options: bsr_unicode
 9071: First char = 'a'
 9072: Need char = 'b'
 9073:     a\rb
 9074:  0: a\x0db
 9075:     a\nb
 9076:  0: a\x0ab
 9077:     a\r\nb
 9078:  0: a\x0d\x0ab
 9079:     a\x85b
 9080:  0: a\x85b
 9081:     a\x0bb     
 9082:  0: a\x0bb
 9083:     ** Failers 
 9084: No match
 9085:     a\x85b\<bsr_anycrlf>
 9086: No match
 9087:     a\x0bb\<bsr_anycrlf>
 9088: No match
 9089:     
 9090: /a\R?b/I<bsr_anycrlf>
 9091: Capturing subpattern count = 0
 9092: Options: bsr_anycrlf
 9093: First char = 'a'
 9094: Need char = 'b'
 9095:     a\rb
 9096:  0: a\x0db
 9097:     a\nb
 9098:  0: a\x0ab
 9099:     a\r\nb
 9100:  0: a\x0d\x0ab
 9101:     ** Failers
 9102: No match
 9103:     a\x85b
 9104: No match
 9105:     a\x0bb     
 9106: No match
 9107: 
 9108: /a\R?b/I<bsr_unicode>
 9109: Capturing subpattern count = 0
 9110: Options: bsr_unicode
 9111: First char = 'a'
 9112: Need char = 'b'
 9113:     a\rb
 9114:  0: a\x0db
 9115:     a\nb
 9116:  0: a\x0ab
 9117:     a\r\nb
 9118:  0: a\x0d\x0ab
 9119:     a\x85b
 9120:  0: a\x85b
 9121:     a\x0bb     
 9122:  0: a\x0bb
 9123:     ** Failers 
 9124: No match
 9125:     a\x85b\<bsr_anycrlf>
 9126: No match
 9127:     a\x0bb\<bsr_anycrlf>
 9128: No match
 9129:     
 9130: /a\R{2,4}b/I<bsr_anycrlf>
 9131: Capturing subpattern count = 0
 9132: Options: bsr_anycrlf
 9133: First char = 'a'
 9134: Need char = 'b'
 9135:     a\r\n\nb
 9136:  0: a\x0d\x0a\x0ab
 9137:     a\n\r\rb
 9138:  0: a\x0a\x0d\x0db
 9139:     a\r\n\r\n\r\n\r\nb
 9140:  0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
 9141:     ** Failers
 9142: No match
 9143:     a\x85\85b
 9144: No match
 9145:     a\x0b\0bb     
 9146: No match
 9147: 
 9148: /a\R{2,4}b/I<bsr_unicode>
 9149: Capturing subpattern count = 0
 9150: Options: bsr_unicode
 9151: First char = 'a'
 9152: Need char = 'b'
 9153:     a\r\rb
 9154:  0: a\x0d\x0db
 9155:     a\n\n\nb
 9156:  0: a\x0a\x0a\x0ab
 9157:     a\r\n\n\r\rb
 9158:  0: a\x0d\x0a\x0a\x0d\x0db
 9159:     a\x85\85b
 9160: No match
 9161:     a\x0b\0bb     
 9162: No match
 9163:     ** Failers 
 9164: No match
 9165:     a\r\r\r\r\rb 
 9166: No match
 9167:     a\x85\85b\<bsr_anycrlf>
 9168: No match
 9169:     a\x0b\0bb\<bsr_anycrlf>
 9170: No match
 9171:  
 9172: /(*BSR_ANYCRLF)a\Rb/I
 9173: Capturing subpattern count = 0
 9174: Options: bsr_anycrlf
 9175: First char = 'a'
 9176: Need char = 'b'
 9177:     a\nb
 9178:  0: a\x0ab
 9179:     a\rb 
 9180:  0: a\x0db
 9181: 
 9182: /(*BSR_UNICODE)a\Rb/I
 9183: Capturing subpattern count = 0
 9184: Options: bsr_unicode
 9185: First char = 'a'
 9186: Need char = 'b'
 9187:     a\x85b
 9188:  0: a\x85b
 9189: 
 9190: /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
 9191: Capturing subpattern count = 0
 9192: Options: bsr_anycrlf
 9193: Forced newline sequence: CRLF
 9194: First char = 'a'
 9195: Need char = 'b'
 9196:     a\nb
 9197:  0: a\x0ab
 9198:     a\rb 
 9199:  0: a\x0db
 9200: 
 9201: /(*CRLF)(*BSR_UNICODE)a\Rb/I
 9202: Capturing subpattern count = 0
 9203: Options: bsr_unicode
 9204: Forced newline sequence: CRLF
 9205: First char = 'a'
 9206: Need char = 'b'
 9207:     a\x85b
 9208:  0: a\x85b
 9209: 
 9210: /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
 9211: Capturing subpattern count = 0
 9212: Options: bsr_anycrlf
 9213: Forced newline sequence: CR
 9214: First char = 'a'
 9215: Need char = 'b'
 9216: 
 9217: /(?<a>)(?&)/
 9218: Failed: subpattern name expected at offset 9
 9219: 
 9220: /(?<abc>)(?&a)/
 9221: Failed: reference to non-existent subpattern at offset 12
 9222: 
 9223: /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
 9224: Failed: reference to non-existent subpattern at offset 32
 9225: 
 9226: /(?+-a)/
 9227: Failed: digit expected after (?+ at offset 3
 9228: 
 9229: /(?-+a)/
 9230: Failed: unrecognized character after (? or (?- at offset 3
 9231: 
 9232: /(?(-1))/
 9233: Failed: reference to non-existent subpattern at offset 6
 9234: 
 9235: /(?(+10))/
 9236: Failed: reference to non-existent subpattern at offset 7
 9237: 
 9238: /(?(10))/
 9239: Failed: reference to non-existent subpattern at offset 6
 9240: 
 9241: /(?(+2))()()/
 9242: 
 9243: /(?(2))()()/
 9244: 
 9245: /\k''/
 9246: Failed: subpattern name expected at offset 3
 9247: 
 9248: /\k<>/
 9249: Failed: subpattern name expected at offset 3
 9250: 
 9251: /\k{}/
 9252: Failed: subpattern name expected at offset 3
 9253: 
 9254: /\k/
 9255: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
 9256: 
 9257: /\kabc/
 9258: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
 9259: 
 9260: /(?P=)/
 9261: Failed: subpattern name expected at offset 4
 9262: 
 9263: /(?P>)/
 9264: Failed: subpattern name expected at offset 4
 9265: 
 9266: /(?!\w)(?R)/
 9267: Failed: recursive call could loop indefinitely at offset 9
 9268: 
 9269: /(?=\w)(?R)/
 9270: Failed: recursive call could loop indefinitely at offset 9
 9271: 
 9272: /(?<!\w)(?R)/
 9273: Failed: recursive call could loop indefinitely at offset 10
 9274: 
 9275: /(?<=\w)(?R)/
 9276: Failed: recursive call could loop indefinitely at offset 10
 9277: 
 9278: /[[:foo:]]/
 9279: Failed: unknown POSIX class name at offset 3
 9280: 
 9281: /[[:1234:]]/
 9282: Failed: unknown POSIX class name at offset 3
 9283: 
 9284: /[[:f\oo:]]/
 9285: Failed: unknown POSIX class name at offset 3
 9286: 
 9287: /[[: :]]/
 9288: Failed: unknown POSIX class name at offset 3
 9289: 
 9290: /[[:...:]]/
 9291: Failed: unknown POSIX class name at offset 3
 9292: 
 9293: /[[:l\ower:]]/
 9294: Failed: unknown POSIX class name at offset 3
 9295: 
 9296: /[[:abc\:]]/
 9297: Failed: unknown POSIX class name at offset 3
 9298: 
 9299: /[abc[:x\]pqr:]]/
 9300: Failed: unknown POSIX class name at offset 6
 9301: 
 9302: /[[:a\dz:]]/
 9303: Failed: unknown POSIX class name at offset 3
 9304: 
 9305: /(^(a|b\g<-1'c))/
 9306: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
 9307: 
 9308: /^(?+1)(?<a>x|y){0}z/
 9309:     xzxx
 9310:  0: xz
 9311:     yzyy 
 9312:  0: yz
 9313:     ** Failers
 9314: No match
 9315:     xxz  
 9316: No match
 9317: 
 9318: /(\3)(\1)(a)/
 9319:     cat
 9320: No match
 9321: 
 9322: /(\3)(\1)(a)/<JS>
 9323:     cat
 9324:  0: a
 9325:  1: 
 9326:  2: 
 9327:  3: a
 9328:     
 9329: /TA]/
 9330:     The ACTA] comes 
 9331:  0: TA]
 9332: 
 9333: /TA]/<JS>
 9334: Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
 9335: 
 9336: /(?2)[]a()b](abc)/
 9337: Failed: reference to non-existent subpattern at offset 3
 9338: 
 9339: /(?2)[^]a()b](abc)/
 9340: Failed: reference to non-existent subpattern at offset 3
 9341: 
 9342: /(?1)[]a()b](abc)/
 9343:     abcbabc
 9344:  0: abcbabc
 9345:  1: abc
 9346:     ** Failers 
 9347: No match
 9348:     abcXabc
 9349: No match
 9350: 
 9351: /(?1)[^]a()b](abc)/
 9352:     abcXabc
 9353:  0: abcXabc
 9354:  1: abc
 9355:     ** Failers 
 9356: No match
 9357:     abcbabc
 9358: No match
 9359: 
 9360: /(?2)[]a()b](abc)(xyz)/
 9361:     xyzbabcxyz
 9362:  0: xyzbabcxyz
 9363:  1: abc
 9364:  2: xyz
 9365: 
 9366: /(?&N)[]a(?<N>)](?<M>abc)/
 9367: Failed: reference to non-existent subpattern at offset 4
 9368: 
 9369: /(?&N)[]a(?<N>)](abc)/
 9370: Failed: reference to non-existent subpattern at offset 4
 9371: 
 9372: /a[]b/
 9373: Failed: missing terminating ] for character class at offset 4
 9374: 
 9375: /a[^]b/
 9376: Failed: missing terminating ] for character class at offset 5
 9377: 
 9378: /a[]b/<JS>
 9379:     ** Failers
 9380: No match
 9381:     ab
 9382: No match
 9383: 
 9384: /a[]+b/<JS>
 9385:     ** Failers
 9386: No match
 9387:     ab 
 9388: No match
 9389: 
 9390: /a[]*+b/<JS>
 9391:     ** Failers
 9392: No match
 9393:     ab 
 9394: No match
 9395: 
 9396: /a[^]b/<JS>
 9397:     aXb
 9398:  0: aXb
 9399:     a\nb 
 9400:  0: a\x0ab
 9401:     ** Failers
 9402: No match
 9403:     ab  
 9404: No match
 9405:     
 9406: /a[^]+b/<JS> 
 9407:     aXb
 9408:  0: aXb
 9409:     a\nX\nXb 
 9410:  0: a\x0aX\x0aXb
 9411:     ** Failers
 9412: No match
 9413:     ab  
 9414: No match
 9415: 
 9416: /a(?!)+b/
 9417: Failed: nothing to repeat at offset 5
 9418: 
 9419: /a(*FAIL)+b/
 9420: Failed: nothing to repeat at offset 8
 9421: 
 9422: /(abc|pqr|123){0}[xyz]/SI
 9423: Capturing subpattern count = 1
 9424: No options
 9425: No first char
 9426: No need char
 9427: Subject length lower bound = 1
 9428: Starting byte set: x y z 
 9429: 
 9430: /(?(?=.*b)b|^)/CI
 9431: Capturing subpattern count = 0
 9432: Options:
 9433: No first char
 9434: No need char
 9435:    adc
 9436: --->adc
 9437:  +0 ^       (?(?=.*b)b|^)
 9438:  +2 ^       (?=.*b)
 9439:  +5 ^       .*
 9440:  +7 ^  ^    b
 9441:  +7 ^ ^     b
 9442:  +7 ^^      b
 9443:  +7 ^       b
 9444: +12 ^       )
 9445: +13 ^       
 9446:  0: 
 9447:    abc 
 9448: --->abc
 9449:  +0 ^       (?(?=.*b)b|^)
 9450:  +2 ^       (?=.*b)
 9451:  +5 ^       .*
 9452:  +7 ^  ^    b
 9453:  +7 ^ ^     b
 9454:  +7 ^^      b
 9455:  +8 ^ ^     )
 9456:  +9 ^       b
 9457:  +0  ^      (?(?=.*b)b|^)
 9458:  +2  ^      (?=.*b)
 9459:  +5  ^      .*
 9460:  +7  ^ ^    b
 9461:  +7  ^^     b
 9462:  +7  ^      b
 9463:  +8  ^^     )
 9464:  +9  ^      b
 9465: +10  ^^     |
 9466: +13  ^^     
 9467:  0: b
 9468:    
 9469: /(?(?=b).*b|^d)/I
 9470: Capturing subpattern count = 0
 9471: No options
 9472: No first char
 9473: No need char
 9474: 
 9475: /(?(?=.*b).*b|^d)/I
 9476: Capturing subpattern count = 0
 9477: No options
 9478: First char at start or follows newline
 9479: No need char
 9480: 
 9481: /a?|b?/P
 9482:     abc
 9483:  0: a
 9484:     ** Failers
 9485:  0: 
 9486:     ddd\N   
 9487: No match: POSIX code 17: match failed
 9488: 
 9489: /xyz/C
 9490:   xyz 
 9491: --->xyz
 9492:  +0 ^       x
 9493:  +1 ^^      y
 9494:  +2 ^ ^     z
 9495:  +3 ^  ^    
 9496:  0: xyz
 9497:   abcxyz 
 9498: --->abcxyz
 9499:  +0    ^       x
 9500:  +1    ^^      y
 9501:  +2    ^ ^     z
 9502:  +3    ^  ^    
 9503:  0: xyz
 9504:   abcxyz\Y
 9505: --->abcxyz
 9506:  +0 ^          x
 9507:  +0  ^         x
 9508:  +0   ^        x
 9509:  +0    ^       x
 9510:  +1    ^^      y
 9511:  +2    ^ ^     z
 9512:  +3    ^  ^    
 9513:  0: xyz
 9514:   ** Failers 
 9515: No match
 9516:   abc
 9517: No match
 9518:   abc\Y
 9519: --->abc
 9520:  +0 ^       x
 9521:  +0  ^      x
 9522:  +0   ^     x
 9523:  +0    ^    x
 9524: No match
 9525:   abcxypqr  
 9526: No match
 9527:   abcxypqr\Y  
 9528: --->abcxypqr
 9529:  +0 ^            x
 9530:  +0  ^           x
 9531:  +0   ^          x
 9532:  +0    ^         x
 9533:  +1    ^^        y
 9534:  +2    ^ ^       z
 9535:  +0     ^        x
 9536:  +0      ^       x
 9537:  +0       ^      x
 9538:  +0        ^     x
 9539:  +0         ^    x
 9540: No match
 9541:   
 9542: /(*NO_START_OPT)xyz/C
 9543:   abcxyz 
 9544: --->abcxyz
 9545: +15 ^          x
 9546: +15  ^         x
 9547: +15   ^        x
 9548: +15    ^       x
 9549: +16    ^^      y
 9550: +17    ^ ^     z
 9551: +18    ^  ^    
 9552:  0: xyz
 9553: 
 9554: /xyz/CY
 9555:   abcxyz 
 9556: --->abcxyz
 9557:  +0 ^          x
 9558:  +0  ^         x
 9559:  +0   ^        x
 9560:  +0    ^       x
 9561:  +1    ^^      y
 9562:  +2    ^ ^     z
 9563:  +3    ^  ^    
 9564:  0: xyz
 9565: 
 9566: /^"((?(?=[a])[^"])|b)*"$/C
 9567:     "ab"
 9568: --->"ab"
 9569:  +0 ^        ^
 9570:  +1 ^        "
 9571:  +2 ^^       ((?(?=[a])[^"])|b)*
 9572:  +3 ^^       (?(?=[a])[^"])
 9573:  +5 ^^       (?=[a])
 9574:  +8 ^^       [a]
 9575: +11 ^ ^      )
 9576: +12 ^^       [^"]
 9577: +16 ^ ^      )
 9578: +17 ^ ^      |
 9579:  +3 ^ ^      (?(?=[a])[^"])
 9580:  +5 ^ ^      (?=[a])
 9581:  +8 ^ ^      [a]
 9582: +21 ^ ^      "
 9583: +18 ^ ^      b
 9584: +19 ^  ^     )
 9585:  +3 ^  ^     (?(?=[a])[^"])
 9586:  +5 ^  ^     (?=[a])
 9587:  +8 ^  ^     [a]
 9588: +21 ^  ^     "
 9589: +22 ^   ^    $
 9590: +23 ^   ^    
 9591:  0: "ab"
 9592:  1: 
 9593: 
 9594: /^"((?(?=[a])[^"])|b)*"$/
 9595:     "ab"
 9596:  0: "ab"
 9597:  1: 
 9598: 
 9599: /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
 9600: Failed: reference to non-existent subpattern at offset 5
 9601: 
 9602: /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
 9603:     XYabcdY
 9604:  0: XYabcdY
 9605:  1: a
 9606:  2: b
 9607:  3: c
 9608:  4: d
 9609:  5: Y
 9610:  
 9611: /Xa{2,4}b/
 9612:     X\P
 9613: Partial match: X
 9614:     Xa\P
 9615: Partial match: Xa
 9616:     Xaa\P 
 9617: Partial match: Xaa
 9618:     Xaaa\P
 9619: Partial match: Xaaa
 9620:     Xaaaa\P 
 9621: Partial match: Xaaaa
 9622:     
 9623: /Xa{2,4}?b/
 9624:     X\P
 9625: Partial match: X
 9626:     Xa\P
 9627: Partial match: Xa
 9628:     Xaa\P 
 9629: Partial match: Xaa
 9630:     Xaaa\P
 9631: Partial match: Xaaa
 9632:     Xaaaa\P 
 9633: Partial match: Xaaaa
 9634:     
 9635: /Xa{2,4}+b/
 9636:     X\P
 9637: Partial match: X
 9638:     Xa\P
 9639: Partial match: Xa
 9640:     Xaa\P 
 9641: Partial match: Xaa
 9642:     Xaaa\P
 9643: Partial match: Xaaa
 9644:     Xaaaa\P 
 9645: Partial match: Xaaaa
 9646:     
 9647: /X\d{2,4}b/
 9648:     X\P
 9649: Partial match: X
 9650:     X3\P
 9651: Partial match: X3
 9652:     X33\P 
 9653: Partial match: X33
 9654:     X333\P
 9655: Partial match: X333
 9656:     X3333\P 
 9657: Partial match: X3333
 9658:     
 9659: /X\d{2,4}?b/
 9660:     X\P
 9661: Partial match: X
 9662:     X3\P
 9663: Partial match: X3
 9664:     X33\P 
 9665: Partial match: X33
 9666:     X333\P
 9667: Partial match: X333
 9668:     X3333\P 
 9669: Partial match: X3333
 9670:     
 9671: /X\d{2,4}+b/
 9672:     X\P
 9673: Partial match: X
 9674:     X3\P
 9675: Partial match: X3
 9676:     X33\P 
 9677: Partial match: X33
 9678:     X333\P
 9679: Partial match: X333
 9680:     X3333\P 
 9681: Partial match: X3333
 9682:     
 9683: /X\D{2,4}b/
 9684:     X\P
 9685: Partial match: X
 9686:     Xa\P
 9687: Partial match: Xa
 9688:     Xaa\P 
 9689: Partial match: Xaa
 9690:     Xaaa\P
 9691: Partial match: Xaaa
 9692:     Xaaaa\P 
 9693: Partial match: Xaaaa
 9694:     
 9695: /X\D{2,4}?b/
 9696:     X\P
 9697: Partial match: X
 9698:     Xa\P
 9699: Partial match: Xa
 9700:     Xaa\P 
 9701: Partial match: Xaa
 9702:     Xaaa\P
 9703: Partial match: Xaaa
 9704:     Xaaaa\P 
 9705: Partial match: Xaaaa
 9706:     
 9707: /X\D{2,4}+b/
 9708:     X\P
 9709: Partial match: X
 9710:     Xa\P
 9711: Partial match: Xa
 9712:     Xaa\P 
 9713: Partial match: Xaa
 9714:     Xaaa\P
 9715: Partial match: Xaaa
 9716:     Xaaaa\P 
 9717: Partial match: Xaaaa
 9718:     
 9719: /X[abc]{2,4}b/
 9720:     X\P
 9721: Partial match: X
 9722:     Xa\P
 9723: Partial match: Xa
 9724:     Xaa\P 
 9725: Partial match: Xaa
 9726:     Xaaa\P
 9727: Partial match: Xaaa
 9728:     Xaaaa\P 
 9729: Partial match: Xaaaa
 9730:     
 9731: /X[abc]{2,4}?b/
 9732:     X\P
 9733: Partial match: X
 9734:     Xa\P
 9735: Partial match: Xa
 9736:     Xaa\P 
 9737: Partial match: Xaa
 9738:     Xaaa\P
 9739: Partial match: Xaaa
 9740:     Xaaaa\P 
 9741: Partial match: Xaaaa
 9742:     
 9743: /X[abc]{2,4}+b/
 9744:     X\P
 9745: Partial match: X
 9746:     Xa\P
 9747: Partial match: Xa
 9748:     Xaa\P 
 9749: Partial match: Xaa
 9750:     Xaaa\P
 9751: Partial match: Xaaa
 9752:     Xaaaa\P 
 9753: Partial match: Xaaaa
 9754:     
 9755: /X[^a]{2,4}b/
 9756:     X\P
 9757: Partial match: X
 9758:     Xz\P
 9759: Partial match: Xz
 9760:     Xzz\P 
 9761: Partial match: Xzz
 9762:     Xzzz\P
 9763: Partial match: Xzzz
 9764:     Xzzzz\P 
 9765: Partial match: Xzzzz
 9766:     
 9767: /X[^a]{2,4}?b/
 9768:     X\P
 9769: Partial match: X
 9770:     Xz\P
 9771: Partial match: Xz
 9772:     Xzz\P 
 9773: Partial match: Xzz
 9774:     Xzzz\P
 9775: Partial match: Xzzz
 9776:     Xzzzz\P 
 9777: Partial match: Xzzzz
 9778:     
 9779: /X[^a]{2,4}+b/
 9780:     X\P
 9781: Partial match: X
 9782:     Xz\P
 9783: Partial match: Xz
 9784:     Xzz\P 
 9785: Partial match: Xzz
 9786:     Xzzz\P
 9787: Partial match: Xzzz
 9788:     Xzzzz\P 
 9789: Partial match: Xzzzz
 9790:     
 9791: /(Y)X\1{2,4}b/
 9792:     YX\P
 9793: Partial match: YX
 9794:     YXY\P
 9795: Partial match: YXY
 9796:     YXYY\P 
 9797: Partial match: YXYY
 9798:     YXYYY\P
 9799: Partial match: YXYYY
 9800:     YXYYYY\P 
 9801: Partial match: YXYYYY
 9802:     
 9803: /(Y)X\1{2,4}?b/
 9804:     YX\P
 9805: Partial match: YX
 9806:     YXY\P
 9807: Partial match: YXY
 9808:     YXYY\P 
 9809: Partial match: YXYY
 9810:     YXYYY\P
 9811: Partial match: YXYYY
 9812:     YXYYYY\P 
 9813: Partial match: YXYYYY
 9814:     
 9815: /(Y)X\1{2,4}+b/
 9816:     YX\P
 9817: Partial match: YX
 9818:     YXY\P
 9819: Partial match: YXY
 9820:     YXYY\P 
 9821: Partial match: YXYY
 9822:     YXYYY\P
 9823: Partial match: YXYYY
 9824:     YXYYYY\P 
 9825: Partial match: YXYYYY
 9826:     
 9827: /\++\KZ|\d+X|9+Y/
 9828:     ++++123999\P
 9829: Partial match: 123999
 9830:     ++++123999Y\P
 9831:  0: 999Y
 9832:     ++++Z1234\P 
 9833:  0: Z
 9834: 
 9835: /Z(*F)/
 9836:     Z\P
 9837: No match
 9838:     ZA\P 
 9839: No match
 9840:     
 9841: /Z(?!)/
 9842:     Z\P 
 9843: No match
 9844:     ZA\P 
 9845: No match
 9846: 
 9847: /dog(sbody)?/
 9848:     dogs\P
 9849:  0: dog
 9850:     dogs\P\P 
 9851: Partial match: dogs
 9852:     
 9853: /dog(sbody)??/
 9854:     dogs\P
 9855:  0: dog
 9856:     dogs\P\P 
 9857:  0: dog
 9858: 
 9859: /dog|dogsbody/
 9860:     dogs\P
 9861:  0: dog
 9862:     dogs\P\P 
 9863:  0: dog
 9864:  
 9865: /dogsbody|dog/
 9866:     dogs\P
 9867:  0: dog
 9868:     dogs\P\P 
 9869: Partial match: dogs
 9870: 
 9871: /\bthe cat\b/
 9872:     the cat\P
 9873:  0: the cat
 9874:     the cat\P\P
 9875: Partial match: the cat
 9876: 
 9877: /abc/
 9878:    abc\P
 9879:  0: abc
 9880:    abc\P\P
 9881:  0: abc
 9882:    
 9883: /\w+A/P
 9884:    CDAAAAB 
 9885:  0: CDAAAA
 9886: 
 9887: /\w+A/PU
 9888:    CDAAAAB 
 9889:  0: CDA
 9890: 
 9891: /abc\K123/
 9892:     xyzabc123pqr
 9893:  0: 123
 9894:     xyzabc12\P
 9895: Partial match: abc12
 9896:     xyzabc12\P\P
 9897: Partial match: abc12
 9898:     
 9899: /(?<=abc)123/
 9900:     xyzabc123pqr 
 9901:  0: 123
 9902:     xyzabc12\P
 9903: Partial match: abc12
 9904:     xyzabc12\P\P
 9905: Partial match: abc12
 9906: 
 9907: /\babc\b/
 9908:     +++abc+++
 9909:  0: abc
 9910:     +++ab\P
 9911: Partial match: +ab
 9912:     +++ab\P\P  
 9913: Partial match: +ab
 9914: 
 9915: /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
 9916: ------------------------------------------------------------------
 9917:         Bra
 9918:         Recurse
 9919:         Recurse
 9920:         Cond
 9921:         Cond def
 9922:         CBra 1
 9923:         <
 9924:         [^m]
 9925:         [^>]
 9926:         >
 9927:         [^<]
 9928:         Ket
 9929:         CBra 2
 9930:         \w*+
 9931:         Ket
 9932:         Ket
 9933:         Ket
 9934:         End
 9935: ------------------------------------------------------------------
 9936: 
 9937: /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
 9938: ------------------------------------------------------------------
 9939:         Bra
 9940:         Recurse
 9941:         Recurse
 9942:         Cond
 9943:         Cond def
 9944:         CBra 1
 9945:         <
 9946:         [\x00-/:-\xff] (neg)
 9947:         [^>]
 9948:         >
 9949:         [^<]
 9950:         Ket
 9951:         CBra 2
 9952:         \w*+
 9953:         Ket
 9954:         Ket
 9955:         Ket
 9956:         End
 9957: ------------------------------------------------------------------
 9958: 
 9959: /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
 9960: ------------------------------------------------------------------
 9961:         Bra
 9962:         CBra 1
 9963:         ab
 9964:         Ket
 9965:         CBra 2
 9966:         x
 9967:         CBra 3
 9968:         y
 9969:         Ket
 9970:         z
 9971:         CBra 4
 9972:         cd
 9973:         Close 4
 9974:         Close 2
 9975:         *ACCEPT
 9976:         Ket
 9977:         Ket
 9978:         pq
 9979:         Ket
 9980:         End
 9981: ------------------------------------------------------------------
 9982: 
 9983: /abc\K/+
 9984:     abcdef
 9985:  0: 
 9986:  0+ def
 9987:     abcdef\N\N
 9988:  0: 
 9989:  0+ def
 9990:     xyzabcdef\N\N
 9991:  0: 
 9992:  0+ def
 9993:     ** Failers
 9994: No match
 9995:     abcdef\N 
 9996: No match
 9997:     xyzabcdef\N
 9998: No match
 9999:     
10000: /^(?:(?=abc)|abc\K)/+
10001:     abcdef
10002:  0: 
10003:  0+ abcdef
10004:     abcdef\N\N 
10005:  0: 
10006:  0+ def
10007:     ** Failers 
10008: No match
10009:     abcdef\N 
10010: No match
10011: 
10012: /a?b?/+
10013:     xyz
10014:  0: 
10015:  0+ xyz
10016:     xyzabc
10017:  0: 
10018:  0+ xyzabc
10019:     xyzabc\N
10020:  0: ab
10021:  0+ c
10022:     xyzabc\N\N
10023:  0: 
10024:  0+ yzabc
10025:     xyz\N\N    
10026:  0: 
10027:  0+ yz
10028:     ** Failers 
10029:  0: 
10030:  0+ ** Failers
10031:     xyz\N 
10032: No match
10033: 
10034: /^a?b?/+
10035:     xyz
10036:  0: 
10037:  0+ xyz
10038:     xyzabc
10039:  0: 
10040:  0+ xyzabc
10041:     ** Failers 
10042:  0: 
10043:  0+ ** Failers
10044:     xyzabc\N
10045: No match
10046:     xyzabc\N\N
10047: No match
10048:     xyz\N\N    
10049: No match
10050:     xyz\N 
10051: No match
10052:     
10053: /^(?<name>a|b\g<name>c)/
10054:     aaaa
10055:  0: a
10056:  1: a
10057:     bacxxx
10058:  0: bac
10059:  1: bac
10060:     bbaccxxx 
10061:  0: bbacc
10062:  1: bbacc
10063:     bbbacccxx
10064:  0: bbbaccc
10065:  1: bbbaccc
10066: 
10067: /^(?<name>a|b\g'name'c)/
10068:     aaaa
10069:  0: a
10070:  1: a
10071:     bacxxx
10072:  0: bac
10073:  1: bac
10074:     bbaccxxx 
10075:  0: bbacc
10076:  1: bbacc
10077:     bbbacccxx
10078:  0: bbbaccc
10079:  1: bbbaccc
10080: 
10081: /^(a|b\g<1>c)/
10082:     aaaa
10083:  0: a
10084:  1: a
10085:     bacxxx
10086:  0: bac
10087:  1: bac
10088:     bbaccxxx 
10089:  0: bbacc
10090:  1: bbacc
10091:     bbbacccxx
10092:  0: bbbaccc
10093:  1: bbbaccc
10094: 
10095: /^(a|b\g'1'c)/
10096:     aaaa
10097:  0: a
10098:  1: a
10099:     bacxxx
10100:  0: bac
10101:  1: bac
10102:     bbaccxxx 
10103:  0: bbacc
10104:  1: bbacc
10105:     bbbacccxx
10106:  0: bbbaccc
10107:  1: bbbaccc
10108: 
10109: /^(a|b\g'-1'c)/
10110:     aaaa
10111:  0: a
10112:  1: a
10113:     bacxxx
10114:  0: bac
10115:  1: bac
10116:     bbaccxxx 
10117:  0: bbacc
10118:  1: bbacc
10119:     bbbacccxx
10120:  0: bbbaccc
10121:  1: bbbaccc
10122: 
10123: /(^(a|b\g<-1>c))/
10124:     aaaa
10125:  0: a
10126:  1: a
10127:  2: a
10128:     bacxxx
10129:  0: bac
10130:  1: bac
10131:  2: bac
10132:     bbaccxxx 
10133:  0: bbacc
10134:  1: bbacc
10135:  2: bbacc
10136:     bbbacccxx
10137:  0: bbbaccc
10138:  1: bbbaccc
10139:  2: bbbaccc
10140: 
10141: /(?-i:\g<name>)(?i:(?<name>a))/
10142:     XaaX
10143:  0: aa
10144:  1: a
10145:     XAAX 
10146:  0: AA
10147:  1: A
10148: 
10149: /(?i:\g<name>)(?-i:(?<name>a))/
10150:     XaaX
10151:  0: aa
10152:  1: a
10153:     ** Failers 
10154: No match
10155:     XAAX 
10156: No match
10157: 
10158: /(?-i:\g<+1>)(?i:(a))/
10159:     XaaX
10160:  0: aa
10161:  1: a
10162:     XAAX 
10163:  0: AA
10164:  1: A
10165: 
10166: /(?=(?<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>\})\}))\{/
10167: 
10168: /(?<n>a|b|c)\g<n>*/
10169:    abc
10170:  0: abc
10171:  1: a
10172:    accccbbb 
10173:  0: accccbbb
10174:  1: a
10175: 
10176: /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
10177:     XYabcdY
10178:  0: XYabcdY
10179:  1: a
10180:  2: b
10181:  3: <unset>
10182:  4: <unset>
10183:  5: c
10184:  6: d
10185:  7: Y
10186: 
10187: /(?<=b(?1)|zzz)(a)/
10188:     xbaax
10189:  0: a
10190:  1: a
10191:     xzzzax 
10192:  0: a
10193:  1: a
10194: 
10195: /(a)(?<=b\1)/
10196: Failed: lookbehind assertion is not fixed length at offset 10
10197: 
10198: /(a)(?<=b+(?1))/
10199: Failed: lookbehind assertion is not fixed length at offset 13
10200: 
10201: /(a+)(?<=b(?1))/
10202: Failed: lookbehind assertion is not fixed length at offset 14
10203: 
10204: /(a(?<=b(?1)))/
10205: Failed: lookbehind assertion is not fixed length at offset 13
10206: 
10207: /(?<=b(?1))xyz/
10208: Failed: reference to non-existent subpattern at offset 8
10209: 
10210: /(?<=b(?1))xyz(b+)pqrstuvew/
10211: Failed: lookbehind assertion is not fixed length at offset 26
10212: 
10213: /(a|bc)\1/SI
10214: Capturing subpattern count = 1
10215: Max back reference = 1
10216: No options
10217: No first char
10218: No need char
10219: Subject length lower bound = 2
10220: Starting byte set: a b 
10221: 
10222: /(a|bc)\1{2,3}/SI
10223: Capturing subpattern count = 1
10224: Max back reference = 1
10225: No options
10226: No first char
10227: No need char
10228: Subject length lower bound = 3
10229: Starting byte set: a b 
10230: 
10231: /(a|bc)(?1)/SI
10232: Capturing subpattern count = 1
10233: No options
10234: No first char
10235: No need char
10236: Subject length lower bound = 2
10237: Starting byte set: a b 
10238: 
10239: /(a|b\1)(a|b\1)/SI
10240: Capturing subpattern count = 2
10241: Max back reference = 1
10242: No options
10243: No first char
10244: No need char
10245: Subject length lower bound = 2
10246: Starting byte set: a b 
10247: 
10248: /(a|b\1){2}/SI
10249: Capturing subpattern count = 1
10250: Max back reference = 1
10251: No options
10252: No first char
10253: No need char
10254: Subject length lower bound = 2
10255: Starting byte set: a b 
10256: 
10257: /(a|bbbb\1)(a|bbbb\1)/SI
10258: Capturing subpattern count = 2
10259: Max back reference = 1
10260: No options
10261: No first char
10262: No need char
10263: Subject length lower bound = 2
10264: Starting byte set: a b 
10265: 
10266: /(a|bbbb\1){2}/SI
10267: Capturing subpattern count = 1
10268: Max back reference = 1
10269: No options
10270: No first char
10271: No need char
10272: Subject length lower bound = 2
10273: Starting byte set: a b 
10274: 
10275: /^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
10276: Capturing subpattern count = 1
10277: Options: anchored
10278: No first char
10279: Need char = ':'
10280: Subject length lower bound = 22
10281: No set of starting bytes
10282: 
10283: /  (?: [\040\t] |  \(
10284: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10285: \)  )*                          # optional leading comment
10286: (?:    (?:
10287: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10288: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10289: |
10290: " (?:                      # opening quote...
10291: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10292: |                     #    or
10293: \\ [^\x80-\xff]           #   Escaped something (something != CR)
10294: )* "  # closing quote
10295: )                    # initial word
10296: (?:  (?: [\040\t] |  \(
10297: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10298: \)  )*  \.  (?: [\040\t] |  \(
10299: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10300: \)  )*   (?:
10301: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10302: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10303: |
10304: " (?:                      # opening quote...
10305: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10306: |                     #    or
10307: \\ [^\x80-\xff]           #   Escaped something (something != CR)
10308: )* "  # closing quote
10309: )  )* # further okay, if led by a period
10310: (?: [\040\t] |  \(
10311: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10312: \)  )*  @  (?: [\040\t] |  \(
10313: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10314: \)  )*    (?:
10315: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10316: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10317: |   \[                         # [
10318: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10319: \]                        #           ]
10320: )                           # initial subdomain
10321: (?:                                  #
10322: (?: [\040\t] |  \(
10323: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10324: \)  )*  \.                        # if led by a period...
10325: (?: [\040\t] |  \(
10326: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10327: \)  )*   (?:
10328: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10329: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10330: |   \[                         # [
10331: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10332: \]                        #           ]
10333: )                     #   ...further okay
10334: )*
10335: # address
10336: |                     #  or
10337: (?:
10338: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10339: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10340: |
10341: " (?:                      # opening quote...
10342: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10343: |                     #    or
10344: \\ [^\x80-\xff]           #   Escaped something (something != CR)
10345: )* "  # closing quote
10346: )             # one word, optionally followed by....
10347: (?:
10348: [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
10349: \(
10350: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10351: \)       |  # comments, or...
10352: 
10353: " (?:                      # opening quote...
10354: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10355: |                     #    or
10356: \\ [^\x80-\xff]           #   Escaped something (something != CR)
10357: )* "  # closing quote
10358: # quoted strings
10359: )*
10360: <  (?: [\040\t] |  \(
10361: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10362: \)  )*                     # leading <
10363: (?:  @  (?: [\040\t] |  \(
10364: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10365: \)  )*    (?:
10366: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10367: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10368: |   \[                         # [
10369: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10370: \]                        #           ]
10371: )                           # initial subdomain
10372: (?:                                  #
10373: (?: [\040\t] |  \(
10374: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10375: \)  )*  \.                        # if led by a period...
10376: (?: [\040\t] |  \(
10377: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10378: \)  )*   (?:
10379: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10380: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10381: |   \[                         # [
10382: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10383: \]                        #           ]
10384: )                     #   ...further okay
10385: )*
10386: 
10387: (?:  (?: [\040\t] |  \(
10388: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10389: \)  )*  ,  (?: [\040\t] |  \(
10390: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10391: \)  )*  @  (?: [\040\t] |  \(
10392: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10393: \)  )*    (?:
10394: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10395: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10396: |   \[                         # [
10397: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10398: \]                        #           ]
10399: )                           # initial subdomain
10400: (?:                                  #
10401: (?: [\040\t] |  \(
10402: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10403: \)  )*  \.                        # if led by a period...
10404: (?: [\040\t] |  \(
10405: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10406: \)  )*   (?:
10407: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10408: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10409: |   \[                         # [
10410: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10411: \]                        #           ]
10412: )                     #   ...further okay
10413: )*
10414: )* # further okay, if led by comma
10415: :                                # closing colon
10416: (?: [\040\t] |  \(
10417: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10418: \)  )*  )? #       optional route
10419: (?:
10420: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10421: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10422: |
10423: " (?:                      # opening quote...
10424: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10425: |                     #    or
10426: \\ [^\x80-\xff]           #   Escaped something (something != CR)
10427: )* "  # closing quote
10428: )                    # initial word
10429: (?:  (?: [\040\t] |  \(
10430: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10431: \)  )*  \.  (?: [\040\t] |  \(
10432: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10433: \)  )*   (?:
10434: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10435: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10436: |
10437: " (?:                      # opening quote...
10438: [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10439: |                     #    or
10440: \\ [^\x80-\xff]           #   Escaped something (something != CR)
10441: )* "  # closing quote
10442: )  )* # further okay, if led by a period
10443: (?: [\040\t] |  \(
10444: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10445: \)  )*  @  (?: [\040\t] |  \(
10446: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10447: \)  )*    (?:
10448: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10449: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10450: |   \[                         # [
10451: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10452: \]                        #           ]
10453: )                           # initial subdomain
10454: (?:                                  #
10455: (?: [\040\t] |  \(
10456: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10457: \)  )*  \.                        # if led by a period...
10458: (?: [\040\t] |  \(
10459: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10460: \)  )*   (?:
10461: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10462: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10463: |   \[                         # [
10464: (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10465: \]                        #           ]
10466: )                     #   ...further okay
10467: )*
10468: #       address spec
10469: (?: [\040\t] |  \(
10470: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10471: \)  )*  > #                  trailing >
10472: # name and address
10473: )  (?: [\040\t] |  \(
10474: (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10475: \)  )*                       # optional trailing comment
10476: /xSI
10477: Capturing subpattern count = 0
10478: Contains explicit CR or LF match
10479: Options: extended
10480: No first char
10481: No need char
10482: Subject length lower bound = 3
10483: Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8 
10484:   9 = ? 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 ^ _ ` a b c d e 
10485:   f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f 
10486: 
10487: /<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
10488: Capturing subpattern count = 11
10489: Options: caseless dotall
10490: First char = '<'
10491: Need char = '>'
10492: Subject length lower bound = 47
10493: No set of starting bytes
10494: 
10495: "(?>.*/)foo"SI
10496: Capturing subpattern count = 0
10497: No options
10498: First char at start or follows newline
10499: Need char = 'o'
10500: Subject length lower bound = 4
10501: No set of starting bytes
10502: 
10503: /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10504: Capturing subpattern count = 0
10505: Options: extended
10506: No first char
10507: Need char = '-'
10508: Subject length lower bound = 8
10509: No set of starting bytes
10510: 
10511: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10512: Capturing subpattern count = 1
10513: Options: caseless
10514: No first char
10515: No need char
10516: Subject length lower bound = 1
10517: Starting byte set: A B C a b c 
10518: 
10519: /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10520: Capturing subpattern count = 0
10521: No options
10522: No first char
10523: Need char = 'b'
10524: Subject length lower bound = 41
10525: Starting byte set: c d 
10526: 
10527: /<a[\s]+href[\s]*=[\s]*          # find <a href=
10528:  ([\"\'])?                       # find single or double quote
10529:  (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10530:                                  # quote, otherwise match up to next space
10531: /isxSI
10532: Capturing subpattern count = 3
10533: Max back reference = 1
10534: Options: caseless extended dotall
10535: First char = '<'
10536: Need char = '='
10537: Subject length lower bound = 9
10538: No set of starting bytes
10539: 
10540: /^(?!:)                       # colon disallowed at start
10541:   (?:                         # start of item
10542:     (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10543:     (?(1)0 | () ) )           # if null previously matched, fail; else null
10544:     :                         # followed by colon
10545:   ){1,7}                      # end item; 1-7 of them required               
10546:   [0-9a-f]{1,4} $             # final hex number at end of string
10547:   (?(1)|.)                    # check that there was an empty component
10548:   /xiIS
10549: Capturing subpattern count = 1
10550: Options: anchored caseless extended
10551: No first char
10552: Need char = ':'
10553: Subject length lower bound = 2
10554: No set of starting bytes
10555: 
10556: /(?|(?<a>A)|(?<a>B))/I
10557: Capturing subpattern count = 1
10558: Named capturing subpatterns:
10559:   a   1
10560:   a   1
10561: No options
10562: No first char
10563: No need char
10564:     AB\Ca
10565:  0: A
10566:  1: A
10567:   C A (1) a
10568:     BA\Ca
10569:  0: B
10570:  1: B
10571:   C B (1) a
10572: 
10573: /(?|(?<a>A)|(?<b>B))/ 
10574: Failed: different names for subpatterns of the same number are not allowed at offset 15
10575: 
10576: /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10577:     b(?<quote> (?<apostrophe>')|(?<realquote>")) ) 
10578:     (?('quote')[a-z]+|[0-9]+)/JIx
10579: Capturing subpattern count = 6
10580: Named capturing subpatterns:
10581:   apostrophe   2
10582:   apostrophe   5
10583:   quote        1
10584:   quote        4
10585:   realquote    3
10586:   realquote    6
10587: Options: extended dupnames
10588: No first char
10589: No need char
10590:     a"aaaaa
10591:  0: a"aaaaa
10592:  1: "
10593:  2: <unset>
10594:  3: "
10595:     b"aaaaa 
10596:  0: b"aaaaa
10597:  1: <unset>
10598:  2: <unset>
10599:  3: <unset>
10600:  4: "
10601:  5: <unset>
10602:  6: "
10603:     ** Failers 
10604: No match
10605:     b"11111
10606: No match
10607:     a"11111 
10608: No match
10609:     
10610: /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10611: ------------------------------------------------------------------
10612:         Bra
10613:         ^
10614:         Bra
10615:         CBra 1
10616:         a
10617:         Ket
10618:         CBra 2
10619:         b
10620:         Ket
10621:         CBra 3
10622:         c
10623:         Ket
10624:         CBra 4
10625:         d
10626:         Ket
10627:         Alt
10628:         CBra 1
10629:         e
10630:         Ket
10631:         Ket
10632:         Cond
10633:       4 Cond nref
10634:         X
10635:         Alt
10636:         Y
10637:         Ket
10638:         Ket
10639:         End
10640: ------------------------------------------------------------------
10641: Capturing subpattern count = 4
10642: Named capturing subpatterns:
10643:   D   4
10644:   D   1
10645: Options: anchored extended dupnames
10646: No first char
10647: No need char
10648:     abcdX
10649:  0: abcdX
10650:  1: a
10651:  2: b
10652:  3: c
10653:  4: d
10654:     eX
10655:  0: eX
10656:  1: e
10657:     ** Failers
10658: No match
10659:     abcdY
10660: No match
10661:     ey     
10662: No match
10663:     
10664: /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10665: ------------------------------------------------------------------
10666:         Bra
10667:         CBra 1
10668:         a
10669:         Ket
10670:         CBra 2
10671:         b
10672:         Ket
10673:         CBra 3
10674:         c
10675:         Ket
10676:         CBra 4
10677:         d
10678:         Cond
10679:         Cond nrecurse 1
10680:         $
10681:         Alt
10682:         Recurse
10683:         Ket
10684:         Ket
10685:         Ket
10686:         End
10687: ------------------------------------------------------------------
10688: Capturing subpattern count = 4
10689: Named capturing subpatterns:
10690:   A   1
10691:   A   4
10692: Options: extended dupnames
10693: First char = 'a'
10694: Need char = 'd'
10695:     abcdd
10696:  0: abcdd
10697:  1: a
10698:  2: b
10699:  3: c
10700:  4: dd
10701:     ** Failers
10702: No match
10703:     abcdde  
10704: No match
10705: 
10706: /abcd*/
10707:     xxxxabcd\P
10708:  0: abcd
10709:     xxxxabcd\P\P
10710: Partial match: abcd
10711: 
10712: /abcd*/i
10713:     xxxxabcd\P
10714:  0: abcd
10715:     xxxxabcd\P\P
10716: Partial match: abcd
10717:     XXXXABCD\P
10718:  0: ABCD
10719:     XXXXABCD\P\P
10720: Partial match: ABCD
10721: 
10722: /abc\d*/
10723:     xxxxabc1\P
10724:  0: abc1
10725:     xxxxabc1\P\P
10726: Partial match: abc1
10727: 
10728: /(a)bc\1*/
10729:     xxxxabca\P
10730:  0: abca
10731:  1: a
10732:     xxxxabca\P\P
10733: Partial match: abca
10734: 
10735: /abc[de]*/
10736:     xxxxabcde\P
10737:  0: abcde
10738:     xxxxabcde\P\P
10739: Partial match: abcde
10740: 
10741: /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10742:     broken and not behaving as specified in that it *does* bumpalong after
10743:     hitting (*COMMIT). --/
10744: 
10745: /(?1)(A(*COMMIT)|B)D/
10746:     ABD
10747:  0: ABD
10748:  1: B
10749:     XABD
10750:  0: ABD
10751:  1: B
10752:     BAD
10753:  0: BAD
10754:  1: A
10755:     ABXABD  
10756:  0: ABD
10757:  1: B
10758:     ** Failers 
10759: No match
10760:     ABX 
10761: No match
10762:     BAXBAD  
10763: No match
10764: 
10765: /(\3)(\1)(a)/<JS>
10766:     cat
10767:  0: a
10768:  1: 
10769:  2: 
10770:  3: a
10771: 
10772: /(\3)(\1)(a)/SI<JS>
10773: Capturing subpattern count = 3
10774: Max back reference = 3
10775: Options:
10776: No first char
10777: Need char = 'a'
10778: Subject length lower bound = 1
10779: No set of starting bytes
10780:     cat
10781:  0: a
10782:  1: 
10783:  2: 
10784:  3: a
10785: 
10786: /(\3)(\1)(a)/SI
10787: Capturing subpattern count = 3
10788: Max back reference = 3
10789: No options
10790: No first char
10791: Need char = 'a'
10792: Subject length lower bound = 3
10793: No set of starting bytes
10794:     cat
10795: No match
10796: 
10797: /i(?(DEFINE)(?<s>a))/SI
10798: Capturing subpattern count = 1
10799: Named capturing subpatterns:
10800:   s   1
10801: No options
10802: First char = 'i'
10803: No need char
10804: Subject length lower bound = 1
10805: No set of starting bytes
10806:     i
10807:  0: i
10808:     
10809: /()i(?(1)a)/SI 
10810: Capturing subpattern count = 1
10811: No options
10812: No first char
10813: Need char = 'i'
10814: Subject length lower bound = 1
10815: Starting byte set: i 
10816:     ia
10817:  0: ia
10818:  1: 
10819: 
10820: /(?i)a(?-i)b|c/BZ
10821: ------------------------------------------------------------------
10822:         Bra
10823:      /i a
10824:         b
10825:         Alt
10826:         c
10827:         Ket
10828:         End
10829: ------------------------------------------------------------------
10830:     XabX
10831:  0: ab
10832:     XAbX
10833:  0: Ab
10834:     CcC 
10835:  0: c
10836:     ** Failers
10837: No match
10838:     XABX   
10839: No match
10840: 
10841: /(?i)a(?s)b|c/BZ
10842: ------------------------------------------------------------------
10843:         Bra
10844:      /i ab
10845:         Alt
10846:      /i c
10847:         Ket
10848:         End
10849: ------------------------------------------------------------------
10850: 
10851: /(?i)a(?s-i)b|c/BZ
10852: ------------------------------------------------------------------
10853:         Bra
10854:      /i a
10855:         b
10856:         Alt
10857:         c
10858:         Ket
10859:         End
10860: ------------------------------------------------------------------
10861: 
10862: /^(ab(c\1)d|x){2}$/BZ
10863: ------------------------------------------------------------------
10864:         Bra
10865:         ^
10866:         Once
10867:         CBra 1
10868:         ab
10869:         CBra 2
10870:         c
10871:         \1
10872:         Ket
10873:         d
10874:         Alt
10875:         x
10876:         Ket
10877:         Ket
10878:         Once
10879:         CBra 1
10880:         ab
10881:         CBra 2
10882:         c
10883:         \1
10884:         Ket
10885:         d
10886:         Alt
10887:         x
10888:         Ket
10889:         Ket
10890:         $
10891:         Ket
10892:         End
10893: ------------------------------------------------------------------
10894:     xabcxd
10895:  0: xabcxd
10896:  1: abcxd
10897:  2: cx
10898:     
10899: /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10900: ------------------------------------------------------------------
10901:         Bra
10902:         ^
10903:         Braposzero
10904:         SBraPos
10905:         Recurse
10906:         KetRpos
10907:         Cond
10908:         Cond def
10909:         CBra 1
10910:         Any
10911:         Ket
10912:         Ket
10913:         $
10914:         Ket
10915:         End
10916: ------------------------------------------------------------------
10917: 
10918: /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10919: ------------------------------------------------------------------
10920:         Bra
10921:         ^
10922:         Brazero
10923:         Once
10924:         Recurse
10925:         KetRmax
10926:         Cond
10927:         Cond def
10928:         CBra 1
10929:         Any
10930:         Ket
10931:         Ket
10932:         $
10933:         Ket
10934:         End
10935: ------------------------------------------------------------------
10936: 
10937: / -- The first four of these are not in the Perl >= 5.10 test because Perl 
10938:      documents that the use of \K in assertions is "not well defined". The
10939:      last is here because Perl gives the match as "b" rather than "ab". I
10940:      believe this to be a Perl bug. --/  
10941:       
10942: /(?=a\Kb)ab/
10943:     ab 
10944:  0: b
10945: 
10946: /(?!a\Kb)ac/
10947:     ac 
10948:  0: ac
10949:     
10950: /^abc(?<=b\Kc)d/
10951:     abcd
10952:  0: cd
10953: 
10954: /^abc(?<!b\Kq)d/
10955:     abcd
10956:  0: abcd
10957: 
10958: /(?>a\Kb)z|(ab)/
10959:     ab 
10960:  0: ab
10961:  1: ab
10962: 
10963: /----------------------/
10964: 
10965: /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10966: Failed: recursive call could loop indefinitely at offset 31
10967: 
10968: /abc(*MARK:)pqr/
10969: Failed: (*MARK) must have an argument at offset 10
10970: 
10971: /abc(*:)pqr/
10972: Failed: (*MARK) must have an argument at offset 6
10973: 
10974: /abc(*FAIL:123)xyz/
10975: Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10976: 
10977: /--- This should, and does, fail. In Perl, it does not, which I think is a 
10978:      bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10979: 
10980: /A(*COMMIT)B/+K
10981:     ACABX
10982: No match
10983: 
10984: /--- These should be different, but in Perl 5.11 are not, which I think
10985:      is a bug in Perl. ---/
10986: 
10987: /A(*THEN)B|A(*THEN)C/K
10988:     AC
10989:  0: AC
10990: 
10991: /A(*PRUNE)B|A(*PRUNE)C/K
10992:     AC
10993: No match
10994:     
10995: /--- This should fail; the SKIP advances by one, but when we get to AC, the
10996:      PRUNE kills it. Perl behaves differently. ---/ 
10997:     
10998: /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10999:     AAAC
11000: No match, mark = A
11001: 
11002: /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
11003: though PCRE does. ---/
11004: 
11005: /^A(*:A)B|^X(*:A)Y/K
11006:     ** Failers
11007: No match
11008:     XAQQ
11009: No match, mark = A
11010:     
11011: /--- COMMIT at the start of a pattern should be the same as an anchor. Perl 
11012: optimizations defeat this. So does the PCRE optimization unless we disable it 
11013: with \Y. ---/
11014: 
11015: /(*COMMIT)ABC/
11016:     ABCDEFG
11017:  0: ABC
11018:     ** Failers
11019: No match
11020:     DEFGABC\Y  
11021: No match
11022:     
11023: /^(ab (c+(*THEN)cd) | xyz)/x
11024:     abcccd  
11025: No match
11026: 
11027: /^(ab (c+(*PRUNE)cd) | xyz)/x
11028:     abcccd  
11029: No match
11030: 
11031: /^(ab (c+(*FAIL)cd) | xyz)/x
11032:     abcccd  
11033: No match
11034:     
11035: /--- Perl 5.11 gets some of these wrong ---/ 
11036: 
11037: /(?>.(*ACCEPT))*?5/
11038:     abcde
11039:  0: a
11040: 
11041: /(.(*ACCEPT))*?5/
11042:     abcde
11043:  0: a
11044:  1: a
11045: 
11046: /(.(*ACCEPT))5/
11047:     abcde
11048:  0: a
11049:  1: a
11050: 
11051: /(.(*ACCEPT))*5/
11052:     abcde
11053:  0: a
11054:  1: a
11055: 
11056: /A\NB./BZ
11057: ------------------------------------------------------------------
11058:         Bra
11059:         A
11060:         Any
11061:         B
11062:         Any
11063:         Ket
11064:         End
11065: ------------------------------------------------------------------
11066:     ACBD
11067:  0: ACBD
11068:     *** Failers
11069: No match
11070:     A\nB
11071: No match
11072:     ACB\n   
11073: No match
11074: 
11075: /A\NB./sBZ
11076: ------------------------------------------------------------------
11077:         Bra
11078:         A
11079:         Any
11080:         B
11081:         AllAny
11082:         Ket
11083:         End
11084: ------------------------------------------------------------------
11085:     ACBD
11086:  0: ACBD
11087:     ACB\n 
11088:  0: ACB\x0a
11089:     *** Failers
11090: No match
11091:     A\nB  
11092: No match
11093:   
11094: /A\NB/<crlf>
11095:     A\nB
11096:  0: A\x0aB
11097:     A\rB
11098:  0: A\x0dB
11099:     ** Failers
11100: No match
11101:     A\r\nB    
11102: No match
11103: 
11104: /\R+b/BZ
11105: ------------------------------------------------------------------
11106:         Bra
11107:         \R++
11108:         b
11109:         Ket
11110:         End
11111: ------------------------------------------------------------------
11112: 
11113: /\R+\n/BZ
11114: ------------------------------------------------------------------
11115:         Bra
11116:         \R+
11117:         \x0a
11118:         Ket
11119:         End
11120: ------------------------------------------------------------------
11121: 
11122: /\R+\d/BZ
11123: ------------------------------------------------------------------
11124:         Bra
11125:         \R++
11126:         \d
11127:         Ket
11128:         End
11129: ------------------------------------------------------------------
11130: 
11131: /\d*\R/BZ
11132: ------------------------------------------------------------------
11133:         Bra
11134:         \d*+
11135:         \R
11136:         Ket
11137:         End
11138: ------------------------------------------------------------------
11139: 
11140: /\s*\R/BZ
11141: ------------------------------------------------------------------
11142:         Bra
11143:         \s*+
11144:         \R
11145:         Ket
11146:         End
11147: ------------------------------------------------------------------
11148: 
11149: /-- Perl treats this one differently, not failing the second string. I believe
11150:     that is a bug in Perl. --/
11151: 
11152: /^((abc|abcx)(*THEN)y|abcd)/
11153:     abcd
11154:  0: abcd
11155:  1: abcd
11156:     *** Failers 
11157: No match
11158:     abcxy 
11159: No match
11160: 
11161: /(?<=abc)def/
11162:     abc\P\P
11163: Partial match: abc
11164: 
11165: /abc$/
11166:     abc
11167:  0: abc
11168:     abc\P
11169:  0: abc
11170:     abc\P\P
11171: Partial match: abc
11172: 
11173: /abc$/m
11174:     abc
11175:  0: abc
11176:     abc\n
11177:  0: abc
11178:     abc\P\P
11179: Partial match: abc
11180:     abc\n\P\P 
11181:  0: abc
11182:     abc\P
11183:  0: abc
11184:     abc\n\P
11185:  0: abc
11186: 
11187: /abc\z/
11188:     abc
11189:  0: abc
11190:     abc\P
11191:  0: abc
11192:     abc\P\P
11193: Partial match: abc
11194: 
11195: /abc\Z/
11196:     abc
11197:  0: abc
11198:     abc\P
11199:  0: abc
11200:     abc\P\P
11201: Partial match: abc
11202: 
11203: /abc\b/
11204:     abc
11205:  0: abc
11206:     abc\P
11207:  0: abc
11208:     abc\P\P
11209: Partial match: abc
11210: 
11211: /abc\B/
11212:     abc
11213: No match
11214:     abc\P
11215: Partial match: abc
11216:     abc\P\P
11217: Partial match: abc
11218: 
11219: /.+/
11220:     abc\>0
11221:  0: abc
11222:     abc\>1
11223:  0: bc
11224:     abc\>2
11225:  0: c
11226:     abc\>3
11227: No match
11228:     abc\>4
11229: Error -24 (bad offset value)
11230:     abc\>-4 
11231: Error -24 (bad offset value)
11232: 
11233: /^\cģ/
11234: Failed: \c must be followed by an ASCII character at offset 3
11235: 
11236: /(?P<abn>(?P=abn)xxx)/BZ
11237: ------------------------------------------------------------------
11238:         Bra
11239:         Once
11240:         CBra 1
11241:         \1
11242:         xxx
11243:         Ket
11244:         Ket
11245:         Ket
11246:         End
11247: ------------------------------------------------------------------
11248: 
11249: /(a\1z)/BZ
11250: ------------------------------------------------------------------
11251:         Bra
11252:         Once
11253:         CBra 1
11254:         a
11255:         \1
11256:         z
11257:         Ket
11258:         Ket
11259:         Ket
11260:         End
11261: ------------------------------------------------------------------
11262: 
11263: /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
11264: Failed: syntax error in subpattern name (missing terminator) at offset 29
11265: 
11266: /(?P<abn>(?P=axn)xxx)/BZ
11267: Failed: reference to non-existent subpattern at offset 15
11268: 
11269: /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
11270: ------------------------------------------------------------------
11271:         Bra
11272:         CBra 1
11273:         \2
11274:         xxx
11275:         Ket
11276:         CBra 2
11277:         yy
11278:         Ket
11279:         Ket
11280:         End
11281: ------------------------------------------------------------------
11282: 
11283: /-- These tests are here because Perl gets the first one wrong. --/
11284: 
11285: /(\R*)(.)/s
11286:     \r\n
11287:  0: \x0d
11288:  1: 
11289:  2: \x0d
11290:     \r\r\n\n\r 
11291:  0: \x0d\x0d\x0a\x0a\x0d
11292:  1: \x0d\x0d\x0a\x0a
11293:  2: \x0d
11294:     \r\r\n\n\r\n 
11295:  0: \x0d\x0d\x0a\x0a\x0d
11296:  1: \x0d\x0d\x0a\x0a
11297:  2: \x0d
11298: 
11299: /(\R)*(.)/s
11300:     \r\n
11301:  0: \x0d
11302:  1: <unset>
11303:  2: \x0d
11304:     \r\r\n\n\r 
11305:  0: \x0d\x0d\x0a\x0a\x0d
11306:  1: \x0a
11307:  2: \x0d
11308:     \r\r\n\n\r\n 
11309:  0: \x0d\x0d\x0a\x0a\x0d
11310:  1: \x0a
11311:  2: \x0d
11312: 
11313: /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11314:     \r\n
11315:  0: \x0d
11316:  1: 
11317:  2: \x0d
11318:     \r\r\n\n\r 
11319:  0: \x0d\x0d\x0a\x0a\x0d
11320:  1: \x0d\x0d\x0a\x0a
11321:  2: \x0d
11322:     \r\r\n\n\r\n 
11323:  0: \x0d\x0d\x0a\x0a\x0d
11324:  1: \x0d\x0d\x0a\x0a
11325:  2: \x0d
11326: 
11327: /-- --/
11328: 
11329: /^abc$/BZ
11330: ------------------------------------------------------------------
11331:         Bra
11332:         ^
11333:         abc
11334:         $
11335:         Ket
11336:         End
11337: ------------------------------------------------------------------
11338: 
11339: /^abc$/BZm
11340: ------------------------------------------------------------------
11341:         Bra
11342:      /m ^
11343:         abc
11344:      /m $
11345:         Ket
11346:         End
11347: ------------------------------------------------------------------
11348: 
11349: /^(a)*+(\w)/S
11350:     aaaaX
11351:  0: aaaaX
11352:  1: a
11353:  2: X
11354:     ** Failers 
11355: No match
11356:     aaaa
11357: No match
11358: 
11359: /^(?:a)*+(\w)/S
11360:     aaaaX
11361:  0: aaaaX
11362:  1: X
11363:     ** Failers 
11364: No match
11365:     aaaa
11366: No match
11367: 
11368: /(a)++1234/SDZ
11369: ------------------------------------------------------------------
11370:         Bra
11371:         CBraPos 1
11372:         a
11373:         KetRpos
11374:         1234
11375:         Ket
11376:         End
11377: ------------------------------------------------------------------
11378: Capturing subpattern count = 1
11379: No options
11380: First char = 'a'
11381: Need char = '4'
11382: Subject length lower bound = 5
11383: No set of starting bytes
11384: 
11385: /([abc])++1234/SI
11386: Capturing subpattern count = 1
11387: No options
11388: No first char
11389: Need char = '4'
11390: Subject length lower bound = 5
11391: Starting byte set: a b c 
11392: 
11393: /(?<=(abc)+)X/
11394: Failed: lookbehind assertion is not fixed length at offset 10
11395: 
11396: /(^ab)/I
11397: Capturing subpattern count = 1
11398: Options: anchored
11399: No first char
11400: No need char
11401: 
11402: /(^ab)++/I
11403: Capturing subpattern count = 1
11404: Options: anchored
11405: No first char
11406: No need char
11407: 
11408: /(^ab|^)+/I
11409: Capturing subpattern count = 1
11410: Options: anchored
11411: No first char
11412: No need char
11413: 
11414: /(^ab|^)++/I
11415: Capturing subpattern count = 1
11416: Options: anchored
11417: No first char
11418: No need char
11419: 
11420: /(?:^ab)/I
11421: Capturing subpattern count = 0
11422: Options: anchored
11423: No first char
11424: No need char
11425: 
11426: /(?:^ab)++/I
11427: Capturing subpattern count = 0
11428: Options: anchored
11429: No first char
11430: No need char
11431: 
11432: /(?:^ab|^)+/I
11433: Capturing subpattern count = 0
11434: Options: anchored
11435: No first char
11436: No need char
11437: 
11438: /(?:^ab|^)++/I
11439: Capturing subpattern count = 0
11440: Options: anchored
11441: No first char
11442: No need char
11443: 
11444: /(.*ab)/I
11445: Capturing subpattern count = 1
11446: No options
11447: First char at start or follows newline
11448: Need char = 'b'
11449: 
11450: /(.*ab)++/I
11451: Capturing subpattern count = 1
11452: No options
11453: First char at start or follows newline
11454: Need char = 'b'
11455: 
11456: /(.*ab|.*)+/I
11457: Capturing subpattern count = 1
11458: No options
11459: First char at start or follows newline
11460: No need char
11461: 
11462: /(.*ab|.*)++/I
11463: Capturing subpattern count = 1
11464: No options
11465: First char at start or follows newline
11466: No need char
11467: 
11468: /(?:.*ab)/I
11469: Capturing subpattern count = 0
11470: No options
11471: First char at start or follows newline
11472: Need char = 'b'
11473: 
11474: /(?:.*ab)++/I
11475: Capturing subpattern count = 0
11476: No options
11477: First char at start or follows newline
11478: Need char = 'b'
11479: 
11480: /(?:.*ab|.*)+/I
11481: Capturing subpattern count = 0
11482: No options
11483: First char at start or follows newline
11484: No need char
11485: 
11486: /(?:.*ab|.*)++/I
11487: Capturing subpattern count = 0
11488: No options
11489: First char at start or follows newline
11490: No need char
11491: 
11492: /(?=a)[bcd]/I
11493: Capturing subpattern count = 0
11494: No options
11495: First char = 'a'
11496: No need char
11497: 
11498: /((?=a))[bcd]/I
11499: Capturing subpattern count = 1
11500: No options
11501: First char = 'a'
11502: No need char
11503: 
11504: /((?=a))+[bcd]/I
11505: Capturing subpattern count = 1
11506: No options
11507: First char = 'a'
11508: No need char
11509: 
11510: /((?=a))++[bcd]/I
11511: Capturing subpattern count = 1
11512: No options
11513: First char = 'a'
11514: No need char
11515: 
11516: /(?=a+)[bcd]/iI
11517: Capturing subpattern count = 0
11518: Options: caseless
11519: First char = 'a' (caseless)
11520: No need char
11521: 
11522: /(?=a+?)[bcd]/iI
11523: Capturing subpattern count = 0
11524: Options: caseless
11525: First char = 'a' (caseless)
11526: No need char
11527: 
11528: /(?=a++)[bcd]/iI
11529: Capturing subpattern count = 0
11530: Options: caseless
11531: First char = 'a' (caseless)
11532: No need char
11533: 
11534: /(?=a{3})[bcd]/iI
11535: Capturing subpattern count = 0
11536: Options: caseless
11537: First char = 'a' (caseless)
11538: Need char = 'a' (caseless)
11539: 
11540: /(abc)\1+/S
11541: 
11542: /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11543: 
11544: /(?1)(?:(b(*ACCEPT))){0}/
11545:     b
11546:  0: b
11547: 
11548: /(?1)(?:(b(*ACCEPT))){0}c/
11549:     bc
11550:  0: bc
11551:     ** Failers 
11552: No match
11553:     b 
11554: No match
11555: 
11556: /(?1)(?:((*ACCEPT))){0}c/
11557:     c
11558:  0: c
11559:     c\N 
11560:  0: c
11561: 
11562: /^.*?(?(?=a)a|b(*THEN)c)/
11563:     ba
11564: No match
11565: 
11566: /^.*?(?(?=a)a|bc)/
11567:     ba
11568:  0: ba
11569: 
11570: /^.*?(?(?=a)a(*THEN)b|c)/
11571:     ac
11572: No match
11573: 
11574: /^.*?(?(?=a)a(*THEN)b)c/
11575:     ac
11576: No match
11577: 
11578: /^.*?(a(*THEN)b)c/
11579:     aabc
11580: No match
11581:     
11582: /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11583:     aabc
11584:  0: aabc
11585: 
11586: /^.*?(a(*THEN)b|z)c/
11587:     aabc
11588:  0: aabc
11589:  1: ab
11590: 
11591: /^.*?(z|a(*THEN)b)c/
11592:     aabc
11593:  0: aabc
11594:  1: ab
11595: 
11596: /-- --/
11597: 
11598: /-- These studied versions are here because they are not Perl-compatible; the
11599:     studying means the mark is not seen. --/
11600: 
11601: /(*MARK:A)(*SKIP:B)(C|X)/KS
11602:     C
11603:  0: C
11604:  1: C
11605: MK: A
11606:     D
11607: No match, mark = A
11608:      
11609: /(*:A)A+(*SKIP:A)(B|Z)/KS
11610:     AAAC
11611: No match, mark = A
11612: 
11613: /-- --/
11614: 
11615: "(?=a*(*ACCEPT)b)c"
11616:     c
11617:  0: c
11618:     c\N 
11619:  0: c
11620:     
11621: /(?1)c(?(DEFINE)((*ACCEPT)b))/
11622:     c
11623:  0: c
11624:     c\N  
11625:  0: c
11626:     
11627: /(?>(*ACCEPT)b)c/
11628:     c
11629:  0: 
11630:     c\N  
11631: No match
11632: 
11633: /(?:(?>(a)))+a%/++
11634:     %aa%
11635:  0: aa%
11636:  0+ 
11637:  1: a
11638:  1+ a%
11639: 
11640: /(a)b|ac/++SS
11641:     ac\O3
11642: Matched, but too many substrings
11643:  0: ac
11644:  0+ 
11645:     
11646: /(a)(b)x|abc/++
11647:      abc\O6
11648:  0: abc
11649:  0+ 
11650: 
11651: /(a)bc|(a)(b)\2/
11652:     \O3abc
11653: Matched, but too many substrings
11654:  0: abc
11655:     \O4abc 
11656: Matched, but too many substrings
11657:  0: abc
11658: 
11659: /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11660: Capturing subpattern count = 2
11661: No options
11662: No first char
11663: No need char
11664: Subject length lower bound = 1
11665: No set of starting bytes
11666: 
11667: /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11668: Capturing subpattern count = 2
11669: No options
11670: No first char
11671: No need char
11672: Subject length lower bound = 3
11673: Starting byte set: a b 
11674: 
11675: /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11676: Capturing subpattern count = 2
11677: No options
11678: No first char
11679: No need char
11680: Subject length lower bound = 4
11681: Starting byte set: a b 
11682: 
11683: /(abc)(?1)/SI
11684: Capturing subpattern count = 1
11685: No options
11686: First char = 'a'
11687: Need char = 'c'
11688: Subject length lower bound = 6
11689: No set of starting bytes
11690: 
11691: /^(?>a)++/
11692:     aa\M
11693: Minimum match() limit = 5
11694: Minimum match() recursion limit = 2
11695:  0: aa
11696:     aaaaaaaaa\M 
11697: Minimum match() limit = 12
11698: Minimum match() recursion limit = 2
11699:  0: aaaaaaaaa
11700:     
11701: /(a)(?1)++/
11702:     aa\M
11703: Minimum match() limit = 7
11704: Minimum match() recursion limit = 4
11705:  0: aa
11706:  1: a
11707:     aaaaaaaaa\M  
11708: Minimum match() limit = 21
11709: Minimum match() recursion limit = 4
11710:  0: aaaaaaaaa
11711:  1: a
11712: 
11713: /(?:(foo)|(bar)|(baz))X/SS=
11714:     bazfooX
11715:  0: fooX
11716:  1: foo
11717:  2: <unset>
11718:  3: <unset>
11719:     foobazbarX
11720:  0: barX
11721:  1: <unset>
11722:  2: bar
11723:  3: <unset>
11724:     barfooX
11725:  0: fooX
11726:  1: foo
11727:  2: <unset>
11728:  3: <unset>
11729:     bazX
11730:  0: bazX
11731:  1: <unset>
11732:  2: <unset>
11733:  3: baz
11734:     foobarbazX    
11735:  0: bazX
11736:  1: <unset>
11737:  2: <unset>
11738:  3: baz
11739:     bazfooX\O0
11740: Matched, but too many substrings
11741:     bazfooX\O2
11742: Matched, but too many substrings
11743:  0: fooX
11744:     bazfooX\O4
11745: Matched, but too many substrings
11746:  0: fooX
11747:  1: <unset>
11748:     bazfooX\O6
11749: Matched, but too many substrings
11750:  0: fooX
11751:  1: foo
11752:  2: <unset>
11753:     bazfooX\O8
11754: Matched, but too many substrings
11755:  0: fooX
11756:  1: foo
11757:  2: <unset>
11758:  3: <unset>
11759:     bazfooX\O10
11760:  0: fooX
11761:  1: foo
11762:  2: <unset>
11763:  3: <unset>
11764: 
11765: /(?=abc){3}abc/BZ
11766: ------------------------------------------------------------------
11767:         Bra
11768:         Assert
11769:         abc
11770:         Ket
11771:         abc
11772:         Ket
11773:         End
11774: ------------------------------------------------------------------
11775: 
11776: /(?=abc)+abc/BZ
11777: ------------------------------------------------------------------
11778:         Bra
11779:         Assert
11780:         abc
11781:         Ket
11782:         abc
11783:         Ket
11784:         End
11785: ------------------------------------------------------------------
11786: 
11787: /(?=abc)++abc/BZ
11788: ------------------------------------------------------------------
11789:         Bra
11790:         Assert
11791:         abc
11792:         Ket
11793:         abc
11794:         Ket
11795:         End
11796: ------------------------------------------------------------------
11797: 
11798: /(?=abc){0}xyz/BZ
11799: ------------------------------------------------------------------
11800:         Bra
11801:         Skip zero
11802:         Assert
11803:         abc
11804:         Ket
11805:         xyz
11806:         Ket
11807:         End
11808: ------------------------------------------------------------------
11809: 
11810: /(?=(a))?./BZ
11811: ------------------------------------------------------------------
11812:         Bra
11813:         Brazero
11814:         Assert
11815:         CBra 1
11816:         a
11817:         Ket
11818:         Ket
11819:         Any
11820:         Ket
11821:         End
11822: ------------------------------------------------------------------
11823: 
11824: /(?=(a))??./BZ
11825: ------------------------------------------------------------------
11826:         Bra
11827:         Braminzero
11828:         Assert
11829:         CBra 1
11830:         a
11831:         Ket
11832:         Ket
11833:         Any
11834:         Ket
11835:         End
11836: ------------------------------------------------------------------
11837: 
11838: /^(?=(a)){0}b(?1)/BZ
11839: ------------------------------------------------------------------
11840:         Bra
11841:         ^
11842:         Skip zero
11843:         Assert
11844:         CBra 1
11845:         a
11846:         Ket
11847:         Ket
11848:         b
11849:         Recurse
11850:         Ket
11851:         End
11852: ------------------------------------------------------------------
11853: 
11854: /(?(DEFINE)(a))?b(?1)/BZ
11855: ------------------------------------------------------------------
11856:         Bra
11857:         Cond
11858:         Cond def
11859:         CBra 1
11860:         a
11861:         Ket
11862:         Ket
11863:         b
11864:         Recurse
11865:         Ket
11866:         End
11867: ------------------------------------------------------------------
11868: 
11869: /^(?=(?1))?[az]([abc])d/BZ
11870: ------------------------------------------------------------------
11871:         Bra
11872:         ^
11873:         Brazero
11874:         Assert
11875:         Recurse
11876:         Ket
11877:         [az]
11878:         CBra 1
11879:         [a-c]
11880:         Ket
11881:         d
11882:         Ket
11883:         End
11884: ------------------------------------------------------------------
11885: 
11886: /^(?!a){0}\w+/BZ
11887: ------------------------------------------------------------------
11888:         Bra
11889:         ^
11890:         Skip zero
11891:         Assert not
11892:         a
11893:         Ket
11894:         \w+
11895:         Ket
11896:         End
11897: ------------------------------------------------------------------
11898: 
11899: /(?<=(abc))?xyz/BZ
11900: ------------------------------------------------------------------
11901:         Bra
11902:         Brazero
11903:         AssertB
11904:         Reverse
11905:         CBra 1
11906:         abc
11907:         Ket
11908:         Ket
11909:         xyz
11910:         Ket
11911:         End
11912: ------------------------------------------------------------------
11913: 
11914: /[:a[:abc]b:]/BZ
11915: ------------------------------------------------------------------
11916:         Bra
11917:         [:[a-c]
11918:         b:]
11919:         Ket
11920:         End
11921: ------------------------------------------------------------------
11922: 
11923: /((?2))((?1))/SS
11924:     abc
11925: Error -26 (nested recursion at the same subject position)
11926: 
11927: /((?(R2)a+|(?1)b))/SS
11928:     aaaabcde
11929: Error -26 (nested recursion at the same subject position)
11930: 
11931: /(?(R)a*(?1)|((?R))b)/SS
11932:     aaaabcde
11933: Error -26 (nested recursion at the same subject position)
11934: 
11935: /(a+|(?R)b)/
11936: Failed: recursive call could loop indefinitely at offset 7
11937: 
11938: /^(a(*:A)(d|e(*:B))z|aeq)/C
11939:     adz
11940: --->adz
11941:  +0 ^       ^
11942:  +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11943:  +2 ^       a
11944:  +3 ^^      (*:A)
11945:  +8 ^^      (d|e(*:B))
11946: Latest Mark: A
11947:  +9 ^^      d
11948: +10 ^ ^     |
11949: +18 ^ ^     z
11950: +19 ^  ^    |
11951: +24 ^  ^    
11952:  0: adz
11953:  1: adz
11954:  2: d
11955:     aez
11956: --->aez
11957:  +0 ^       ^
11958:  +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11959:  +2 ^       a
11960:  +3 ^^      (*:A)
11961:  +8 ^^      (d|e(*:B))
11962: Latest Mark: A
11963:  +9 ^^      d
11964: +11 ^^      e
11965: +12 ^ ^     (*:B)
11966: +17 ^ ^     )
11967: Latest Mark: B
11968: +18 ^ ^     z
11969: +19 ^  ^    |
11970: +24 ^  ^    
11971:  0: aez
11972:  1: aez
11973:  2: e
11974:     aeqwerty
11975: --->aeqwerty
11976:  +0 ^            ^
11977:  +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11978:  +2 ^            a
11979:  +3 ^^           (*:A)
11980:  +8 ^^           (d|e(*:B))
11981: Latest Mark: A
11982:  +9 ^^           d
11983: +11 ^^           e
11984: +12 ^ ^          (*:B)
11985: +17 ^ ^          )
11986: Latest Mark: B
11987: +18 ^ ^          z
11988: +20 ^            a
11989: +21 ^^           e
11990: +22 ^ ^          q
11991: +23 ^  ^         )
11992: +24 ^  ^         
11993:  0: aeq
11994:  1: aeq
11995: 
11996: /.(*F)/
11997:     \P\Pabc
11998: No match
11999: 
12000: /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
12001: Capturing subpattern count = 0
12002: No options
12003: First char = 't'
12004: Need char = 't'
12005: Subject length lower bound = 18
12006: No set of starting bytes
12007: 
12008: /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
12009: Capturing subpattern count = 0
12010: No options
12011: No first char
12012: No need char
12013: Subject length lower bound = 8
12014: Starting byte set: < o t u 
12015: 
12016: /a(*SKIP)c|b(*ACCEPT)|/+SI
12017: Capturing subpattern count = 0
12018: No options
12019: No first char
12020: No need char
12021: Study returned NULL
12022:     a
12023:  0: 
12024:  0+ 
12025: 
12026: /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
12027: Capturing subpattern count = 0
12028: No options
12029: No first char
12030: No need char
12031: Subject length lower bound = -1
12032: Starting byte set: a b x 
12033:     ax
12034:  0: x
12035: 
12036: 'a*(*ACCEPT)b'+
12037:     \N\N
12038: No match
12039:     abc\N\N
12040:  0: a
12041:  0+ bc
12042:     bbb\N\N 
12043:  0: 
12044:  0+ bb
12045: 
12046: /(*ACCEPT)a/+I
12047: Capturing subpattern count = 0
12048: No options
12049: No first char
12050: No need char
12051:     bax
12052:  0: 
12053:  0+ bax
12054: 
12055: /z(*ACCEPT)a/+I
12056: Capturing subpattern count = 0
12057: No options
12058: First char = 'z'
12059: No need char
12060:     baxzbx
12061:  0: z
12062:  0+ bx
12063: 
12064: /a(?:.)*?a/ims                                                                  
12065:     \Mabbbbbbbbbbbbbbbbbbbbba
12066: Minimum match() limit = 65
12067: Minimum match() recursion limit = 2
12068:  0: abbbbbbbbbbbbbbbbbbbbba
12069:     
12070: /a(?:.(*THEN))*?a/ims
12071:     \Mabbbbbbbbbbbbbbbbbbbbba
12072: Minimum match() limit = 86
12073: Minimum match() recursion limit = 45
12074:  0: abbbbbbbbbbbbbbbbbbbbba
12075: 
12076: /a(?:.(*THEN:ABC))*?a/ims
12077:     \Mabbbbbbbbbbbbbbbbbbbbba
12078: Minimum match() limit = 86
12079: Minimum match() recursion limit = 45
12080:  0: abbbbbbbbbbbbbbbbbbbbba
12081: 
12082: /-- These tests are in agreement with development Perl 5.015, which has fixed
12083:     some things, but they don't all work with 5.012, so they aren't in the
12084:     Perl-compatible tests. Those after the first come from Perl's own test
12085:     files. --/
12086:     
12087: /^((yes|no)(*THEN)(*F))?/
12088:   yes
12089: No match
12090: 
12091: /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x
12092: AbcdCBefgBhiBqz
12093: No match
12094: 
12095: /(A (.*)   C? (*THEN)  | A D) z/x
12096: AbcdCBefgBhiBqz
12097: No match
12098: 
12099: /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x
12100: AbcdCBefgBhiBqz
12101: No match
12102: 
12103: /(A (.*)   C? (*THEN)  | A D) \s* z/x
12104: AbcdCBefgBhiBqz
12105: No match
12106: 
12107: /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x
12108: AbcdCBefgBhiBqz
12109: No match
12110: 
12111: /(A (.*)   (?:C|) (*THEN)  | A D) z/x
12112: AbcdCBefgBhiBqz
12113: No match
12114: 
12115: /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x
12116: AbcdCBefgBhiBqz
12117: No match
12118: 
12119: /(A (.*)   C{0,6} (*THEN)  | A D) z/x
12120: AbcdCBefgBhiBqz
12121: No match
12122: 
12123: /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x
12124: AbcdCEBefgBhiBqz
12125: No match
12126: 
12127: /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x
12128: AbcdCEBefgBhiBqz
12129: No match
12130: 
12131: /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x
12132: AbcdCBefgBhiBqz
12133: No match
12134: 
12135: /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x
12136: AbcdCBefgBhiBqz
12137: No match
12138: 
12139: /-----------------------------------------------/  
12140: 
12141: /^(?>a+)(?>(z+))\w/BZ
12142: ------------------------------------------------------------------
12143:         Bra
12144:         ^
12145:         Once_NC
12146:         a+
12147:         Ket
12148:         Once
12149:         CBra 1
12150:         z+
12151:         Ket
12152:         Ket
12153:         \w
12154:         Ket
12155:         End
12156: ------------------------------------------------------------------
12157:     aaaazzzzb
12158:  0: aaaazzzzb
12159:  1: zzzz
12160:     ** Failers
12161: No match
12162:     aazz  
12163: No match
12164: 
12165: /(.)(\1|a(?2))/
12166:     bab
12167:  0: bab
12168:  1: b
12169:  2: ab
12170:     
12171: /\1|(.)(?R)\1/
12172:     cbbbc
12173:  0: cbbbc
12174:  1: c
12175:     
12176: /(.)((?(1)c|a)|a(?2))/
12177:     baa  
12178: No match
12179: 
12180: /(?P<abn>(?P=abn)xxx)/BZ
12181: ------------------------------------------------------------------
12182:         Bra
12183:         Once
12184:         CBra 1
12185:         \1
12186:         xxx
12187:         Ket
12188:         Ket
12189:         Ket
12190:         End
12191: ------------------------------------------------------------------
12192: 
12193: /(a\1z)/BZ
12194: ------------------------------------------------------------------
12195:         Bra
12196:         Once
12197:         CBra 1
12198:         a
12199:         \1
12200:         z
12201:         Ket
12202:         Ket
12203:         Ket
12204:         End
12205: ------------------------------------------------------------------
12206: 
12207: /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
12208:      \Maabbccddee
12209: Minimum match() limit = 12
12210: Minimum match() recursion limit = 3
12211:  0: aabbccddee
12212: 
12213: /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
12214:      \Maabbccddee
12215: Minimum match() limit = 22
12216: Minimum match() recursion limit = 21
12217:  0: aabbccddee
12218:  1: aa
12219:  2: bb
12220:  3: cc
12221:  4: dd
12222:  5: ee
12223: 
12224: /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
12225:      \Maabbccddee
12226: Minimum match() limit = 18
12227: Minimum match() recursion limit = 13
12228:  0: aabbccddee
12229:  1: aa
12230:  2: cc
12231:  3: ee
12232: 
12233: /^a\x41z/<JS>
12234:     aAz
12235:  0: aAz
12236:     *** Failers
12237: No match
12238:     ax41z
12239: No match
12240: 
12241: /^a[m\x41]z/<JS>
12242:     aAz
12243:  0: aAz
12244: 
12245: /^a\x1z/<JS>
12246:     ax1z
12247:  0: ax1z
12248: 
12249: /^a\u0041z/<JS>
12250:     aAz
12251:  0: aAz
12252:     *** Failers
12253: No match
12254:     au0041z
12255: No match
12256: 
12257: /^a[m\u0041]z/<JS>
12258:     aAz
12259:  0: aAz
12260: 
12261: /^a\u041z/<JS>
12262:     au041z
12263:  0: au041z
12264:     *** Failers
12265: No match
12266:     aAz
12267: No match
12268: 
12269: /^a\U0041z/<JS>
12270:     aU0041z
12271:  0: aU0041z
12272:     *** Failers
12273: No match
12274:     aAz
12275: No match
12276: 
12277: /(?(?=c)c|d)++Y/BZ
12278: ------------------------------------------------------------------
12279:         Bra
12280:         BraPos
12281:         Cond
12282:         Assert
12283:         c
12284:         Ket
12285:         c
12286:         Alt
12287:         d
12288:         Ket
12289:         KetRpos
12290:         Y
12291:         Ket
12292:         End
12293: ------------------------------------------------------------------
12294: 
12295: /(?(?=c)c|d)*+Y/BZ
12296: ------------------------------------------------------------------
12297:         Bra
12298:         Braposzero
12299:         BraPos
12300:         Cond
12301:         Assert
12302:         c
12303:         Ket
12304:         c
12305:         Alt
12306:         d
12307:         Ket
12308:         KetRpos
12309:         Y
12310:         Ket
12311:         End
12312: ------------------------------------------------------------------
12313: 
12314: /a[\NB]c/
12315: Failed: \N is not supported in a class at offset 3
12316: 
12317: /a[B-\Nc]/ 
12318: Failed: \N is not supported in a class at offset 5
12319: 
12320: /(a)(?2){0,1999}?(b)/
12321: 
12322: /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
12323: 
12324: /--- This test, with something more complicated than individual letters, causes
12325: different behaviour in Perl. Perhaps it disables some optimization; no tag is
12326: passed back for the failures, whereas in PCRE there is a tag. ---/
12327:     
12328: /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
12329:     AABC
12330:  0: AB
12331:  1: A
12332:  2: B
12333: MK: A
12334:     XXYZ 
12335:  0: XXY
12336:  1: <unset>
12337:  2: <unset>
12338:  3: X
12339:  4: X
12340:  5: Y
12341: MK: B
12342:     ** Failers
12343: No match
12344:     XAQQ  
12345: No match, mark = A
12346:     XAQQXZZ  
12347: No match, mark = A
12348:     AXQQQ 
12349: No match, mark = A
12350:     AXXQQQ 
12351: No match, mark = B
12352: 
12353: /-- Perl doesn't give marks for these, though it does if the alternatives are
12354: replaced by single letters. --/
12355:     
12356: /(b|q)(*:m)f|a(*:n)w/K
12357:     aw 
12358:  0: aw
12359: MK: n
12360:     ** Failers 
12361: No match, mark = n
12362:     abc
12363: No match, mark = m
12364: 
12365: /(q|b)(*:m)f|a(*:n)w/K
12366:     aw 
12367:  0: aw
12368: MK: n
12369:     ** Failers 
12370: No match, mark = n
12371:     abc
12372: No match, mark = m
12373: 
12374: /-- After a partial match, the behaviour is as for a failure. --/
12375: 
12376: /^a(*:X)bcde/K
12377:    abc\P
12378: Partial match, mark=X: abc
12379: 
12380: /-- End of testinput2 --/

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