Home | History | Annotate | Download | only in testdata
      1 # This set of tests is not Perl-compatible. It checks on special features
      2 # of PCRE2's API, error diagnostics, and the compiled code of some patterns.
      3 # It also checks the non-Perl syntax that PCRE2 supports (Python, .NET,
      4 # Oniguruma). There are also some tests where PCRE2 and Perl differ,
      5 # either because PCRE2 can't be compatible, or there is a possible Perl
      6 # bug.
      7 
      8 # NOTE: This is a non-UTF set of tests. When UTF support is needed, use
      9 # test 5.
     10 
     11 #forbid_utf
     12 #newline_default lf any anycrlf
     13 
     14 # Test binary zeroes in the pattern
     15 
     16 # /a\0B/ where 0 is a binary zero
     17 /61 5c 00 62/B,hex
     18 ------------------------------------------------------------------
     19         Bra
     20         a\x00b
     21         Ket
     22         End
     23 ------------------------------------------------------------------
     24     a\x{0}b
     25  0: a\x00b
     26 
     27 # /a0b/ where 0 is a binary zero
     28 /61 00 62/B,hex
     29 ------------------------------------------------------------------
     30         Bra
     31         a\x00b
     32         Ket
     33         End
     34 ------------------------------------------------------------------
     35     a\x{0}b
     36  0: a\x00b
     37 
     38 # /(?#B0C)DE/ where 0 is a binary zero
     39 /28 3f 23 42 00 43 29 44 45/B,hex
     40 ------------------------------------------------------------------
     41         Bra
     42         DE
     43         Ket
     44         End
     45 ------------------------------------------------------------------
     46     DE
     47  0: DE
     48 
     49 /(a)b|/I
     50 Capturing subpattern count = 1
     51 May match empty string
     52 Subject length lower bound = 0
     53 
     54 /abc/I
     55 Capturing subpattern count = 0
     56 First code unit = 'a'
     57 Last code unit = 'c'
     58 Subject length lower bound = 3
     59     abc
     60  0: abc
     61     defabc
     62  0: abc
     63     abc\=anchored
     64  0: abc
     65 \= Expect no match
     66     defabc\=anchored
     67 No match
     68     ABC
     69 No match
     70 
     71 /^abc/I
     72 Capturing subpattern count = 0
     73 Compile options: <none>
     74 Overall options: anchored
     75 First code unit = 'a'
     76 Subject length lower bound = 3
     77     abc
     78  0: abc
     79     abc\=anchored
     80  0: abc
     81 \= Expect no match
     82     defabc
     83 No match
     84     defabc\=anchored
     85 No match
     86 
     87 /a+bc/I
     88 Capturing subpattern count = 0
     89 First code unit = 'a'
     90 Last code unit = 'c'
     91 Subject length lower bound = 3
     92 
     93 /a*bc/I
     94 Capturing subpattern count = 0
     95 Starting code units: a b 
     96 Last code unit = 'c'
     97 Subject length lower bound = 2
     98 
     99 /a{3}bc/I
    100 Capturing subpattern count = 0
    101 First code unit = 'a'
    102 Last code unit = 'c'
    103 Subject length lower bound = 5
    104 
    105 /(abc|a+z)/I
    106 Capturing subpattern count = 1
    107 First code unit = 'a'
    108 Subject length lower bound = 2
    109 
    110 /^abc$/I
    111 Capturing subpattern count = 0
    112 Compile options: <none>
    113 Overall options: anchored
    114 First code unit = 'a'
    115 Subject length lower bound = 3
    116     abc
    117  0: abc
    118 \= Expect no match
    119     def\nabc
    120 No match
    121 
    122 /ab\idef/
    123 Failed: error 103 at offset 3: unrecognized character follows \
    124 
    125 /(?X)ab\idef/
    126 Failed: error 111 at offset 2: unrecognized character after (? or (?-
    127 
    128 /x{5,4}/
    129 Failed: error 104 at offset 5: numbers out of order in {} quantifier
    130 
    131 /z{65536}/
    132 Failed: error 105 at offset 7: number too big in {} quantifier
    133 
    134 /[abcd/
    135 Failed: error 106 at offset 5: missing terminating ] for character class
    136 
    137 /[\B]/B
    138 Failed: error 107 at offset 2: invalid escape sequence in character class
    139 
    140 /[\R]/B
    141 Failed: error 107 at offset 2: invalid escape sequence in character class
    142 
    143 /[\X]/B
    144 Failed: error 107 at offset 2: invalid escape sequence in character class
    145 
    146 /[z-a]/
    147 Failed: error 108 at offset 3: range out of order in character class
    148 
    149 /^*/
    150 Failed: error 109 at offset 1: quantifier does not follow a repeatable item
    151 
    152 /(abc/
    153 Failed: error 114 at offset 4: missing closing parenthesis
    154 
    155 /(?# abc/
    156 Failed: error 118 at offset 7: missing ) after (?# comment
    157 
    158 /(?z)abc/
    159 Failed: error 111 at offset 2: unrecognized character after (? or (?-
    160 
    161 /.*b/I
    162 Capturing subpattern count = 0
    163 First code unit at start or follows newline
    164 Last code unit = 'b'
    165 Subject length lower bound = 1
    166 
    167 /.*?b/I
    168 Capturing subpattern count = 0
    169 First code unit at start or follows newline
    170 Last code unit = 'b'
    171 Subject length lower bound = 1
    172 
    173 /cat|dog|elephant/I
    174 Capturing subpattern count = 0
    175 Starting code units: c d e 
    176 Subject length lower bound = 3
    177     this sentence eventually mentions a cat
    178  0: cat
    179     this sentences rambles on and on for a while and then reaches elephant
    180  0: elephant
    181 
    182 /cat|dog|elephant/I
    183 Capturing subpattern count = 0
    184 Starting code units: c d e 
    185 Subject length lower bound = 3
    186     this sentence eventually mentions a cat
    187  0: cat
    188     this sentences rambles on and on for a while and then reaches elephant
    189  0: elephant
    190 
    191 /cat|dog|elephant/Ii
    192 Capturing subpattern count = 0
    193 Options: caseless
    194 Starting code units: C D E c d e 
    195 Subject length lower bound = 3
    196     this sentence eventually mentions a CAT cat
    197  0: CAT
    198     this sentences rambles on and on for a while to elephant ElePhant
    199  0: elephant
    200 
    201 /a|[bcd]/I
    202 Capturing subpattern count = 0
    203 Starting code units: a b c d 
    204 Subject length lower bound = 1
    205 
    206 /(a|[^\dZ])/I
    207 Capturing subpattern count = 1
    208 Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 
    209   \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 
    210   \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = > 
    211   ? @ 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 
    212   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 
    213   \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 
    214   \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 
    215   \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 
    216   \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf 
    217   \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce 
    218   \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd 
    219   \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec 
    220   \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb 
    221   \xfc \xfd \xfe \xff 
    222 Subject length lower bound = 1
    223 
    224 /(a|b)*[\s]/I
    225 Capturing subpattern count = 1
    226 Starting code units: \x09 \x0a \x0b \x0c \x0d \x20 a b 
    227 Subject length lower bound = 1
    228 
    229 /(ab\2)/
    230 Failed: error 115 at offset 4: reference to non-existent subpattern
    231 
    232 /{4,5}abc/
    233 Failed: error 109 at offset 4: quantifier does not follow a repeatable item
    234 
    235 /(a)(b)(c)\2/I
    236 Capturing subpattern count = 3
    237 Max back reference = 2
    238 First code unit = 'a'
    239 Last code unit = 'c'
    240 Subject length lower bound = 4
    241     abcb
    242  0: abcb
    243  1: a
    244  2: b
    245  3: c
    246     abcb\=ovector=0
    247  0: abcb
    248  1: a
    249  2: b
    250  3: c
    251     abcb\=ovector=1
    252 Matched, but too many substrings
    253  0: abcb
    254     abcb\=ovector=2
    255 Matched, but too many substrings
    256  0: abcb
    257  1: a
    258     abcb\=ovector=3
    259 Matched, but too many substrings
    260  0: abcb
    261  1: a
    262  2: b
    263     abcb\=ovector=4
    264  0: abcb
    265  1: a
    266  2: b
    267  3: c
    268 
    269 /(a)bc|(a)(b)\2/I
    270 Capturing subpattern count = 3
    271 Max back reference = 2
    272 First code unit = 'a'
    273 Subject length lower bound = 3
    274     abc
    275  0: abc
    276  1: a
    277     abc\=ovector=0
    278  0: abc
    279  1: a
    280     abc\=ovector=1
    281 Matched, but too many substrings
    282  0: abc
    283     abc\=ovector=2
    284  0: abc
    285  1: a
    286     aba
    287  0: aba
    288  1: <unset>
    289  2: a
    290  3: b
    291     aba\=ovector=0
    292  0: aba
    293  1: <unset>
    294  2: a
    295  3: b
    296     aba\=ovector=1
    297 Matched, but too many substrings
    298  0: aba
    299     aba\=ovector=2
    300 Matched, but too many substrings
    301  0: aba
    302  1: <unset>
    303     aba\=ovector=3
    304 Matched, but too many substrings
    305  0: aba
    306  1: <unset>
    307  2: a
    308     aba\=ovector=4
    309  0: aba
    310  1: <unset>
    311  2: a
    312  3: b
    313 
    314 /abc$/I,dollar_endonly
    315 Capturing subpattern count = 0
    316 Options: dollar_endonly
    317 First code unit = 'a'
    318 Last code unit = 'c'
    319 Subject length lower bound = 3
    320     abc
    321  0: abc
    322 \= Expect no match
    323     abc\n
    324 No match
    325     abc\ndef
    326 No match
    327 
    328 /(a)(b)(c)(d)(e)\6/
    329 Failed: error 115 at offset 16: reference to non-existent subpattern
    330 
    331 /the quick brown fox/I
    332 Capturing subpattern count = 0
    333 First code unit = 't'
    334 Last code unit = 'x'
    335 Subject length lower bound = 19
    336     the quick brown fox
    337  0: the quick brown fox
    338     this is a line with the quick brown fox
    339  0: the quick brown fox
    340 
    341 /the quick brown fox/I,anchored
    342 Capturing subpattern count = 0
    343 Options: anchored
    344 First code unit = 't'
    345 Subject length lower bound = 19
    346     the quick brown fox
    347  0: the quick brown fox
    348 \= Expect no match
    349     this is a line with the quick brown fox
    350 No match
    351 
    352 /ab(?z)cd/
    353 Failed: error 111 at offset 4: unrecognized character after (? or (?-
    354 
    355 /^abc|def/I
    356 Capturing subpattern count = 0
    357 Starting code units: a d 
    358 Subject length lower bound = 3
    359     abcdef
    360  0: abc
    361     abcdef\=notbol
    362  0: def
    363 
    364 /.*((abc)$|(def))/I
    365 Capturing subpattern count = 3
    366 First code unit at start or follows newline
    367 Subject length lower bound = 3
    368     defabc
    369  0: defabc
    370  1: abc
    371  2: abc
    372     defabc\=noteol
    373  0: def
    374  1: def
    375  2: <unset>
    376  3: def
    377 
    378 /)/
    379 Failed: error 122 at offset 0: unmatched closing parenthesis
    380 
    381 /a[]b/
    382 Failed: error 106 at offset 4: missing terminating ] for character class
    383 
    384 /[^aeiou ]{3,}/I
    385 Capturing subpattern count = 0
    386 Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 
    387   \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 
    388   \x1a \x1b \x1c \x1d \x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 
    389   7 8 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 [ 
    390   \ ] ^ _ ` b c d f g h j k l m n p q r s t v w x y z { | } ~ \x7f \x80 \x81 
    391   \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 
    392   \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f 
    393   \xa0 \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae 
    394   \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd 
    395   \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc 
    396   \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb 
    397   \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea 
    398   \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 
    399   \xfa \xfb \xfc \xfd \xfe \xff 
    400 Subject length lower bound = 3
    401     co-processors, and for
    402  0: -pr
    403 
    404 /<.*>/I
    405 Capturing subpattern count = 0
    406 First code unit = '<'
    407 Last code unit = '>'
    408 Subject length lower bound = 2
    409     abc<def>ghi<klm>nop
    410  0: <def>ghi<klm>
    411 
    412 /<.*?>/I
    413 Capturing subpattern count = 0
    414 First code unit = '<'
    415 Last code unit = '>'
    416 Subject length lower bound = 2
    417     abc<def>ghi<klm>nop
    418  0: <def>
    419 
    420 /<.*>/I,ungreedy
    421 Capturing subpattern count = 0
    422 Options: ungreedy
    423 First code unit = '<'
    424 Last code unit = '>'
    425 Subject length lower bound = 2
    426     abc<def>ghi<klm>nop
    427  0: <def>
    428 
    429 /(?U)<.*>/I
    430 Capturing subpattern count = 0
    431 First code unit = '<'
    432 Last code unit = '>'
    433 Subject length lower bound = 2
    434     abc<def>ghi<klm>nop
    435  0: <def>
    436 
    437 /<.*?>/I,ungreedy
    438 Capturing subpattern count = 0
    439 Options: ungreedy
    440 First code unit = '<'
    441 Last code unit = '>'
    442 Subject length lower bound = 2
    443     abc<def>ghi<klm>nop
    444  0: <def>ghi<klm>
    445 
    446 /={3,}/I,ungreedy
    447 Capturing subpattern count = 0
    448 Options: ungreedy
    449 First code unit = '='
    450 Last code unit = '='
    451 Subject length lower bound = 3
    452     abc========def
    453  0: ===
    454 
    455 /(?U)={3,}?/I
    456 Capturing subpattern count = 0
    457 First code unit = '='
    458 Last code unit = '='
    459 Subject length lower bound = 3
    460     abc========def
    461  0: ========
    462 
    463 /(?<!bar|cattle)foo/I
    464 Capturing subpattern count = 0
    465 Max lookbehind = 6
    466 First code unit = 'f'
    467 Last code unit = 'o'
    468 Subject length lower bound = 3
    469     foo
    470  0: foo
    471     catfoo
    472  0: foo
    473 \= Expect no match
    474     the barfoo
    475 No match
    476     and cattlefoo
    477 No match
    478 
    479 /abc(?<=a+)b/
    480 Failed: error 125 at offset 3: lookbehind assertion is not fixed length
    481 
    482 /12345(?<=aaa|b{0,3})b/
    483 Failed: error 125 at offset 5: lookbehind assertion is not fixed length
    484 
    485 /(?<!(foo)a\1)bar/
    486 
    487 /(?i)abc/I
    488 Capturing subpattern count = 0
    489 First code unit = 'a' (caseless)
    490 Last code unit = 'c' (caseless)
    491 Subject length lower bound = 3
    492 
    493 /(a|(?m)a)/I
    494 Capturing subpattern count = 1
    495 First code unit = 'a'
    496 Subject length lower bound = 1
    497 
    498 /(?i)^1234/I
    499 Capturing subpattern count = 0
    500 Compile options: <none>
    501 Overall options: anchored
    502 First code unit = '1'
    503 Subject length lower bound = 4
    504 
    505 /(^b|(?i)^d)/I
    506 Capturing subpattern count = 1
    507 Compile options: <none>
    508 Overall options: anchored
    509 Starting code units: D b d 
    510 Subject length lower bound = 1
    511 
    512 /(?s).*/I
    513 Capturing subpattern count = 0
    514 May match empty string
    515 Compile options: <none>
    516 Overall options: anchored
    517 Subject length lower bound = 0
    518 
    519 /[abcd]/I
    520 Capturing subpattern count = 0
    521 Starting code units: a b c d 
    522 Subject length lower bound = 1
    523 
    524 /(?i)[abcd]/I
    525 Capturing subpattern count = 0
    526 Starting code units: A B C D a b c d 
    527 Subject length lower bound = 1
    528 
    529 /(?m)[xy]|(b|c)/I
    530 Capturing subpattern count = 1
    531 Starting code units: b c x y 
    532 Subject length lower bound = 1
    533 
    534 /(^a|^b)/Im
    535 Capturing subpattern count = 1
    536 Options: multiline
    537 First code unit at start or follows newline
    538 Subject length lower bound = 1
    539 
    540 /(?i)(^a|^b)/Im
    541 Capturing subpattern count = 1
    542 Options: multiline
    543 First code unit at start or follows newline
    544 Subject length lower bound = 1
    545 
    546 /(a)(?(1)a|b|c)/
    547 Failed: error 127 at offset 3: conditional group contains more than two branches
    548 
    549 /(?(?=a)a|b|c)/
    550 Failed: error 127 at offset 0: conditional group contains more than two branches
    551 
    552 /(?(1a)/
    553 Failed: error 124 at offset 4: missing closing parenthesis for condition
    554 
    555 /(?(1a))/
    556 Failed: error 124 at offset 4: missing closing parenthesis for condition
    557 
    558 /(?(?i))/
    559 Failed: error 128 at offset 2: assertion expected after (?( or (?(?C)
    560 
    561 /(?(abc))/
    562 Failed: error 115 at offset 3: reference to non-existent subpattern
    563 
    564 /(?(?<ab))/
    565 Failed: error 128 at offset 2: assertion expected after (?( or (?(?C)
    566 
    567 /((?s)blah)\s+\1/I
    568 Capturing subpattern count = 1
    569 Max back reference = 1
    570 First code unit = 'b'
    571 Last code unit = 'h'
    572 Subject length lower bound = 9
    573 
    574 /((?i)blah)\s+\1/I
    575 Capturing subpattern count = 1
    576 Max back reference = 1
    577 First code unit = 'b' (caseless)
    578 Last code unit = 'h' (caseless)
    579 Subject length lower bound = 9
    580 
    581 /((?i)b)/IB
    582 ------------------------------------------------------------------
    583         Bra
    584         CBra 1
    585      /i b
    586         Ket
    587         Ket
    588         End
    589 ------------------------------------------------------------------
    590 Capturing subpattern count = 1
    591 First code unit = 'b' (caseless)
    592 Subject length lower bound = 1
    593 
    594 /(a*b|(?i:c*(?-i)d))/I
    595 Capturing subpattern count = 1
    596 Starting code units: C a b c d 
    597 Subject length lower bound = 1
    598 
    599 /a$/I
    600 Capturing subpattern count = 0
    601 First code unit = 'a'
    602 Subject length lower bound = 1
    603     a
    604  0: a
    605     a\n
    606  0: a
    607 \= Expect no match
    608     a\=noteol
    609 No match
    610     a\n\=noteol
    611 No match
    612 
    613 /a$/Im
    614 Capturing subpattern count = 0
    615 Options: multiline
    616 First code unit = 'a'
    617 Subject length lower bound = 1
    618     a
    619  0: a
    620     a\n
    621  0: a
    622     a\n\=noteol
    623  0: a
    624 \= Expect no match
    625     a\=noteol
    626 No match
    627 
    628 /\Aabc/Im
    629 Capturing subpattern count = 0
    630 Max lookbehind = 1
    631 Compile options: multiline
    632 Overall options: anchored multiline
    633 First code unit = 'a'
    634 Subject length lower bound = 3
    635 
    636 /^abc/Im
    637 Capturing subpattern count = 0
    638 Options: multiline
    639 First code unit at start or follows newline
    640 Last code unit = 'c'
    641 Subject length lower bound = 3
    642 
    643 /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
    644 Capturing subpattern count = 5
    645 Compile options: <none>
    646 Overall options: anchored
    647 First code unit = 'a'
    648 Subject length lower bound = 3
    649   aaaaabbbbbcccccdef
    650  0: aaaaabbbbbcccccdef
    651  1: aaaaabbbbbcccccdef
    652  2: aaaaa
    653  3: b
    654  4: bbbbccccc
    655  5: def
    656 
    657 /(?<=foo)[ab]/I
    658 Capturing subpattern count = 0
    659 Max lookbehind = 3
    660 Starting code units: a b 
    661 Subject length lower bound = 1
    662 
    663 /(?<!foo)(alpha|omega)/I
    664 Capturing subpattern count = 1
    665 Max lookbehind = 3
    666 Starting code units: a o 
    667 Last code unit = 'a'
    668 Subject length lower bound = 5
    669 
    670 /(?!alphabet)[ab]/I
    671 Capturing subpattern count = 0
    672 Starting code units: a b 
    673 Subject length lower bound = 1
    674 
    675 /(?<=foo\n)^bar/Im
    676 Capturing subpattern count = 0
    677 Max lookbehind = 4
    678 Contains explicit CR or LF match
    679 Options: multiline
    680 Last code unit = 'r'
    681 Subject length lower bound = 3
    682     foo\nbarbar
    683  0: bar
    684 \= Expect no match
    685     rhubarb
    686 No match
    687     barbell
    688 No match
    689     abc\nbarton
    690 No match
    691 
    692 /^(?<=foo\n)bar/Im
    693 Capturing subpattern count = 0
    694 Max lookbehind = 4
    695 Contains explicit CR or LF match
    696 Options: multiline
    697 First code unit at start or follows newline
    698 Last code unit = 'r'
    699 Subject length lower bound = 3
    700     foo\nbarbar
    701  0: bar
    702 \= Expect no match
    703     rhubarb
    704 No match
    705     barbell
    706 No match
    707     abc\nbarton
    708 No match
    709 
    710 /(?>^abc)/Im
    711 Capturing subpattern count = 0
    712 Options: multiline
    713 First code unit at start or follows newline
    714 Last code unit = 'c'
    715 Subject length lower bound = 3
    716     abc
    717  0: abc
    718     def\nabc
    719  0: abc
    720 \= Expect no match
    721     defabc
    722 No match
    723 
    724 /(?<=ab(c+)d)ef/
    725 Failed: error 125 at offset 0: lookbehind assertion is not fixed length
    726 
    727 /(?<=ab(?<=c+)d)ef/
    728 Failed: error 125 at offset 6: lookbehind assertion is not fixed length
    729 
    730 /(?<=ab(c|de)f)g/
    731 Failed: error 125 at offset 0: lookbehind assertion is not fixed length
    732 
    733 /The next three are in testinput2 because they have variable length branches/
    734 
    735 /(?<=bullock|donkey)-cart/I
    736 Capturing subpattern count = 0
    737 Max lookbehind = 7
    738 First code unit = '-'
    739 Last code unit = 't'
    740 Subject length lower bound = 5
    741     the bullock-cart
    742  0: -cart
    743     a donkey-cart race
    744  0: -cart
    745 \= Expect no match
    746     cart
    747 No match
    748     horse-and-cart
    749 No match
    750 
    751 /(?<=ab(?i)x|y|z)/I
    752 Capturing subpattern count = 0
    753 Max lookbehind = 3
    754 May match empty string
    755 Subject length lower bound = 0
    756 
    757 /(?>.*)(?<=(abcd)|(xyz))/I
    758 Capturing subpattern count = 2
    759 Max lookbehind = 4
    760 May match empty string
    761 Subject length lower bound = 0
    762     alphabetabcd
    763  0: alphabetabcd
    764  1: abcd
    765     endingxyz
    766  0: endingxyz
    767  1: <unset>
    768  2: xyz
    769 
    770 /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
    771 Capturing subpattern count = 0
    772 Max lookbehind = 4
    773 First code unit = 'Z'
    774 Last code unit = 'Z'
    775 Subject length lower bound = 2
    776     abxyZZ
    777  0: ZZ
    778     abXyZZ
    779  0: ZZ
    780     ZZZ
    781  0: ZZ
    782     zZZ
    783  0: ZZ
    784     bZZ
    785  0: ZZ
    786     BZZ
    787  0: ZZ
    788 \= Expect no match
    789     ZZ
    790 No match
    791     abXYZZ
    792 No match
    793     zzz
    794 No match
    795     bzz
    796 No match
    797 
    798 /(?<!(foo)a)bar/I
    799 Capturing subpattern count = 1
    800 Max lookbehind = 4
    801 First code unit = 'b'
    802 Last code unit = 'r'
    803 Subject length lower bound = 3
    804     bar
    805  0: bar
    806     foobbar
    807  0: bar
    808 \= Expect no match
    809     fooabar
    810 No match
    811 
    812 # This one is here because Perl behaves differently; see also the following.
    813 
    814 /^(a\1?){4}$/I
    815 Capturing subpattern count = 1
    816 Max back reference = 1
    817 Compile options: <none>
    818 Overall options: anchored
    819 Starting code units: a 
    820 Subject length lower bound = 4
    821 \= Expect no match
    822     aaaa
    823 No match
    824     aaaaaa
    825 No match
    826 
    827 # Perl does not fail these two for the final subjects. Neither did PCRE until
    828 # release 8.01. The problem is in backtracking into a subpattern that contains
    829 # a recursive reference to itself. PCRE has now made these into atomic patterns.
    830 
    831 /^(xa|=?\1a){2}$/
    832     xa=xaa
    833  0: xa=xaa
    834  1: =xaa
    835 \= Expect no match
    836     xa=xaaa
    837 No match
    838 
    839 /^(xa|=?\1a)+$/
    840     xa=xaa
    841  0: xa=xaa
    842  1: =xaa
    843 \= Expect no match
    844     xa=xaaa
    845 No match
    846 
    847 # These are syntax tests from Perl 5.005
    848 
    849 /a[b-a]/
    850 Failed: error 108 at offset 4: range out of order in character class
    851 
    852 /a[]b/
    853 Failed: error 106 at offset 4: missing terminating ] for character class
    854 
    855 /a[/
    856 Failed: error 106 at offset 2: missing terminating ] for character class
    857 
    858 /*a/
    859 Failed: error 109 at offset 0: quantifier does not follow a repeatable item
    860 
    861 /(*)b/
    862 Failed: error 109 at offset 1: quantifier does not follow a repeatable item
    863 
    864 /abc)/
    865 Failed: error 122 at offset 3: unmatched closing parenthesis
    866 
    867 /(abc/
    868 Failed: error 114 at offset 4: missing closing parenthesis
    869 
    870 /a**/
    871 Failed: error 109 at offset 2: quantifier does not follow a repeatable item
    872 
    873 /)(/
    874 Failed: error 122 at offset 0: unmatched closing parenthesis
    875 
    876 /\1/
    877 Failed: error 115 at offset 1: reference to non-existent subpattern
    878 
    879 /\2/
    880 Failed: error 115 at offset 1: reference to non-existent subpattern
    881 
    882 /(a)|\2/
    883 Failed: error 115 at offset 5: reference to non-existent subpattern
    884 
    885 /a[b-a]/Ii
    886 Failed: error 108 at offset 4: range out of order in character class
    887 
    888 /a[]b/Ii
    889 Failed: error 106 at offset 4: missing terminating ] for character class
    890 
    891 /a[/Ii
    892 Failed: error 106 at offset 2: missing terminating ] for character class
    893 
    894 /*a/Ii
    895 Failed: error 109 at offset 0: quantifier does not follow a repeatable item
    896 
    897 /(*)b/Ii
    898 Failed: error 109 at offset 1: quantifier does not follow a repeatable item
    899 
    900 /abc)/Ii
    901 Failed: error 122 at offset 3: unmatched closing parenthesis
    902 
    903 /(abc/Ii
    904 Failed: error 114 at offset 4: missing closing parenthesis
    905 
    906 /a**/Ii
    907 Failed: error 109 at offset 2: quantifier does not follow a repeatable item
    908 
    909 /)(/Ii
    910 Failed: error 122 at offset 0: unmatched closing parenthesis
    911 
    912 /:(?:/
    913 Failed: error 114 at offset 4: missing closing parenthesis
    914 
    915 /(?<%)b/
    916 Failed: error 162 at offset 3: subpattern name expected
    917 
    918 /a(?{)b/
    919 Failed: error 111 at offset 3: unrecognized character after (? or (?-
    920 
    921 /a(?{{})b/
    922 Failed: error 111 at offset 3: unrecognized character after (? or (?-
    923 
    924 /a(?{}})b/
    925 Failed: error 111 at offset 3: unrecognized character after (? or (?-
    926 
    927 /a(?{"{"})b/
    928 Failed: error 111 at offset 3: unrecognized character after (? or (?-
    929 
    930 /a(?{"{"}})b/
    931 Failed: error 111 at offset 3: unrecognized character after (? or (?-
    932 
    933 /(?(1?)a|b)/
    934 Failed: error 124 at offset 4: missing closing parenthesis for condition
    935 
    936 /[a[:xyz:/
    937 Failed: error 106 at offset 8: missing terminating ] for character class
    938 
    939 /(?<=x+)y/
    940 Failed: error 125 at offset 0: lookbehind assertion is not fixed length
    941 
    942 /a{37,17}/
    943 Failed: error 104 at offset 7: numbers out of order in {} quantifier
    944 
    945 /abc/\
    946 Failed: error 101 at offset 4: \ at end of pattern
    947 
    948 /abc/\i
    949 Failed: error 101 at offset 4: \ at end of pattern
    950 
    951 /(a)bc(d)/I
    952 Capturing subpattern count = 2
    953 First code unit = 'a'
    954 Last code unit = 'd'
    955 Subject length lower bound = 4
    956     abcd
    957  0: abcd
    958  1: a
    959  2: d
    960     abcd\=copy=2
    961  0: abcd
    962  1: a
    963  2: d
    964  2C d (1)
    965     abcd\=copy=5
    966  0: abcd
    967  1: a
    968  2: d
    969 Copy substring 5 failed (-49): unknown substring
    970 
    971 /(.{20})/I
    972 Capturing subpattern count = 1
    973 Subject length lower bound = 20
    974     abcdefghijklmnopqrstuvwxyz
    975  0: abcdefghijklmnopqrst
    976  1: abcdefghijklmnopqrst
    977     abcdefghijklmnopqrstuvwxyz\=copy=1
    978  0: abcdefghijklmnopqrst
    979  1: abcdefghijklmnopqrst
    980  1C abcdefghijklmnopqrst (20)
    981     abcdefghijklmnopqrstuvwxyz\=get=1
    982  0: abcdefghijklmnopqrst
    983  1: abcdefghijklmnopqrst
    984  1G abcdefghijklmnopqrst (20)
    985 
    986 /(.{15})/I
    987 Capturing subpattern count = 1
    988 Subject length lower bound = 15
    989     abcdefghijklmnopqrstuvwxyz
    990  0: abcdefghijklmno
    991  1: abcdefghijklmno
    992     abcdefghijklmnopqrstuvwxyz\=copy=1,get=1
    993  0: abcdefghijklmno
    994  1: abcdefghijklmno
    995  1C abcdefghijklmno (15)
    996  1G abcdefghijklmno (15)
    997 
    998 /(.{16})/I
    999 Capturing subpattern count = 1
   1000 Subject length lower bound = 16
   1001     abcdefghijklmnopqrstuvwxyz
   1002  0: abcdefghijklmnop
   1003  1: abcdefghijklmnop
   1004     abcdefghijklmnopqrstuvwxyz\=copy=1,get=1,getall
   1005  0: abcdefghijklmnop
   1006  1: abcdefghijklmnop
   1007  1C abcdefghijklmnop (16)
   1008  1G abcdefghijklmnop (16)
   1009  0L abcdefghijklmnop
   1010  1L abcdefghijklmnop
   1011 
   1012 /^(a|(bc))de(f)/I
   1013 Capturing subpattern count = 3
   1014 Compile options: <none>
   1015 Overall options: anchored
   1016 Starting code units: a b 
   1017 Subject length lower bound = 4
   1018     adef\=get=1,get=2,get=3,get=4,getall
   1019  0: adef
   1020  1: a
   1021  2: <unset>
   1022  3: f
   1023  1G a (1)
   1024 Get substring 2 failed (-55): requested value is not set
   1025  3G f (1)
   1026 Get substring 4 failed (-49): unknown substring
   1027  0L adef
   1028  1L a
   1029  2L 
   1030  3L f
   1031     bcdef\=get=1,get=2,get=3,get=4,getall
   1032  0: bcdef
   1033  1: bc
   1034  2: bc
   1035  3: f
   1036  1G bc (2)
   1037  2G bc (2)
   1038  3G f (1)
   1039 Get substring 4 failed (-49): unknown substring
   1040  0L bcdef
   1041  1L bc
   1042  2L bc
   1043  3L f
   1044     adefghijk\=copy=0
   1045  0: adef
   1046  1: a
   1047  2: <unset>
   1048  3: f
   1049  0C adef (4)
   1050 
   1051 /^abc\00def/I
   1052 Capturing subpattern count = 0
   1053 Compile options: <none>
   1054 Overall options: anchored
   1055 First code unit = 'a'
   1056 Subject length lower bound = 7
   1057     abc\00def\=copy=0,getall
   1058  0: abc\x00def
   1059  0C abc\x00def (7)
   1060  0L abc\x00def
   1061 
   1062 /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
   1063 )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
   1064 )?)?)?)?)?)?)?)?)?otherword/I
   1065 Capturing subpattern count = 8
   1066 Contains explicit CR or LF match
   1067 First code unit = 'w'
   1068 Last code unit = 'd'
   1069 Subject length lower bound = 14
   1070 
   1071 /.*X/IB
   1072 ------------------------------------------------------------------
   1073         Bra
   1074         Any*
   1075         X
   1076         Ket
   1077         End
   1078 ------------------------------------------------------------------
   1079 Capturing subpattern count = 0
   1080 First code unit at start or follows newline
   1081 Last code unit = 'X'
   1082 Subject length lower bound = 1
   1083 
   1084 /.*X/IBs
   1085 ------------------------------------------------------------------
   1086         Bra
   1087         AllAny*
   1088         X
   1089         Ket
   1090         End
   1091 ------------------------------------------------------------------
   1092 Capturing subpattern count = 0
   1093 Compile options: dotall
   1094 Overall options: anchored dotall
   1095 Last code unit = 'X'
   1096 Subject length lower bound = 1
   1097 
   1098 /(.*X|^B)/IB
   1099 ------------------------------------------------------------------
   1100         Bra
   1101         CBra 1
   1102         Any*
   1103         X
   1104         Alt
   1105         ^
   1106         B
   1107         Ket
   1108         Ket
   1109         End
   1110 ------------------------------------------------------------------
   1111 Capturing subpattern count = 1
   1112 First code unit at start or follows newline
   1113 Subject length lower bound = 1
   1114 
   1115 /(.*X|^B)/IBs
   1116 ------------------------------------------------------------------
   1117         Bra
   1118         CBra 1
   1119         AllAny*
   1120         X
   1121         Alt
   1122         ^
   1123         B
   1124         Ket
   1125         Ket
   1126         End
   1127 ------------------------------------------------------------------
   1128 Capturing subpattern count = 1
   1129 Compile options: dotall
   1130 Overall options: anchored dotall
   1131 Subject length lower bound = 1
   1132 
   1133 /(?s)(.*X|^B)/IB
   1134 ------------------------------------------------------------------
   1135         Bra
   1136         CBra 1
   1137         AllAny*
   1138         X
   1139         Alt
   1140         ^
   1141         B
   1142         Ket
   1143         Ket
   1144         End
   1145 ------------------------------------------------------------------
   1146 Capturing subpattern count = 1
   1147 Compile options: <none>
   1148 Overall options: anchored
   1149 Subject length lower bound = 1
   1150 
   1151 /(?s:.*X|^B)/IB
   1152 ------------------------------------------------------------------
   1153         Bra
   1154         Bra
   1155         AllAny*
   1156         X
   1157         Alt
   1158         ^
   1159         B
   1160         Ket
   1161         Ket
   1162         End
   1163 ------------------------------------------------------------------
   1164 Capturing subpattern count = 0
   1165 Compile options: <none>
   1166 Overall options: anchored
   1167 Subject length lower bound = 1
   1168 
   1169 /\Biss\B/I,aftertext
   1170 Capturing subpattern count = 0
   1171 Max lookbehind = 1
   1172 First code unit = 'i'
   1173 Last code unit = 's'
   1174 Subject length lower bound = 3
   1175     Mississippi
   1176  0: iss
   1177  0+ issippi
   1178 
   1179 /iss/I,aftertext,altglobal
   1180 Capturing subpattern count = 0
   1181 First code unit = 'i'
   1182 Last code unit = 's'
   1183 Subject length lower bound = 3
   1184     Mississippi
   1185  0: iss
   1186  0+ issippi
   1187  0: iss
   1188  0+ ippi
   1189 
   1190 /\Biss\B/I,aftertext,altglobal
   1191 Capturing subpattern count = 0
   1192 Max lookbehind = 1
   1193 First code unit = 'i'
   1194 Last code unit = 's'
   1195 Subject length lower bound = 3
   1196     Mississippi
   1197  0: iss
   1198  0+ issippi
   1199 
   1200 /\Biss\B/Ig,aftertext
   1201 Capturing subpattern count = 0
   1202 Max lookbehind = 1
   1203 First code unit = 'i'
   1204 Last code unit = 's'
   1205 Subject length lower bound = 3
   1206     Mississippi
   1207  0: iss
   1208  0+ issippi
   1209  0: iss
   1210  0+ ippi
   1211 \= Expect no match
   1212     Mississippi\=anchored
   1213 No match
   1214 
   1215 /(?<=[Ms])iss/Ig,aftertext
   1216 Capturing subpattern count = 0
   1217 Max lookbehind = 1
   1218 First code unit = 'i'
   1219 Last code unit = 's'
   1220 Subject length lower bound = 3
   1221     Mississippi
   1222  0: iss
   1223  0+ issippi
   1224  0: iss
   1225  0+ ippi
   1226 
   1227 /(?<=[Ms])iss/I,aftertext,altglobal
   1228 Capturing subpattern count = 0
   1229 Max lookbehind = 1
   1230 First code unit = 'i'
   1231 Last code unit = 's'
   1232 Subject length lower bound = 3
   1233     Mississippi
   1234  0: iss
   1235  0+ issippi
   1236 
   1237 /^iss/Ig,aftertext
   1238 Capturing subpattern count = 0
   1239 Compile options: <none>
   1240 Overall options: anchored
   1241 First code unit = 'i'
   1242 Subject length lower bound = 3
   1243     ississippi
   1244  0: iss
   1245  0+ issippi
   1246 
   1247 /.*iss/Ig,aftertext
   1248 Capturing subpattern count = 0
   1249 First code unit at start or follows newline
   1250 Last code unit = 's'
   1251 Subject length lower bound = 3
   1252     abciss\nxyzisspqr
   1253  0: abciss
   1254  0+ \x0axyzisspqr
   1255  0: xyziss
   1256  0+ pqr
   1257 
   1258 /.i./Ig,aftertext
   1259 Capturing subpattern count = 0
   1260 Last code unit = 'i'
   1261 Subject length lower bound = 3
   1262     Mississippi
   1263  0: Mis
   1264  0+ sissippi
   1265  0: sis
   1266  0+ sippi
   1267  0: sip
   1268  0+ pi
   1269     Mississippi\=anchored
   1270  0: Mis
   1271  0+ sissippi
   1272  0: sis
   1273  0+ sippi
   1274  0: sip
   1275  0+ pi
   1276     Missouri river
   1277  0: Mis
   1278  0+ souri river
   1279  0: ri 
   1280  0+ river
   1281  0: riv
   1282  0+ er
   1283     Missouri river\=anchored
   1284  0: Mis
   1285  0+ souri river
   1286 
   1287 /^.is/Ig,aftertext
   1288 Capturing subpattern count = 0
   1289 Compile options: <none>
   1290 Overall options: anchored
   1291 Subject length lower bound = 3
   1292     Mississippi
   1293  0: Mis
   1294  0+ sissippi
   1295 
   1296 /^ab\n/Ig,aftertext
   1297 Capturing subpattern count = 0
   1298 Contains explicit CR or LF match
   1299 Compile options: <none>
   1300 Overall options: anchored
   1301 First code unit = 'a'
   1302 Subject length lower bound = 3
   1303     ab\nab\ncd
   1304  0: ab\x0a
   1305  0+ ab\x0acd
   1306 
   1307 /^ab\n/Igm,aftertext
   1308 Capturing subpattern count = 0
   1309 Contains explicit CR or LF match
   1310 Options: multiline
   1311 First code unit at start or follows newline
   1312 Last code unit = \x0a
   1313 Subject length lower bound = 3
   1314     ab\nab\ncd
   1315  0: ab\x0a
   1316  0+ ab\x0acd
   1317  0: ab\x0a
   1318  0+ cd
   1319 
   1320 /^/gm,newline=any
   1321     a\rb\nc\r\nxyz\=aftertext
   1322  0: 
   1323  0+ a\x0db\x0ac\x0d\x0axyz
   1324  0: 
   1325  0+ b\x0ac\x0d\x0axyz
   1326  0: 
   1327  0+ c\x0d\x0axyz
   1328  0: 
   1329  0+ xyz
   1330 
   1331 /abc/I
   1332 Capturing subpattern count = 0
   1333 First code unit = 'a'
   1334 Last code unit = 'c'
   1335 Subject length lower bound = 3
   1336 
   1337 /abc|bac/I
   1338 Capturing subpattern count = 0
   1339 Starting code units: a b 
   1340 Last code unit = 'c'
   1341 Subject length lower bound = 3
   1342 
   1343 /(abc|bac)/I
   1344 Capturing subpattern count = 1
   1345 Starting code units: a b 
   1346 Last code unit = 'c'
   1347 Subject length lower bound = 3
   1348 
   1349 /(abc|(c|dc))/I
   1350 Capturing subpattern count = 2
   1351 Starting code units: a c d 
   1352 Last code unit = 'c'
   1353 Subject length lower bound = 1
   1354 
   1355 /(abc|(d|de)c)/I
   1356 Capturing subpattern count = 2
   1357 Starting code units: a d 
   1358 Last code unit = 'c'
   1359 Subject length lower bound = 2
   1360 
   1361 /a*/I
   1362 Capturing subpattern count = 0
   1363 May match empty string
   1364 Subject length lower bound = 0
   1365 
   1366 /a+/I
   1367 Capturing subpattern count = 0
   1368 First code unit = 'a'
   1369 Subject length lower bound = 1
   1370 
   1371 /(baa|a+)/I
   1372 Capturing subpattern count = 1
   1373 Starting code units: a b 
   1374 Last code unit = 'a'
   1375 Subject length lower bound = 1
   1376 
   1377 /a{0,3}/I
   1378 Capturing subpattern count = 0
   1379 May match empty string
   1380 Subject length lower bound = 0
   1381 
   1382 /baa{3,}/I
   1383 Capturing subpattern count = 0
   1384 First code unit = 'b'
   1385 Last code unit = 'a'
   1386 Subject length lower bound = 5
   1387 
   1388 /"([^\\"]+|\\.)*"/I
   1389 Capturing subpattern count = 1
   1390 First code unit = '"'
   1391 Last code unit = '"'
   1392 Subject length lower bound = 2
   1393 
   1394 /(abc|ab[cd])/I
   1395 Capturing subpattern count = 1
   1396 First code unit = 'a'
   1397 Subject length lower bound = 3
   1398 
   1399 /(a|.)/I
   1400 Capturing subpattern count = 1
   1401 Subject length lower bound = 1
   1402 
   1403 /a|ba|\w/I
   1404 Capturing subpattern count = 0
   1405 Starting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P 
   1406   Q R S T U V W X Y Z _ 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 
   1407 Subject length lower bound = 1
   1408 
   1409 /abc(?=pqr)/I
   1410 Capturing subpattern count = 0
   1411 First code unit = 'a'
   1412 Last code unit = 'r'
   1413 Subject length lower bound = 3
   1414 
   1415 /...(?<=abc)/I
   1416 Capturing subpattern count = 0
   1417 Max lookbehind = 3
   1418 Subject length lower bound = 3
   1419 
   1420 /abc(?!pqr)/I
   1421 Capturing subpattern count = 0
   1422 First code unit = 'a'
   1423 Last code unit = 'c'
   1424 Subject length lower bound = 3
   1425 
   1426 /ab./I
   1427 Capturing subpattern count = 0
   1428 First code unit = 'a'
   1429 Last code unit = 'b'
   1430 Subject length lower bound = 3
   1431 
   1432 /ab[xyz]/I
   1433 Capturing subpattern count = 0
   1434 First code unit = 'a'
   1435 Last code unit = 'b'
   1436 Subject length lower bound = 3
   1437 
   1438 /abc*/I
   1439 Capturing subpattern count = 0
   1440 First code unit = 'a'
   1441 Last code unit = 'b'
   1442 Subject length lower bound = 2
   1443 
   1444 /ab.c*/I
   1445 Capturing subpattern count = 0
   1446 First code unit = 'a'
   1447 Last code unit = 'b'
   1448 Subject length lower bound = 3
   1449 
   1450 /a.c*/I
   1451 Capturing subpattern count = 0
   1452 First code unit = 'a'
   1453 Subject length lower bound = 2
   1454 
   1455 /.c*/I
   1456 Capturing subpattern count = 0
   1457 Subject length lower bound = 1
   1458 
   1459 /ac*/I
   1460 Capturing subpattern count = 0
   1461 First code unit = 'a'
   1462 Subject length lower bound = 1
   1463 
   1464 /(a.c*|b.c*)/I
   1465 Capturing subpattern count = 1
   1466 Starting code units: a b 
   1467 Subject length lower bound = 2
   1468 
   1469 /a.c*|aba/I
   1470 Capturing subpattern count = 0
   1471 First code unit = 'a'
   1472 Subject length lower bound = 2
   1473 
   1474 /.+a/I
   1475 Capturing subpattern count = 0
   1476 Last code unit = 'a'
   1477 Subject length lower bound = 2
   1478 
   1479 /(?=abcda)a.*/I
   1480 Capturing subpattern count = 0
   1481 First code unit = 'a'
   1482 Last code unit = 'a'
   1483 Subject length lower bound = 1
   1484 
   1485 /(?=a)a.*/I
   1486 Capturing subpattern count = 0
   1487 First code unit = 'a'
   1488 Subject length lower bound = 1
   1489 
   1490 /a(b)*/I
   1491 Capturing subpattern count = 1
   1492 First code unit = 'a'
   1493 Subject length lower bound = 1
   1494 
   1495 /a\d*/I
   1496 Capturing subpattern count = 0
   1497 First code unit = 'a'
   1498 Subject length lower bound = 1
   1499 
   1500 /ab\d*/I
   1501 Capturing subpattern count = 0
   1502 First code unit = 'a'
   1503 Last code unit = 'b'
   1504 Subject length lower bound = 2
   1505 
   1506 /a(\d)*/I
   1507 Capturing subpattern count = 1
   1508 First code unit = 'a'
   1509 Subject length lower bound = 1
   1510 
   1511 /abcde{0,0}/I
   1512 Capturing subpattern count = 0
   1513 First code unit = 'a'
   1514 Last code unit = 'd'
   1515 Subject length lower bound = 4
   1516 
   1517 /ab\d+/I
   1518 Capturing subpattern count = 0
   1519 First code unit = 'a'
   1520 Last code unit = 'b'
   1521 Subject length lower bound = 3
   1522 
   1523 /a(?(1)b)(.)/I
   1524 Capturing subpattern count = 1
   1525 Max back reference = 1
   1526 First code unit = 'a'
   1527 Subject length lower bound = 2
   1528 
   1529 /a(?(1)bag|big)(.)/I
   1530 Capturing subpattern count = 1
   1531 Max back reference = 1
   1532 First code unit = 'a'
   1533 Last code unit = 'g'
   1534 Subject length lower bound = 5
   1535 
   1536 /a(?(1)bag|big)*(.)/I
   1537 Capturing subpattern count = 1
   1538 Max back reference = 1
   1539 First code unit = 'a'
   1540 Subject length lower bound = 2
   1541 
   1542 /a(?(1)bag|big)+(.)/I
   1543 Capturing subpattern count = 1
   1544 Max back reference = 1
   1545 First code unit = 'a'
   1546 Last code unit = 'g'
   1547 Subject length lower bound = 5
   1548 
   1549 /a(?(1)b..|b..)(.)/I
   1550 Capturing subpattern count = 1
   1551 Max back reference = 1
   1552 First code unit = 'a'
   1553 Last code unit = 'b'
   1554 Subject length lower bound = 5
   1555 
   1556 /ab\d{0}e/I
   1557 Capturing subpattern count = 0
   1558 First code unit = 'a'
   1559 Last code unit = 'e'
   1560 Subject length lower bound = 3
   1561 
   1562 /a?b?/I
   1563 Capturing subpattern count = 0
   1564 May match empty string
   1565 Subject length lower bound = 0
   1566     a
   1567  0: a
   1568     b
   1569  0: b
   1570     ab
   1571  0: ab
   1572     \
   1573  0: 
   1574 \= Expect no match
   1575     \=notempty
   1576 No match
   1577 
   1578 /|-/I
   1579 Capturing subpattern count = 0
   1580 May match empty string
   1581 Subject length lower bound = 0
   1582     abcd
   1583  0: 
   1584     -abc
   1585  0: 
   1586     ab-c\=notempty
   1587  0: -
   1588 \= Expect no match
   1589     abc\=notempty
   1590 No match
   1591 
   1592 /^.?abcd/I
   1593 Capturing subpattern count = 0
   1594 Compile options: <none>
   1595 Overall options: anchored
   1596 Last code unit = 'd'
   1597 Subject length lower bound = 4
   1598 
   1599 /\(             # ( at start
   1600   (?:           # Non-capturing bracket
   1601   (?>[^()]+)    # Either a sequence of non-brackets (no backtracking)
   1602   |             # Or
   1603   (?R)          # Recurse - i.e. nested bracketed string
   1604   )*            # Zero or more contents
   1605   \)            # Closing )
   1606   /Ix
   1607 Capturing subpattern count = 0
   1608 Options: extended
   1609 First code unit = '('
   1610 Last code unit = ')'
   1611 Subject length lower bound = 2
   1612     (abcd)
   1613  0: (abcd)
   1614     (abcd)xyz
   1615  0: (abcd)
   1616     xyz(abcd)
   1617  0: (abcd)
   1618     (ab(xy)cd)pqr
   1619  0: (ab(xy)cd)
   1620     (ab(xycd)pqr
   1621  0: (xycd)
   1622     () abc ()
   1623  0: ()
   1624     12(abcde(fsh)xyz(foo(bar))lmno)89
   1625  0: (abcde(fsh)xyz(foo(bar))lmno)
   1626 \= Expect no match
   1627     abcd
   1628 No match
   1629     abcd)
   1630 No match
   1631     (abcd
   1632 No match
   1633 
   1634 /\(  ( (?>[^()]+) | (?R) )* \) /Igx
   1635 Capturing subpattern count = 1
   1636 Options: extended
   1637 First code unit = '('
   1638 Last code unit = ')'
   1639 Subject length lower bound = 2
   1640     (ab(xy)cd)pqr
   1641  0: (ab(xy)cd)
   1642  1: cd
   1643     1(abcd)(x(y)z)pqr
   1644  0: (abcd)
   1645  1: abcd
   1646  0: (x(y)z)
   1647  1: z
   1648 
   1649 /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
   1650 Capturing subpattern count = 0
   1651 Options: extended
   1652 First code unit = '('
   1653 Last code unit = ')'
   1654 Subject length lower bound = 3
   1655     (abcd)
   1656  0: (abcd)
   1657     (ab(xy)cd)
   1658  0: (xy)
   1659     (a(b(c)d)e)
   1660  0: (c)
   1661     ((ab))
   1662  0: ((ab))
   1663 \= Expect no match
   1664     ()
   1665 No match
   1666 
   1667 /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
   1668 Capturing subpattern count = 0
   1669 Options: extended
   1670 First code unit = '('
   1671 Last code unit = ')'
   1672 Subject length lower bound = 2
   1673     ()
   1674  0: ()
   1675     12(abcde(fsh)xyz(foo(bar))lmno)89
   1676  0: (fsh)
   1677 
   1678 /\(  ( (?>[^()]+) | (?R) )* \) /Ix
   1679 Capturing subpattern count = 1
   1680 Options: extended
   1681 First code unit = '('
   1682 Last code unit = ')'
   1683 Subject length lower bound = 2
   1684     (ab(xy)cd)
   1685  0: (ab(xy)cd)
   1686  1: cd
   1687 
   1688 /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
   1689 Capturing subpattern count = 2
   1690 Options: extended
   1691 First code unit = '('
   1692 Last code unit = ')'
   1693 Subject length lower bound = 2
   1694     (ab(xy)cd)
   1695  0: (ab(xy)cd)
   1696  1: ab(xy)cd
   1697  2: cd
   1698 
   1699 /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
   1700 Capturing subpattern count = 3
   1701 Options: extended
   1702 First code unit = '('
   1703 Last code unit = ')'
   1704 Subject length lower bound = 2
   1705     (ab(xy)cd)
   1706  0: (ab(xy)cd)
   1707  1: <unset>
   1708  2: ab(xy)cd
   1709  3: cd
   1710     (123ab(xy)cd)
   1711  0: (123ab(xy)cd)
   1712  1: 123
   1713  2: ab(xy)cd
   1714  3: cd
   1715 
   1716 /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
   1717 Capturing subpattern count = 3
   1718 Options: extended
   1719 First code unit = '('
   1720 Last code unit = ')'
   1721 Subject length lower bound = 2
   1722     (ab(xy)cd)
   1723  0: (ab(xy)cd)
   1724  1: ab(xy)cd
   1725  2: <unset>
   1726  3: cd
   1727     (123ab(xy)cd)
   1728  0: (123ab(xy)cd)
   1729  1: 123ab(xy)cd
   1730  2: 123
   1731  3: cd
   1732 
   1733 /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
   1734 Capturing subpattern count = 11
   1735 Options: extended
   1736 First code unit = '('
   1737 Last code unit = ')'
   1738 Subject length lower bound = 2
   1739     (ab(xy)cd)
   1740  0: (ab(xy)cd)
   1741  1: ab(xy)cd
   1742  2: ab(xy)cd
   1743  3: ab(xy)cd
   1744  4: ab(xy)cd
   1745  5: ab(xy)cd
   1746  6: ab(xy)cd
   1747  7: ab(xy)cd
   1748  8: ab(xy)cd
   1749  9: ab(xy)cd
   1750 10: ab(xy)cd
   1751 11: cd
   1752 
   1753 /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
   1754 Capturing subpattern count = 3
   1755 Options: extended
   1756 First code unit = '('
   1757 Last code unit = ')'
   1758 Subject length lower bound = 2
   1759     (abcd(xyz<p>qrs)123)
   1760  0: (abcd(xyz<p>qrs)123)
   1761  1: abcd(xyz<p>qrs)123
   1762  2: 123
   1763 
   1764 /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
   1765 Capturing subpattern count = 3
   1766 Options: extended
   1767 First code unit = '('
   1768 Last code unit = ')'
   1769 Subject length lower bound = 2
   1770     (ab(cd)ef)
   1771  0: (ab(cd)ef)
   1772  1: ab(cd)ef
   1773  2: ef
   1774  3: (cd)
   1775     (ab(cd(ef)gh)ij)
   1776  0: (ab(cd(ef)gh)ij)
   1777  1: ab(cd(ef)gh)ij
   1778  2: ij
   1779  3: (cd(ef)gh)
   1780 
   1781 /^[[:alnum:]]/IB
   1782 ------------------------------------------------------------------
   1783         Bra
   1784         ^
   1785         [0-9A-Za-z]
   1786         Ket
   1787         End
   1788 ------------------------------------------------------------------
   1789 Capturing subpattern count = 0
   1790 Compile options: <none>
   1791 Overall options: anchored
   1792 Starting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P 
   1793   Q R S T U V W X Y Z 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 
   1794 Subject length lower bound = 1
   1795 
   1796 /^[[:^alnum:]]/IB
   1797 ------------------------------------------------------------------
   1798         Bra
   1799         ^
   1800         [\x00-/:-@[-`{-\xff] (neg)
   1801         Ket
   1802         End
   1803 ------------------------------------------------------------------
   1804 Capturing subpattern count = 0
   1805 Compile options: <none>
   1806 Overall options: anchored
   1807 Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 
   1808   \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 
   1809   \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = > 
   1810   ? @ [ \ ] ^ _ ` { | } ~ \x7f \x80 \x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 
   1811   \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 
   1812   \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 
   1813   \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 
   1814   \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 
   1815   \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 
   1816   \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 
   1817   \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec \xed \xee \xef \xf0 \xf1 
   1818   \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb \xfc \xfd \xfe \xff 
   1819 Subject length lower bound = 1
   1820 
   1821 /^[[:alpha:]]/IB
   1822 ------------------------------------------------------------------
   1823         Bra
   1824         ^
   1825         [A-Za-z]
   1826         Ket
   1827         End
   1828 ------------------------------------------------------------------
   1829 Capturing subpattern count = 0
   1830 Compile options: <none>
   1831 Overall options: anchored
   1832 Starting code units: 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 
   1833   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 
   1834 Subject length lower bound = 1
   1835 
   1836 /^[[:^alpha:]]/IB
   1837 ------------------------------------------------------------------
   1838         Bra
   1839         ^
   1840         [\x00-@[-`{-\xff] (neg)
   1841         Ket
   1842         End
   1843 ------------------------------------------------------------------
   1844 Capturing subpattern count = 0
   1845 Compile options: <none>
   1846 Overall options: anchored
   1847 Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 
   1848   \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 
   1849   \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 
   1850   5 6 7 8 9 : ; < = > ? @ [ \ ] ^ _ ` { | } ~ \x7f \x80 \x81 \x82 \x83 \x84 
   1851   \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 \x93 
   1852   \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 \xa2 
   1853   \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 \xb1 
   1854   \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf \xc0 
   1855   \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce \xcf 
   1856   \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd \xde 
   1857   \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec \xed 
   1858   \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb \xfc 
   1859   \xfd \xfe \xff 
   1860 Subject length lower bound = 1
   1861 
   1862 /[_[:alpha:]]/I
   1863 Capturing subpattern count = 0
   1864 Starting code units: 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 
   1865   _ 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 
   1866 Subject length lower bound = 1
   1867 
   1868 /^[[:ascii:]]/IB
   1869 ------------------------------------------------------------------
   1870         Bra
   1871         ^
   1872         [\x00-\x7f]
   1873         Ket
   1874         End
   1875 ------------------------------------------------------------------
   1876 Capturing subpattern count = 0
   1877 Compile options: <none>
   1878 Overall options: anchored
   1879 Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 
   1880   \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 
   1881   \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 
   1882   5 6 7 8 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 
   1883   Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ 
   1884   \x7f 
   1885 Subject length lower bound = 1
   1886 
   1887 /^[[:^ascii:]]/IB
   1888 ------------------------------------------------------------------
   1889         Bra
   1890         ^
   1891         [\x80-\xff] (neg)
   1892         Ket
   1893         End
   1894 ------------------------------------------------------------------
   1895 Capturing subpattern count = 0
   1896 Compile options: <none>
   1897 Overall options: anchored
   1898 Starting code units: \x80 \x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a 
   1899   \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 
   1900   \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 
   1901   \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 
   1902   \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 
   1903   \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 
   1904   \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 
   1905   \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 
   1906   \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb \xfc \xfd \xfe \xff 
   1907 Subject length lower bound = 1
   1908 
   1909 /^[[:blank:]]/IB
   1910 ------------------------------------------------------------------
   1911         Bra
   1912         ^
   1913         [\x09 ]
   1914         Ket
   1915         End
   1916 ------------------------------------------------------------------
   1917 Capturing subpattern count = 0
   1918 Compile options: <none>
   1919 Overall options: anchored
   1920 Starting code units: \x09 \x20 
   1921 Subject length lower bound = 1
   1922 
   1923 /^[[:^blank:]]/IB
   1924 ------------------------------------------------------------------
   1925         Bra
   1926         ^
   1927         [\x00-\x08\x0a-\x1f!-\xff] (neg)
   1928         Ket
   1929         End
   1930 ------------------------------------------------------------------
   1931 Capturing subpattern count = 0
   1932 Compile options: <none>
   1933 Overall options: anchored
   1934 Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0a \x0b 
   1935   \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a 
   1936   \x1b \x1c \x1d \x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 
   1937   : ; < = > ? @ 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 [ \ ] ^ 
   1938   _ ` 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 { | } ~ \x7f \x80 
   1939   \x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f 
   1940   \x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e 
   1941   \x9f \xa0 \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad 
   1942   \xae \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc 
   1943   \xbd \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb 
   1944   \xcc \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda 
   1945   \xdb \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 
   1946   \xea \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 
   1947   \xf9 \xfa \xfb \xfc \xfd \xfe \xff 
   1948 Subject length lower bound = 1
   1949 
   1950 /[\n\x0b\x0c\x0d[:blank:]]/I
   1951 Capturing subpattern count = 0
   1952 Contains explicit CR or LF match
   1953 Starting code units: \x09 \x0a \x0b \x0c \x0d \x20 
   1954 Subject length lower bound = 1
   1955 
   1956 /^[[:cntrl:]]/IB
   1957 ------------------------------------------------------------------
   1958         Bra
   1959         ^
   1960         [\x00-\x1f\x7f]
   1961         Ket
   1962         End
   1963 ------------------------------------------------------------------
   1964 Capturing subpattern count = 0
   1965 Compile options: <none>
   1966 Overall options: anchored
   1967 Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 
   1968   \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 
   1969   \x1a \x1b \x1c \x1d \x1e \x1f \x7f 
   1970 Subject length lower bound = 1
   1971 
   1972 /^[[:digit:]]/IB
   1973 ------------------------------------------------------------------
   1974         Bra
   1975         ^
   1976         [0-9]
   1977         Ket
   1978         End
   1979 ------------------------------------------------------------------
   1980 Capturing subpattern count = 0
   1981 Compile options: <none>
   1982 Overall options: anchored
   1983 Starting code units: 0 1 2 3 4 5 6 7 8 9 
   1984 Subject length lower bound = 1
   1985 
   1986 /^[[:graph:]]/IB
   1987 ------------------------------------------------------------------
   1988         Bra
   1989         ^
   1990         [!-~]
   1991         Ket
   1992         End
   1993 ------------------------------------------------------------------
   1994 Capturing subpattern count = 0
   1995 Compile options: <none>
   1996 Overall options: anchored
   1997 Starting code units: ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : 
   1998   ; < = > ? @ 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 [ \ ] ^ _ 
   1999   ` 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 { | } ~ 
   2000 Subject length lower bound = 1
   2001 
   2002 /^[[:lower:]]/IB
   2003 ------------------------------------------------------------------
   2004         Bra
   2005         ^
   2006         [a-z]
   2007         Ket
   2008         End
   2009 ------------------------------------------------------------------
   2010 Capturing subpattern count = 0
   2011 Compile options: <none>
   2012 Overall options: anchored
   2013 Starting code units: 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 
   2014 Subject length lower bound = 1
   2015 
   2016 /^[[:print:]]/IB
   2017 ------------------------------------------------------------------
   2018         Bra
   2019         ^
   2020         [ -~]
   2021         Ket
   2022         End
   2023 ------------------------------------------------------------------
   2024 Capturing subpattern count = 0
   2025 Compile options: <none>
   2026 Overall options: anchored
   2027 Starting code units: \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 
   2028   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 [ \ ] 
   2029   ^ _ ` 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 { | } ~ 
   2030 Subject length lower bound = 1
   2031 
   2032 /^[[:punct:]]/IB
   2033 ------------------------------------------------------------------
   2034         Bra
   2035         ^
   2036         [!-/:-@[-`{-~]
   2037         Ket
   2038         End
   2039 ------------------------------------------------------------------
   2040 Capturing subpattern count = 0
   2041 Compile options: <none>
   2042 Overall options: anchored
   2043 Starting code units: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ 
   2044   _ ` { | } ~ 
   2045 Subject length lower bound = 1
   2046 
   2047 /^[[:space:]]/IB
   2048 ------------------------------------------------------------------
   2049         Bra
   2050         ^
   2051         [\x09-\x0d ]
   2052         Ket
   2053         End
   2054 ------------------------------------------------------------------
   2055 Capturing subpattern count = 0
   2056 Compile options: <none>
   2057 Overall options: anchored
   2058 Starting code units: \x09 \x0a \x0b \x0c \x0d \x20 
   2059 Subject length lower bound = 1
   2060 
   2061 /^[[:upper:]]/IB
   2062 ------------------------------------------------------------------
   2063         Bra
   2064         ^
   2065         [A-Z]
   2066         Ket
   2067         End
   2068 ------------------------------------------------------------------
   2069 Capturing subpattern count = 0
   2070 Compile options: <none>
   2071 Overall options: anchored
   2072 Starting code units: 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 
   2073 Subject length lower bound = 1
   2074 
   2075 /^[[:xdigit:]]/IB
   2076 ------------------------------------------------------------------
   2077         Bra
   2078         ^
   2079         [0-9A-Fa-f]
   2080         Ket
   2081         End
   2082 ------------------------------------------------------------------
   2083 Capturing subpattern count = 0
   2084 Compile options: <none>
   2085 Overall options: anchored
   2086 Starting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f 
   2087 Subject length lower bound = 1
   2088 
   2089 /^[[:word:]]/IB
   2090 ------------------------------------------------------------------
   2091         Bra
   2092         ^
   2093         [0-9A-Z_a-z]
   2094         Ket
   2095         End
   2096 ------------------------------------------------------------------
   2097 Capturing subpattern count = 0
   2098 Compile options: <none>
   2099 Overall options: anchored
   2100 Starting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P 
   2101   Q R S T U V W X Y Z _ 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 
   2102 Subject length lower bound = 1
   2103 
   2104 /^[[:^cntrl:]]/IB
   2105 ------------------------------------------------------------------
   2106         Bra
   2107         ^
   2108         [ -~\x80-\xff] (neg)
   2109         Ket
   2110         End
   2111 ------------------------------------------------------------------
   2112 Capturing subpattern count = 0
   2113 Compile options: <none>
   2114 Overall options: anchored
   2115 Starting code units: \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 
   2116   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 [ \ ] 
   2117   ^ _ ` 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 { | } ~ \x80 \x81 
   2118   \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 
   2119   \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f 
   2120   \xa0 \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae 
   2121   \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd 
   2122   \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc 
   2123   \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb 
   2124   \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea 
   2125   \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 
   2126   \xfa \xfb \xfc \xfd \xfe \xff 
   2127 Subject length lower bound = 1
   2128 
   2129 /^[12[:^digit:]]/IB
   2130 ------------------------------------------------------------------
   2131         Bra
   2132         ^
   2133         [\x00-/12:-\xff] (neg)
   2134         Ket
   2135         End
   2136 ------------------------------------------------------------------
   2137 Capturing subpattern count = 0
   2138 Compile options: <none>
   2139 Overall options: anchored
   2140 Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 
   2141   \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 
   2142   \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 1 2 : ; < 
   2143   = > ? @ 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 
   2144   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 { | } ~ \x7f \x80 \x81 \x82 
   2145   \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 
   2146   \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 
   2147   \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf 
   2148   \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe 
   2149   \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd 
   2150   \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc 
   2151   \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb 
   2152   \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa 
   2153   \xfb \xfc \xfd \xfe \xff 
   2154 Subject length lower bound = 1
   2155 
   2156 /^[[:^blank:]]/IB
   2157 ------------------------------------------------------------------
   2158         Bra
   2159         ^
   2160         [\x00-\x08\x0a-\x1f!-\xff] (neg)
   2161         Ket
   2162         End
   2163 ------------------------------------------------------------------
   2164 Capturing subpattern count = 0
   2165 Compile options: <none>
   2166 Overall options: anchored
   2167 Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0a \x0b 
   2168   \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a 
   2169   \x1b \x1c \x1d \x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 
   2170   : ; < = > ? @ 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 [ \ ] ^ 
   2171   _ ` 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 { | } ~ \x7f \x80 
   2172   \x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f 
   2173   \x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e 
   2174   \x9f \xa0 \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad 
   2175   \xae \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc 
   2176   \xbd \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb 
   2177   \xcc \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda 
   2178   \xdb \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 
   2179   \xea \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 
   2180   \xf9 \xfa \xfb \xfc \xfd \xfe \xff 
   2181 Subject length lower bound = 1
   2182 
   2183 /[01[:alpha:]%]/IB
   2184 ------------------------------------------------------------------
   2185         Bra
   2186         [%01A-Za-z]
   2187         Ket
   2188         End
   2189 ------------------------------------------------------------------
   2190 Capturing subpattern count = 0
   2191 Starting code units: % 0 1 A B C D E F G H I J K L M N O P Q R S T U V W 
   2192   X Y Z 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 
   2193 Subject length lower bound = 1
   2194 
   2195 /[[.ch.]]/I
   2196 Failed: error 113 at offset 1: POSIX collating elements are not supported
   2197 
   2198 /[[=ch=]]/I
   2199 Failed: error 113 at offset 1: POSIX collating elements are not supported
   2200 
   2201 /[[:rhubarb:]]/I
   2202 Failed: error 130 at offset 3: unknown POSIX class name
   2203 
   2204 /[[:upper:]]/Ii
   2205 Capturing subpattern count = 0
   2206 Options: caseless
   2207 Starting code units: 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 
   2208   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 
   2209 Subject length lower bound = 1
   2210     A
   2211  0: A
   2212     a
   2213  0: a
   2214 
   2215 /[[:lower:]]/Ii
   2216 Capturing subpattern count = 0
   2217 Options: caseless
   2218 Starting code units: 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 
   2219   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 
   2220 Subject length lower bound = 1
   2221     A
   2222  0: A
   2223     a
   2224  0: a
   2225 
   2226 /((?-i)[[:lower:]])[[:lower:]]/Ii
   2227 Capturing subpattern count = 1
   2228 Options: caseless
   2229 Starting code units: 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 
   2230 Subject length lower bound = 2
   2231     ab
   2232  0: ab
   2233  1: a
   2234     aB
   2235  0: aB
   2236  1: a
   2237 \= Expect no match
   2238     Ab
   2239 No match
   2240     AB
   2241 No match
   2242 
   2243 /[\200-\110]/I
   2244 Failed: error 108 at offset 9: range out of order in character class
   2245 
   2246 /^(?(0)f|b)oo/I
   2247 Failed: error 115 at offset 5: reference to non-existent subpattern
   2248 
   2249 # This one's here because of the large output vector needed
   2250 
   2251 /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
   2252 Capturing subpattern count = 271
   2253 Max back reference = 270
   2254 Starting code units: 0 1 2 3 4 5 6 7 8 9 
   2255 Subject length lower bound = 0
   2256      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\=ovector=300
   2257  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
   2258  1: 1 
   2259  2: 2 
   2260  3: 3 
   2261  4: 4 
   2262  5: 5 
   2263  6: 6 
   2264  7: 7 
   2265  8: 8 
   2266  9: 9 
   2267 10: 10 
   2268 11: 11 
   2269 12: 12 
   2270 13: 13 
   2271 14: 14 
   2272 15: 15 
   2273 16: 16 
   2274 17: 17 
   2275 18: 18 
   2276 19: 19 
   2277 20: 20 
   2278 21: 21 
   2279 22: 22 
   2280 23: 23 
   2281 24: 24 
   2282 25: 25 
   2283 26: 26 
   2284 27: 27 
   2285 28: 28 
   2286 29: 29 
   2287 30: 30 
   2288 31: 31 
   2289 32: 32 
   2290 33: 33 
   2291 34: 34 
   2292 35: 35 
   2293 36: 36 
   2294 37: 37 
   2295 38: 38 
   2296 39: 39 
   2297 40: 40 
   2298 41: 41 
   2299 42: 42 
   2300 43: 43 
   2301 44: 44 
   2302 45: 45 
   2303 46: 46 
   2304 47: 47 
   2305 48: 48 
   2306 49: 49 
   2307 50: 50 
   2308 51: 51 
   2309 52: 52 
   2310 53: 53 
   2311 54: 54 
   2312 55: 55 
   2313 56: 56 
   2314 57: 57 
   2315 58: 58 
   2316 59: 59 
   2317 60: 60 
   2318 61: 61 
   2319 62: 62 
   2320 63: 63 
   2321 64: 64 
   2322 65: 65 
   2323 66: 66 
   2324 67: 67 
   2325 68: 68 
   2326 69: 69 
   2327 70: 70 
   2328 71: 71 
   2329 72: 72 
   2330 73: 73 
   2331 74: 74 
   2332 75: 75 
   2333 76: 76 
   2334 77: 77 
   2335 78: 78 
   2336 79: 79 
   2337 80: 80 
   2338 81: 81 
   2339 82: 82 
   2340 83: 83 
   2341 84: 84 
   2342 85: 85 
   2343 86: 86 
   2344 87: 87 
   2345 88: 88 
   2346 89: 89 
   2347 90: 90 
   2348 91: 91 
   2349 92: 92 
   2350 93: 93 
   2351 94: 94 
   2352 95: 95 
   2353 96: 96 
   2354 97: 97 
   2355 98: 98 
   2356 99: 99 
   2357 100: 100 
   2358 101: 101 
   2359 102: 102 
   2360 103: 103 
   2361 104: 104 
   2362 105: 105 
   2363 106: 106 
   2364 107: 107 
   2365 108: 108 
   2366 109: 109 
   2367 110: 110 
   2368 111: 111 
   2369 112: 112 
   2370 113: 113 
   2371 114: 114 
   2372 115: 115 
   2373 116: 116 
   2374 117: 117 
   2375 118: 118 
   2376 119: 119 
   2377 120: 120 
   2378 121: 121 
   2379 122: 122 
   2380 123: 123 
   2381 124: 124 
   2382 125: 125 
   2383 126: 126 
   2384 127: 127 
   2385 128: 128 
   2386 129: 129 
   2387 130: 130 
   2388 131: 131 
   2389 132: 132 
   2390 133: 133 
   2391 134: 134 
   2392 135: 135 
   2393 136: 136 
   2394 137: 137 
   2395 138: 138 
   2396 139: 139 
   2397 140: 140 
   2398 141: 141 
   2399 142: 142 
   2400 143: 143 
   2401 144: 144 
   2402 145: 145 
   2403 146: 146 
   2404 147: 147 
   2405 148: 148 
   2406 149: 149 
   2407 150: 150 
   2408 151: 151 
   2409 152: 152 
   2410 153: 153 
   2411 154: 154 
   2412 155: 155 
   2413 156: 156 
   2414 157: 157 
   2415 158: 158 
   2416 159: 159 
   2417 160: 160 
   2418 161: 161 
   2419 162: 162 
   2420 163: 163 
   2421 164: 164 
   2422 165: 165 
   2423 166: 166 
   2424 167: 167 
   2425 168: 168 
   2426 169: 169 
   2427 170: 170 
   2428 171: 171 
   2429 172: 172 
   2430 173: 173 
   2431 174: 174 
   2432 175: 175 
   2433 176: 176 
   2434 177: 177 
   2435 178: 178 
   2436 179: 179 
   2437 180: 180 
   2438 181: 181 
   2439 182: 182 
   2440 183: 183 
   2441 184: 184 
   2442 185: 185 
   2443 186: 186 
   2444 187: 187 
   2445 188: 188 
   2446 189: 189 
   2447 190: 190 
   2448 191: 191 
   2449 192: 192 
   2450 193: 193 
   2451 194: 194 
   2452 195: 195 
   2453 196: 196 
   2454 197: 197 
   2455 198: 198 
   2456 199: 199 
   2457 200: 200 
   2458 201: 201 
   2459 202: 202 
   2460 203: 203 
   2461 204: 204 
   2462 205: 205 
   2463 206: 206 
   2464 207: 207 
   2465 208: 208 
   2466 209: 209 
   2467 210: 210 
   2468 211: 211 
   2469 212: 212 
   2470 213: 213 
   2471 214: 214 
   2472 215: 215 
   2473 216: 216 
   2474 217: 217 
   2475 218: 218 
   2476 219: 219 
   2477 220: 220 
   2478 221: 221 
   2479 222: 222 
   2480 223: 223 
   2481 224: 224 
   2482 225: 225 
   2483 226: 226 
   2484 227: 227 
   2485 228: 228 
   2486 229: 229 
   2487 230: 230 
   2488 231: 231 
   2489 232: 232 
   2490 233: 233 
   2491 234: 234 
   2492 235: 235 
   2493 236: 236 
   2494 237: 237 
   2495 238: 238 
   2496 239: 239 
   2497 240: 240 
   2498 241: 241 
   2499 242: 242 
   2500 243: 243 
   2501 244: 244 
   2502 245: 245 
   2503 246: 246 
   2504 247: 247 
   2505 248: 248 
   2506 249: 249 
   2507 250: 250 
   2508 251: 251 
   2509 252: 252 
   2510 253: 253 
   2511 254: 254 
   2512 255: 255 
   2513 256: 256 
   2514 257: 257 
   2515 258: 258 
   2516 259: 259 
   2517 260: 260 
   2518 261: 261 
   2519 262: 262 
   2520 263: 263 
   2521 264: 264 
   2522 265: 265 
   2523 266: 266 
   2524 267: 267 
   2525 268: 268 
   2526 269: 269 
   2527 270: ABC
   2528 271: ABC
   2529 
   2530 # This one's here because Perl does this differently and PCRE2 can't at present
   2531 
   2532 /(main(O)?)+/I
   2533 Capturing subpattern count = 2
   2534 First code unit = 'm'
   2535 Last code unit = 'n'
   2536 Subject length lower bound = 4
   2537     mainmain
   2538  0: mainmain
   2539  1: main
   2540     mainOmain
   2541  0: mainOmain
   2542  1: main
   2543  2: O
   2544 
   2545 # These are all cases where Perl does it differently (nested captures)
   2546 
   2547 /^(a(b)?)+$/I
   2548 Capturing subpattern count = 2
   2549 Compile options: <none>
   2550 Overall options: anchored
   2551 First code unit = 'a'
   2552 Subject length lower bound = 1
   2553     aba
   2554  0: aba
   2555  1: a
   2556  2: b
   2557 
   2558 /^(aa(bb)?)+$/I
   2559 Capturing subpattern count = 2
   2560 Compile options: <none>
   2561 Overall options: anchored
   2562 First code unit = 'a'
   2563 Subject length lower bound = 2
   2564     aabbaa
   2565  0: aabbaa
   2566  1: aa
   2567  2: bb
   2568 
   2569 /^(aa|aa(bb))+$/I
   2570 Capturing subpattern count = 2
   2571 Compile options: <none>
   2572 Overall options: anchored
   2573 First code unit = 'a'
   2574 Subject length lower bound = 2
   2575     aabbaa
   2576  0: aabbaa
   2577  1: aa
   2578  2: bb
   2579 
   2580 /^(aa(bb)??)+$/I
   2581 Capturing subpattern count = 2
   2582 Compile options: <none>
   2583 Overall options: anchored
   2584 First code unit = 'a'
   2585 Subject length lower bound = 2
   2586     aabbaa
   2587  0: aabbaa
   2588  1: aa
   2589  2: bb
   2590 
   2591 /^(?:aa(bb)?)+$/I
   2592 Capturing subpattern count = 1
   2593 Compile options: <none>
   2594 Overall options: anchored
   2595 First code unit = 'a'
   2596 Subject length lower bound = 2
   2597     aabbaa
   2598  0: aabbaa
   2599  1: bb
   2600 
   2601 /^(aa(b(b))?)+$/I
   2602 Capturing subpattern count = 3
   2603 Compile options: <none>
   2604 Overall options: anchored
   2605 First code unit = 'a'
   2606 Subject length lower bound = 2
   2607     aabbaa
   2608  0: aabbaa
   2609  1: aa
   2610  2: bb
   2611  3: b
   2612 
   2613 /^(?:aa(b(b))?)+$/I
   2614 Capturing subpattern count = 2
   2615 Compile options: <none>
   2616 Overall options: anchored
   2617 First code unit = 'a'
   2618 Subject length lower bound = 2
   2619     aabbaa
   2620  0: aabbaa
   2621  1: bb
   2622  2: b
   2623 
   2624 /^(?:aa(b(?:b))?)+$/I
   2625 Capturing subpattern count = 1
   2626 Compile options: <none>
   2627 Overall options: anchored
   2628 First code unit = 'a'
   2629 Subject length lower bound = 2
   2630     aabbaa
   2631  0: aabbaa
   2632  1: bb
   2633 
   2634 /^(?:aa(bb(?:b))?)+$/I
   2635 Capturing subpattern count = 1
   2636 Compile options: <none>
   2637 Overall options: anchored
   2638 First code unit = 'a'
   2639 Subject length lower bound = 2
   2640     aabbbaa
   2641  0: aabbbaa
   2642  1: bbb
   2643 
   2644 /^(?:aa(b(?:bb))?)+$/I
   2645 Capturing subpattern count = 1
   2646 Compile options: <none>
   2647 Overall options: anchored
   2648 First code unit = 'a'
   2649 Subject length lower bound = 2
   2650     aabbbaa
   2651  0: aabbbaa
   2652  1: bbb
   2653 
   2654 /^(?:aa(?:b(b))?)+$/I
   2655 Capturing subpattern count = 1
   2656 Compile options: <none>
   2657 Overall options: anchored
   2658 First code unit = 'a'
   2659 Subject length lower bound = 2
   2660     aabbaa
   2661  0: aabbaa
   2662  1: b
   2663 
   2664 /^(?:aa(?:b(bb))?)+$/I
   2665 Capturing subpattern count = 1
   2666 Compile options: <none>
   2667 Overall options: anchored
   2668 First code unit = 'a'
   2669 Subject length lower bound = 2
   2670     aabbbaa
   2671  0: aabbbaa
   2672  1: bb
   2673 
   2674 /^(aa(b(bb))?)+$/I
   2675 Capturing subpattern count = 3
   2676 Compile options: <none>
   2677 Overall options: anchored
   2678 First code unit = 'a'
   2679 Subject length lower bound = 2
   2680     aabbbaa
   2681  0: aabbbaa
   2682  1: aa
   2683  2: bbb
   2684  3: bb
   2685 
   2686 /^(aa(bb(bb))?)+$/I
   2687 Capturing subpattern count = 3
   2688 Compile options: <none>
   2689 Overall options: anchored
   2690 First code unit = 'a'
   2691 Subject length lower bound = 2
   2692     aabbbbaa
   2693  0: aabbbbaa
   2694  1: aa
   2695  2: bbbb
   2696  3: bb
   2697 
   2698 # ----------------
   2699 
   2700 /#/IBx
   2701 ------------------------------------------------------------------
   2702         Bra
   2703         Ket
   2704         End
   2705 ------------------------------------------------------------------
   2706 Capturing subpattern count = 0
   2707 May match empty string
   2708 Options: extended
   2709 Subject length lower bound = 0
   2710 
   2711 /a#/IBx
   2712 ------------------------------------------------------------------
   2713         Bra
   2714         a
   2715         Ket
   2716         End
   2717 ------------------------------------------------------------------
   2718 Capturing subpattern count = 0
   2719 Options: extended
   2720 First code unit = 'a'
   2721 Subject length lower bound = 1
   2722 
   2723 /[\s]/IB
   2724 ------------------------------------------------------------------
   2725         Bra
   2726         [\x09-\x0d ]
   2727         Ket
   2728         End
   2729 ------------------------------------------------------------------
   2730 Capturing subpattern count = 0
   2731 Starting code units: \x09 \x0a \x0b \x0c \x0d \x20 
   2732 Subject length lower bound = 1
   2733 
   2734 /[\S]/IB
   2735 ------------------------------------------------------------------
   2736         Bra
   2737         [\x00-\x08\x0e-\x1f!-\xff] (neg)
   2738         Ket
   2739         End
   2740 ------------------------------------------------------------------
   2741 Capturing subpattern count = 0
   2742 Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0e \x0f 
   2743   \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1b \x1c \x1d \x1e 
   2744   \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C 
   2745   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 f g h 
   2746   i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80 \x81 \x82 \x83 \x84 
   2747   \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 \x93 
   2748   \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 \xa2 
   2749   \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 \xb1 
   2750   \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf \xc0 
   2751   \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce \xcf 
   2752   \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd \xde 
   2753   \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec \xed 
   2754   \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb \xfc 
   2755   \xfd \xfe \xff 
   2756 Subject length lower bound = 1
   2757 
   2758 /a(?i)b/IB
   2759 ------------------------------------------------------------------
   2760         Bra
   2761         a
   2762      /i b
   2763         Ket
   2764         End
   2765 ------------------------------------------------------------------
   2766 Capturing subpattern count = 0
   2767 First code unit = 'a'
   2768 Last code unit = 'b' (caseless)
   2769 Subject length lower bound = 2
   2770     ab
   2771  0: ab
   2772     aB
   2773  0: aB
   2774 \= Expect no match
   2775     AB
   2776 No match
   2777 
   2778 /(a(?i)b)/IB
   2779 ------------------------------------------------------------------
   2780         Bra
   2781         CBra 1
   2782         a
   2783      /i b
   2784         Ket
   2785         Ket
   2786         End
   2787 ------------------------------------------------------------------
   2788 Capturing subpattern count = 1
   2789 First code unit = 'a'
   2790 Last code unit = 'b' (caseless)
   2791 Subject length lower bound = 2
   2792     ab
   2793  0: ab
   2794  1: ab
   2795     aB
   2796  0: aB
   2797  1: aB
   2798 \= Expect no match
   2799     AB
   2800 No match
   2801 
   2802 /   (?i)abc/IBx
   2803 ------------------------------------------------------------------
   2804         Bra
   2805      /i abc
   2806         Ket
   2807         End
   2808 ------------------------------------------------------------------
   2809 Capturing subpattern count = 0
   2810 Options: extended
   2811 First code unit = 'a' (caseless)
   2812 Last code unit = 'c' (caseless)
   2813 Subject length lower bound = 3
   2814 
   2815 /#this is a comment
   2816   (?i)abc/IBx
   2817 ------------------------------------------------------------------
   2818         Bra
   2819      /i abc
   2820         Ket
   2821         End
   2822 ------------------------------------------------------------------
   2823 Capturing subpattern count = 0
   2824 Options: extended
   2825 First code unit = 'a' (caseless)
   2826 Last code unit = 'c' (caseless)
   2827 Subject length lower bound = 3
   2828 
   2829 /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/IB
   2830 ------------------------------------------------------------------
   2831         Bra
   2832         123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
   2833         Ket
   2834         End
   2835 ------------------------------------------------------------------
   2836 Capturing subpattern count = 0
   2837 First code unit = '1'
   2838 Last code unit = '0'
   2839 Subject length lower bound = 300
   2840 
   2841 /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/IB
   2842 ------------------------------------------------------------------
   2843         Bra
   2844         123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
   2845         Ket
   2846         End
   2847 ------------------------------------------------------------------
   2848 Capturing subpattern count = 0
   2849 First code unit = '1'
   2850 Last code unit = '0'
   2851 Subject length lower bound = 300
   2852 
   2853 /\Q\E/IB
   2854 ------------------------------------------------------------------
   2855         Bra
   2856         Ket
   2857         End
   2858 ------------------------------------------------------------------
   2859 Capturing subpattern count = 0
   2860 May match empty string
   2861 Subject length lower bound = 0
   2862     \
   2863  0: 
   2864 
   2865 /\Q\Ex/IB
   2866 ------------------------------------------------------------------
   2867         Bra
   2868         x
   2869         Ket
   2870         End
   2871 ------------------------------------------------------------------
   2872 Capturing subpattern count = 0
   2873 First code unit = 'x'
   2874 Subject length lower bound = 1
   2875 
   2876 / \Q\E/IB
   2877 ------------------------------------------------------------------
   2878         Bra
   2879          
   2880         Ket
   2881         End
   2882 ------------------------------------------------------------------
   2883 Capturing subpattern count = 0
   2884 First code unit = ' '
   2885 Subject length lower bound = 1
   2886 
   2887 /a\Q\E/IB
   2888 ------------------------------------------------------------------
   2889         Bra
   2890         a
   2891         Ket
   2892         End
   2893 ------------------------------------------------------------------
   2894 Capturing subpattern count = 0
   2895 First code unit = 'a'
   2896 Subject length lower bound = 1
   2897   abc
   2898  0: a
   2899   bca
   2900  0: a
   2901   bac
   2902  0: a
   2903 
   2904 /a\Q\Eb/IB
   2905 ------------------------------------------------------------------
   2906         Bra
   2907         ab
   2908         Ket
   2909         End
   2910 ------------------------------------------------------------------
   2911 Capturing subpattern count = 0
   2912 First code unit = 'a'
   2913 Last code unit = 'b'
   2914 Subject length lower bound = 2
   2915   abc
   2916  0: ab
   2917 
   2918 /\Q\Eabc/IB
   2919 ------------------------------------------------------------------
   2920         Bra
   2921         abc
   2922         Ket
   2923         End
   2924 ------------------------------------------------------------------
   2925 Capturing subpattern count = 0
   2926 First code unit = 'a'
   2927 Last code unit = 'c'
   2928 Subject length lower bound = 3
   2929 
   2930 /x*+\w/IB
   2931 ------------------------------------------------------------------
   2932         Bra
   2933         x*+
   2934         \w
   2935         Ket
   2936         End
   2937 ------------------------------------------------------------------
   2938 Capturing subpattern count = 0
   2939 Starting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P 
   2940   Q R S T U V W X Y Z _ 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 
   2941 Subject length lower bound = 1
   2942 \= Expect no match
   2943     xxxxx
   2944 No match
   2945 
   2946 /x?+/IB
   2947 ------------------------------------------------------------------
   2948         Bra
   2949         x?+
   2950         Ket
   2951         End
   2952 ------------------------------------------------------------------
   2953 Capturing subpattern count = 0
   2954 May match empty string
   2955 Subject length lower bound = 0
   2956 
   2957 /x++/IB
   2958 ------------------------------------------------------------------
   2959         Bra
   2960         x++
   2961         Ket
   2962         End
   2963 ------------------------------------------------------------------
   2964 Capturing subpattern count = 0
   2965 First code unit = 'x'
   2966 Subject length lower bound = 1
   2967 
   2968 /x{1,3}+/B,no_auto_possess
   2969 ------------------------------------------------------------------
   2970         Bra
   2971         x
   2972         x{0,2}+
   2973         Ket
   2974         End
   2975 ------------------------------------------------------------------
   2976 
   2977 /x{1,3}+/Bi,no_auto_possess
   2978 ------------------------------------------------------------------
   2979         Bra
   2980      /i x
   2981      /i x{0,2}+
   2982         Ket
   2983         End
   2984 ------------------------------------------------------------------
   2985 
   2986 /[^x]{1,3}+/B,no_auto_possess
   2987 ------------------------------------------------------------------
   2988         Bra
   2989         [^x]
   2990         [^x]{0,2}+
   2991         Ket
   2992         End
   2993 ------------------------------------------------------------------
   2994 
   2995 /[^x]{1,3}+/Bi,no_auto_possess
   2996 ------------------------------------------------------------------
   2997         Bra
   2998      /i [^x]
   2999      /i [^x]{0,2}+
   3000         Ket
   3001         End
   3002 ------------------------------------------------------------------
   3003 
   3004 /(x)*+/IB
   3005 ------------------------------------------------------------------
   3006         Bra
   3007         Braposzero
   3008         CBraPos 1
   3009         x
   3010         KetRpos
   3011         Ket
   3012         End
   3013 ------------------------------------------------------------------
   3014 Capturing subpattern count = 1
   3015 May match empty string
   3016 Subject length lower bound = 0
   3017 
   3018 /^(\w++|\s++)*$/I
   3019 Capturing subpattern count = 1
   3020 May match empty string
   3021 Compile options: <none>
   3022 Overall options: anchored
   3023 Subject length lower bound = 0
   3024     now is the time for all good men to come to the aid of the party
   3025  0: now is the time for all good men to come to the aid of the party
   3026  1: party
   3027 \= Expect no match
   3028     this is not a line with only words and spaces!
   3029 No match
   3030 
   3031 /(\d++)(\w)/I
   3032 Capturing subpattern count = 2
   3033 Starting code units: 0 1 2 3 4 5 6 7 8 9 
   3034 Subject length lower bound = 2
   3035     12345a
   3036  0: 12345a
   3037  1: 12345
   3038  2: a
   3039 \= Expect no match
   3040     12345+
   3041 No match
   3042 
   3043 /a++b/I
   3044 Capturing subpattern count = 0
   3045 First code unit = 'a'
   3046 Last code unit = 'b'
   3047 Subject length lower bound = 2
   3048     aaab
   3049  0: aaab
   3050 
   3051 /(a++b)/I
   3052 Capturing subpattern count = 1
   3053 First code unit = 'a'
   3054 Last code unit = 'b'
   3055 Subject length lower bound = 2
   3056     aaab
   3057  0: aaab
   3058  1: aaab
   3059 
   3060 /(a++)b/I
   3061 Capturing subpattern count = 1
   3062 First code unit = 'a'
   3063 Last code unit = 'b'
   3064 Subject length lower bound = 2
   3065     aaab
   3066  0: aaab
   3067  1: aaa
   3068 
   3069 /([^()]++|\([^()]*\))+/I
   3070 Capturing subpattern count = 1
   3071 Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 
   3072   \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 
   3073   \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( * + , - . / 0 1 2 3 4 5 
   3074   6 7 8 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 
   3075   [ \ ] ^ _ ` 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 { | } ~ \x7f 
   3076   \x80 \x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e 
   3077   \x8f \x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d 
   3078   \x9e \x9f \xa0 \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac 
   3079   \xad \xae \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb 
   3080   \xbc \xbd \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca 
   3081   \xcb \xcc \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 
   3082   \xda \xdb \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 
   3083   \xe9 \xea \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 
   3084   \xf8 \xf9 \xfa \xfb \xfc \xfd \xfe \xff 
   3085 Subject length lower bound = 1
   3086     ((abc(ade)ufh()()x
   3087  0: abc(ade)ufh()()x
   3088  1: x
   3089 
   3090 /\(([^()]++|\([^()]+\))+\)/I
   3091 Capturing subpattern count = 1
   3092 First code unit = '('
   3093 Last code unit = ')'
   3094 Subject length lower bound = 3
   3095     (abc)
   3096  0: (abc)
   3097  1: abc
   3098     (abc(def)xyz)
   3099  0: (abc(def)xyz)
   3100  1: xyz
   3101 \= Expect no match
   3102     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   3103 No match
   3104 
   3105 /(abc){1,3}+/IB
   3106 ------------------------------------------------------------------
   3107         Bra
   3108         Once
   3109         CBra 1
   3110         abc
   3111         Ket
   3112         Brazero
   3113         Bra
   3114         CBra 1
   3115         abc
   3116         Ket
   3117         Brazero
   3118         CBra 1
   3119         abc
   3120         Ket
   3121         Ket
   3122         Ket
   3123         Ket
   3124         End
   3125 ------------------------------------------------------------------
   3126 Capturing subpattern count = 1
   3127 First code unit = 'a'
   3128 Last code unit = 'c'
   3129 Subject length lower bound = 3
   3130 
   3131 /a+?+/I
   3132 Failed: error 109 at offset 3: quantifier does not follow a repeatable item
   3133 
   3134 /a{2,3}?+b/I
   3135 Failed: error 109 at offset 7: quantifier does not follow a repeatable item
   3136 
   3137 /(?U)a+?+/I
   3138 Failed: error 109 at offset 7: quantifier does not follow a repeatable item
   3139 
   3140 /a{2,3}?+b/I,ungreedy
   3141 Failed: error 109 at offset 7: quantifier does not follow a repeatable item
   3142 
   3143 /x(?U)a++b/IB
   3144 ------------------------------------------------------------------
   3145         Bra
   3146         x
   3147         a++
   3148         b
   3149         Ket
   3150         End
   3151 ------------------------------------------------------------------
   3152 Capturing subpattern count = 0
   3153 First code unit = 'x'
   3154 Last code unit = 'b'
   3155 Subject length lower bound = 3
   3156     xaaaab
   3157  0: xaaaab
   3158 
   3159 /(?U)xa++b/IB
   3160 ------------------------------------------------------------------
   3161         Bra
   3162         x
   3163         a++
   3164         b
   3165         Ket
   3166         End
   3167 ------------------------------------------------------------------
   3168 Capturing subpattern count = 0
   3169 First code unit = 'x'
   3170 Last code unit = 'b'
   3171 Subject length lower bound = 3
   3172     xaaaab
   3173  0: xaaaab
   3174 
   3175 /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/IB
   3176 ------------------------------------------------------------------
   3177         Bra
   3178         ^
   3179         CBra 1
   3180         CBra 2
   3181         a+
   3182         Ket
   3183         CBra 3
   3184         [ab]+?
   3185         Ket
   3186         CBra 4
   3187         [bc]+
   3188         Ket
   3189         CBra 5
   3190         \w*+
   3191         Ket
   3192         Ket
   3193         Ket
   3194         End
   3195 ------------------------------------------------------------------
   3196 Capturing subpattern count = 5
   3197 Compile options: <none>
   3198 Overall options: anchored
   3199 First code unit = 'a'
   3200 Subject length lower bound = 3
   3201 
   3202 /^x(?U)a+b/IB
   3203 ------------------------------------------------------------------
   3204         Bra
   3205         ^
   3206         x
   3207         a++
   3208         b
   3209         Ket
   3210         End
   3211 ------------------------------------------------------------------
   3212 Capturing subpattern count = 0
   3213 Compile options: <none>
   3214 Overall options: anchored
   3215 First code unit = 'x'
   3216 Last code unit = 'b'
   3217 Subject length lower bound = 3
   3218 
   3219 /^x(?U)(a+)b/IB
   3220 ------------------------------------------------------------------
   3221         Bra
   3222         ^
   3223         x
   3224         CBra 1
   3225         a+?
   3226         Ket
   3227         b
   3228         Ket
   3229         End
   3230 ------------------------------------------------------------------
   3231 Capturing subpattern count = 1
   3232 Compile options: <none>
   3233 Overall options: anchored
   3234 First code unit = 'x'
   3235 Last code unit = 'b'
   3236 Subject length lower bound = 3
   3237 
   3238 /[.x.]/I
   3239 Failed: error 113 at offset 0: POSIX collating elements are not supported
   3240 
   3241 /[=x=]/I
   3242 Failed: error 113 at offset 0: POSIX collating elements are not supported
   3243 
   3244 /[:x:]/I
   3245 Failed: error 112 at offset 0: POSIX named classes are supported only within a class
   3246 
   3247 /\F/I
   3248 Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u
   3249 
   3250 /\l/I
   3251 Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u
   3252 
   3253 /\L/I
   3254 Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u
   3255 
   3256 /\N{name}/I
   3257 Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u
   3258 
   3259 /\u/I
   3260 Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u
   3261 
   3262 /\U/I
   3263 Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u
   3264 
   3265 /a{1,3}b/ungreedy
   3266     ab
   3267  0: ab
   3268 
   3269 /[/I
   3270 Failed: error 106 at offset 1: missing terminating ] for character class
   3271 
   3272 /[a-/I
   3273 Failed: error 106 at offset 3: missing terminating ] for character class
   3274 
   3275 /[[:space:]/I
   3276 Failed: error 106 at offset 10: missing terminating ] for character class
   3277 
   3278 /[\s]/IB
   3279 ------------------------------------------------------------------
   3280         Bra
   3281         [\x09-\x0d ]
   3282         Ket
   3283         End
   3284 ------------------------------------------------------------------
   3285 Capturing subpattern count = 0
   3286 Starting code units: \x09 \x0a \x0b \x0c \x0d \x20 
   3287 Subject length lower bound = 1
   3288 
   3289 /[[:space:]]/IB
   3290 ------------------------------------------------------------------
   3291         Bra
   3292         [\x09-\x0d ]
   3293         Ket
   3294         End
   3295 ------------------------------------------------------------------
   3296 Capturing subpattern count = 0
   3297 Starting code units: \x09 \x0a \x0b \x0c \x0d \x20 
   3298 Subject length lower bound = 1
   3299 
   3300 /[[:space:]abcde]/IB
   3301 ------------------------------------------------------------------
   3302         Bra
   3303         [\x09-\x0d a-e]
   3304         Ket
   3305         End
   3306 ------------------------------------------------------------------
   3307 Capturing subpattern count = 0
   3308 Starting code units: \x09 \x0a \x0b \x0c \x0d \x20 a b c d e 
   3309 Subject length lower bound = 1
   3310 
   3311 /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
   3312 Capturing subpattern count = 0
   3313 Options: extended
   3314 First code unit = '<'
   3315 Last code unit = '>'
   3316 Subject length lower bound = 2
   3317     <>
   3318  0: <>
   3319     <abcd>
   3320  0: <abcd>
   3321     <abc <123> hij>
   3322  0: <abc <123> hij>
   3323     <abc <def> hij>
   3324  0: <def>
   3325     <abc<>def>
   3326  0: <abc<>def>
   3327     <abc<>
   3328  0: <>
   3329 \= Expect no match
   3330     <abc
   3331 No match
   3332 
   3333 /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/IB
   3334 ------------------------------------------------------------------
   3335         Bra
   3336         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
   3337         \b
   3338         Ket
   3339         End
   3340 ------------------------------------------------------------------
   3341 Capturing subpattern count = 0
   3342 Max lookbehind = 1
   3343 First code unit = '8'
   3344 Last code unit = 'X'
   3345 Subject length lower bound = 409
   3346 
   3347 /\$\<\.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/IB
   3348 ------------------------------------------------------------------
   3349         Bra
   3350         $<.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
   3351         \b
   3352         Ket
   3353         End
   3354 ------------------------------------------------------------------
   3355 Capturing subpattern count = 0
   3356 Max lookbehind = 1
   3357 First code unit = '$'
   3358 Last code unit = 'X'
   3359 Subject length lower bound = 404
   3360 
   3361 /(.*)\d+\1/I
   3362 Capturing subpattern count = 1
   3363 Max back reference = 1
   3364 Subject length lower bound = 1
   3365 
   3366 /(.*)\d+/I
   3367 Capturing subpattern count = 1
   3368 First code unit at start or follows newline
   3369 Subject length lower bound = 1
   3370 
   3371 /(.*)\d+\1/Is
   3372 Capturing subpattern count = 1
   3373 Max back reference = 1
   3374 Options: dotall
   3375 Subject length lower bound = 1
   3376 
   3377 /(.*)\d+/Is
   3378 Capturing subpattern count = 1
   3379 Compile options: dotall
   3380 Overall options: anchored dotall
   3381 Subject length lower bound = 1
   3382 
   3383 /(.*(xyz))\d+\2/I
   3384 Capturing subpattern count = 2
   3385 Max back reference = 2
   3386 First code unit at start or follows newline
   3387 Last code unit = 'z'
   3388 Subject length lower bound = 7
   3389 
   3390 /((.*))\d+\1/I
   3391 Capturing subpattern count = 2
   3392 Max back reference = 1
   3393 Subject length lower bound = 1
   3394     abc123bc
   3395  0: bc123bc
   3396  1: bc
   3397  2: bc
   3398 
   3399 /a[b]/I
   3400 Capturing subpattern count = 0
   3401 First code unit = 'a'
   3402 Last code unit = 'b'
   3403 Subject length lower bound = 2
   3404 
   3405 /(?=a).*/I
   3406 Capturing subpattern count = 0
   3407 May match empty string
   3408 First code unit = 'a'
   3409 Subject length lower bound = 0
   3410 
   3411 /(?=abc).xyz/Ii
   3412 Capturing subpattern count = 0
   3413 Options: caseless
   3414 First code unit = 'a' (caseless)
   3415 Last code unit = 'z' (caseless)
   3416 Subject length lower bound = 4
   3417 
   3418 /(?=abc)(?i).xyz/I
   3419 Capturing subpattern count = 0
   3420 First code unit = 'a'
   3421 Last code unit = 'z' (caseless)
   3422 Subject length lower bound = 4
   3423 
   3424 /(?=a)(?=b)/I
   3425 Capturing subpattern count = 0
   3426 May match empty string
   3427 First code unit = 'a'
   3428 Subject length lower bound = 0
   3429 
   3430 /(?=.)a/I
   3431 Capturing subpattern count = 0
   3432 First code unit = 'a'
   3433 Subject length lower bound = 1
   3434 
   3435 /((?=abcda)a)/I
   3436 Capturing subpattern count = 1
   3437 First code unit = 'a'
   3438 Last code unit = 'a'
   3439 Subject length lower bound = 1
   3440 
   3441 /((?=abcda)ab)/I
   3442 Capturing subpattern count = 1
   3443 First code unit = 'a'
   3444 Last code unit = 'b'
   3445 Subject length lower bound = 2
   3446 
   3447 /()a/I
   3448 Capturing subpattern count = 1
   3449 First code unit = 'a'
   3450 Subject length lower bound = 1
   3451 
   3452 /(?:(?=.)|(?<!x))a/I
   3453 Capturing subpattern count = 0
   3454 Max lookbehind = 1
   3455 First code unit = 'a'
   3456 Subject length lower bound = 1
   3457 
   3458 /(?(1)ab|ac)(.)/I
   3459 Capturing subpattern count = 1
   3460 Max back reference = 1
   3461 First code unit = 'a'
   3462 Subject length lower bound = 3
   3463 
   3464 /(?(1)abz|acz)(.)/I
   3465 Capturing subpattern count = 1
   3466 Max back reference = 1
   3467 First code unit = 'a'
   3468 Last code unit = 'z'
   3469 Subject length lower bound = 4
   3470 
   3471 /(?(1)abz)(.)/I
   3472 Capturing subpattern count = 1
   3473 Max back reference = 1
   3474 Subject length lower bound = 1
   3475 
   3476 /(?(1)abz)(1)23/I
   3477 Capturing subpattern count = 1
   3478 Max back reference = 1
   3479 Last code unit = '3'
   3480 Subject length lower bound = 3
   3481 
   3482 /(a)+/I
   3483 Capturing subpattern count = 1
   3484 First code unit = 'a'
   3485 Subject length lower bound = 1
   3486 
   3487 /(a){2,3}/I
   3488 Capturing subpattern count = 1
   3489 First code unit = 'a'
   3490 Last code unit = 'a'
   3491 Subject length lower bound = 2
   3492 
   3493 /(a)*/I
   3494 Capturing subpattern count = 1
   3495 May match empty string
   3496 Subject length lower bound = 0
   3497 
   3498 /[a]/I
   3499 Capturing subpattern count = 0
   3500 First code unit = 'a'
   3501 Subject length lower bound = 1
   3502 
   3503 /[ab]/I
   3504 Capturing subpattern count = 0
   3505 Starting code units: a b 
   3506 Subject length lower bound = 1
   3507 
   3508 /[ab]/I
   3509 Capturing subpattern count = 0
   3510 Starting code units: a b 
   3511 Subject length lower bound = 1
   3512 
   3513 /[^a]/I
   3514 Capturing subpattern count = 0
   3515 Subject length lower bound = 1
   3516 
   3517 /\d456/I
   3518 Capturing subpattern count = 0
   3519 Starting code units: 0 1 2 3 4 5 6 7 8 9 
   3520 Last code unit = '6'
   3521 Subject length lower bound = 4
   3522 
   3523 /\d456/I
   3524 Capturing subpattern count = 0
   3525 Starting code units: 0 1 2 3 4 5 6 7 8 9 
   3526 Last code unit = '6'
   3527 Subject length lower bound = 4
   3528 
   3529 /a^b/I
   3530 Capturing subpattern count = 0
   3531 First code unit = 'a'
   3532 Last code unit = 'b'
   3533 Subject length lower bound = 2
   3534 
   3535 /^a/Im
   3536 Capturing subpattern count = 0
   3537 Options: multiline
   3538 First code unit at start or follows newline
   3539 Last code unit = 'a'
   3540 Subject length lower bound = 1
   3541   abcde
   3542  0: a
   3543   xy\nabc
   3544  0: a
   3545 \= Expect no match
   3546   xyabc
   3547 No match
   3548 
   3549 /c|abc/I
   3550 Capturing subpattern count = 0
   3551 Starting code units: a c 
   3552 Last code unit = 'c'
   3553 Subject length lower bound = 1
   3554 
   3555 /(?i)[ab]/I
   3556 Capturing subpattern count = 0
   3557 Starting code units: A B a b 
   3558 Subject length lower bound = 1
   3559 
   3560 /[ab](?i)cd/I
   3561 Capturing subpattern count = 0
   3562 Starting code units: a b 
   3563 Last code unit = 'd' (caseless)
   3564 Subject length lower bound = 3
   3565 
   3566 /abc(?C)def/I
   3567 Capturing subpattern count = 0
   3568 First code unit = 'a'
   3569 Last code unit = 'f'
   3570 Subject length lower bound = 6
   3571     abcdef
   3572 --->abcdef
   3573   0 ^  ^       d
   3574  0: abcdef
   3575     1234abcdef
   3576 --->1234abcdef
   3577   0     ^  ^       d
   3578  0: abcdef
   3579 \= Expect no match
   3580     abcxyz
   3581 No match
   3582     abcxyzf
   3583 --->abcxyzf
   3584   0 ^  ^        d
   3585 No match
   3586 
   3587 /abc(?C)de(?C1)f/I
   3588 Capturing subpattern count = 0
   3589 First code unit = 'a'
   3590 Last code unit = 'f'
   3591 Subject length lower bound = 6
   3592     123abcdef
   3593 --->123abcdef
   3594   0    ^  ^       d
   3595   1    ^    ^     f
   3596  0: abcdef
   3597 
   3598 /(?C1)\dabc(?C2)def/I
   3599 Capturing subpattern count = 0
   3600 Starting code units: 0 1 2 3 4 5 6 7 8 9 
   3601 Last code unit = 'f'
   3602 Subject length lower bound = 7
   3603     1234abcdef
   3604 --->1234abcdef
   3605   1 ^              \d
   3606   1  ^             \d
   3607   1   ^            \d
   3608   1    ^           \d
   3609   2    ^   ^       d
   3610  0: 4abcdef
   3611 \= Expect no match
   3612     abcdef
   3613 No match
   3614 
   3615 /(?C1)\dabc(?C2)def/I
   3616 Capturing subpattern count = 0
   3617 Starting code units: 0 1 2 3 4 5 6 7 8 9 
   3618 Last code unit = 'f'
   3619 Subject length lower bound = 7
   3620     1234abcdef
   3621 --->1234abcdef
   3622   1 ^              \d
   3623   1  ^             \d
   3624   1   ^            \d
   3625   1    ^           \d
   3626   2    ^   ^       d
   3627  0: 4abcdef
   3628 \= Expect no match
   3629     abcdef
   3630 No match
   3631 
   3632 /(?C255)ab/I
   3633 Capturing subpattern count = 0
   3634 First code unit = 'a'
   3635 Last code unit = 'b'
   3636 Subject length lower bound = 2
   3637 
   3638 /(?C256)ab/I
   3639 Failed: error 138 at offset 6: number after (?C is greater than 255
   3640 
   3641 /(?Cab)xx/I
   3642 Failed: error 182 at offset 3: unrecognized string delimiter follows (?C
   3643 
   3644 /(?C12vr)x/I
   3645 Failed: error 139 at offset 5: closing parenthesis for (?C expected
   3646 
   3647 /abc(?C)def/I
   3648 Capturing subpattern count = 0
   3649 First code unit = 'a'
   3650 Last code unit = 'f'
   3651 Subject length lower bound = 6
   3652     \x83\x0\x61bcdef
   3653 --->\x83\x00abcdef
   3654   0         ^  ^       d
   3655  0: abcdef
   3656 
   3657 /(abc)(?C)de(?C1)f/I
   3658 Capturing subpattern count = 1
   3659 First code unit = 'a'
   3660 Last code unit = 'f'
   3661 Subject length lower bound = 6
   3662     123abcdef
   3663 --->123abcdef
   3664   0    ^  ^       d
   3665   1    ^    ^     f
   3666  0: abcdef
   3667  1: abc
   3668     123abcdef\=callout_capture
   3669 Callout 0: last capture = 1
   3670  1: abc
   3671 --->123abcdef
   3672        ^  ^       d
   3673 Callout 1: last capture = 1
   3674  1: abc
   3675 --->123abcdef
   3676        ^    ^     f
   3677  0: abcdef
   3678  1: abc
   3679     123abcdefC-\=callout_none
   3680  0: abcdef
   3681  1: abc
   3682 \= Expect no match
   3683     123abcdef\=callout_fail=1
   3684 --->123abcdef
   3685   0    ^  ^       d
   3686   1    ^    ^     f
   3687 No match
   3688 
   3689 /(?C0)(abc(?C1))*/I
   3690 Capturing subpattern count = 1
   3691 May match empty string
   3692 Subject length lower bound = 0
   3693     abcabcabc
   3694 --->abcabcabc
   3695   0 ^             (
   3696   1 ^  ^          )*
   3697   1 ^     ^       )*
   3698   1 ^        ^    )*
   3699  0: abcabcabc
   3700  1: abc
   3701     abcabc\=callout_fail=1:4
   3702 --->abcabc
   3703   0 ^          (
   3704   1 ^  ^       )*
   3705   1 ^     ^    )*
   3706  0: abcabc
   3707  1: abc
   3708     abcabcabc\=callout_fail=1:4
   3709 --->abcabcabc
   3710   0 ^             (
   3711   1 ^  ^          )*
   3712   1 ^     ^       )*
   3713   1 ^        ^    )*
   3714  0: abcabc
   3715  1: abc
   3716 
   3717 /(\d{3}(?C))*/I
   3718 Capturing subpattern count = 1
   3719 May match empty string
   3720 Subject length lower bound = 0
   3721     123\=callout_capture
   3722 Callout 0: last capture = 0
   3723 --->123
   3724     ^  ^    )*
   3725  0: 123
   3726  1: 123
   3727     123456\=callout_capture
   3728 Callout 0: last capture = 0
   3729 --->123456
   3730     ^  ^       )*
   3731 Callout 0: last capture = 1
   3732  1: 123
   3733 --->123456
   3734     ^     ^    )*
   3735  0: 123456
   3736  1: 456
   3737     123456789\=callout_capture
   3738 Callout 0: last capture = 0
   3739 --->123456789
   3740     ^  ^          )*
   3741 Callout 0: last capture = 1
   3742  1: 123
   3743 --->123456789
   3744     ^     ^       )*
   3745 Callout 0: last capture = 1
   3746  1: 456
   3747 --->123456789
   3748     ^        ^    )*
   3749  0: 123456789
   3750  1: 789
   3751 
   3752 /((xyz)(?C)p|(?C1)xyzabc)/I
   3753 Capturing subpattern count = 2
   3754 First code unit = 'x'
   3755 Subject length lower bound = 4
   3756     xyzabc\=callout_capture
   3757 Callout 0: last capture = 2
   3758  1: <unset>
   3759  2: xyz
   3760 --->xyzabc
   3761     ^  ^       p
   3762 Callout 1: last capture = 0
   3763 --->xyzabc
   3764     ^          x
   3765  0: xyzabc
   3766  1: xyzabc
   3767 
   3768 /(X)((xyz)(?C)p|(?C1)xyzabc)/I
   3769 Capturing subpattern count = 3
   3770 First code unit = 'X'
   3771 Last code unit = 'x'
   3772 Subject length lower bound = 5
   3773     Xxyzabc\=callout_capture
   3774 Callout 0: last capture = 3
   3775  1: X
   3776  2: <unset>
   3777  3: xyz
   3778 --->Xxyzabc
   3779     ^   ^       p
   3780 Callout 1: last capture = 1
   3781  1: X
   3782 --->Xxyzabc
   3783     ^^          x
   3784  0: Xxyzabc
   3785  1: X
   3786  2: xyzabc
   3787 
   3788 /(?=(abc))(?C)abcdef/I
   3789 Capturing subpattern count = 1
   3790 First code unit = 'a'
   3791 Last code unit = 'f'
   3792 Subject length lower bound = 6
   3793     abcdef\=callout_capture
   3794 Callout 0: last capture = 1
   3795  1: abc
   3796 --->abcdef
   3797     ^          a
   3798  0: abcdef
   3799  1: abc
   3800 
   3801 /(?!(abc)(?C1)d)(?C2)abcxyz/I
   3802 Capturing subpattern count = 1
   3803 First code unit = 'a'
   3804 Last code unit = 'z'
   3805 Subject length lower bound = 6
   3806     abcxyz\=callout_capture
   3807 Callout 1: last capture = 1
   3808  1: abc
   3809 --->abcxyz
   3810     ^  ^       d
   3811 Callout 2: last capture = 0
   3812 --->abcxyz
   3813     ^          a
   3814  0: abcxyz
   3815 
   3816 /(?<=(abc)(?C))xyz/I
   3817 Capturing subpattern count = 1
   3818 Max lookbehind = 3
   3819 First code unit = 'x'
   3820 Last code unit = 'z'
   3821 Subject length lower bound = 3
   3822    abcxyz\=callout_capture
   3823 Callout 0: last capture = 1
   3824  1: abc
   3825 --->abcxyz
   3826        ^       )
   3827  0: xyz
   3828  1: abc
   3829 
   3830 /a(b+)(c*)(?C1)/I
   3831 Capturing subpattern count = 2
   3832 First code unit = 'a'
   3833 Last code unit = 'b'
   3834 Subject length lower bound = 2
   3835 \= Expect no match
   3836     abbbbbccc\=callout_data=1
   3837 --->abbbbbccc
   3838   1 ^        ^    End of pattern
   3839 Callout data = 1
   3840 No match
   3841 
   3842 /a(b+?)(c*?)(?C1)/I
   3843 Capturing subpattern count = 2
   3844 First code unit = 'a'
   3845 Last code unit = 'b'
   3846 Subject length lower bound = 2
   3847 \= Expect no match
   3848     abbbbbccc\=callout_data=1
   3849 --->abbbbbccc
   3850   1 ^ ^           End of pattern
   3851 Callout data = 1
   3852   1 ^  ^          End of pattern
   3853 Callout data = 1
   3854   1 ^   ^         End of pattern
   3855 Callout data = 1
   3856   1 ^    ^        End of pattern
   3857 Callout data = 1
   3858   1 ^     ^       End of pattern
   3859 Callout data = 1
   3860   1 ^      ^      End of pattern
   3861 Callout data = 1
   3862   1 ^       ^     End of pattern
   3863 Callout data = 1
   3864   1 ^        ^    End of pattern
   3865 Callout data = 1
   3866 No match
   3867 
   3868 /(?C)abc/I
   3869 Capturing subpattern count = 0
   3870 First code unit = 'a'
   3871 Last code unit = 'c'
   3872 Subject length lower bound = 3
   3873 
   3874 /(?C)^abc/I
   3875 Capturing subpattern count = 0
   3876 Compile options: <none>
   3877 Overall options: anchored
   3878 First code unit = 'a'
   3879 Subject length lower bound = 3
   3880 
   3881 /(?C)a|b/I
   3882 Capturing subpattern count = 0
   3883 Starting code units: a b 
   3884 Subject length lower bound = 1
   3885 
   3886 /a|(b)(?C)/I
   3887 Capturing subpattern count = 1
   3888 Starting code units: a b 
   3889 Subject length lower bound = 1
   3890     b
   3891 --->b
   3892   0 ^^    End of pattern
   3893  0: b
   3894  1: b
   3895 
   3896 /x(ab|(bc|(de|(?R))))/I
   3897 Capturing subpattern count = 3
   3898 First code unit = 'x'
   3899 Subject length lower bound = 3
   3900     xab
   3901  0: xab
   3902  1: ab
   3903     xbc
   3904  0: xbc
   3905  1: bc
   3906  2: bc
   3907     xde
   3908  0: xde
   3909  1: de
   3910  2: de
   3911  3: de
   3912     xxab
   3913  0: xxab
   3914  1: xab
   3915  2: xab
   3916  3: xab
   3917     xxxab
   3918  0: xxxab
   3919  1: xxab
   3920  2: xxab
   3921  3: xxab
   3922 \= Expect no match
   3923     xyab
   3924 No match
   3925 
   3926 /^([^()]|\((?1)*\))*$/I
   3927 Capturing subpattern count = 1
   3928 May match empty string
   3929 Compile options: <none>
   3930 Overall options: anchored
   3931 Subject length lower bound = 0
   3932     abc
   3933  0: abc
   3934  1: c
   3935     a(b)c
   3936  0: a(b)c
   3937  1: c
   3938     a(b(c))d
   3939  0: a(b(c))d
   3940  1: d
   3941 \= Expect no match)
   3942     a(b(c)d
   3943 No match
   3944 
   3945 /^>abc>([^()]|\((?1)*\))*<xyz<$/I
   3946 Capturing subpattern count = 1
   3947 Compile options: <none>
   3948 Overall options: anchored
   3949 First code unit = '>'
   3950 Last code unit = '<'
   3951 Subject length lower bound = 10
   3952    >abc>123<xyz<
   3953  0: >abc>123<xyz<
   3954  1: 3
   3955    >abc>1(2)3<xyz<
   3956  0: >abc>1(2)3<xyz<
   3957  1: 3
   3958    >abc>(1(2)3)<xyz<
   3959  0: >abc>(1(2)3)<xyz<
   3960  1: (1(2)3)
   3961 
   3962 /(a(?1)b)/IB
   3963 ------------------------------------------------------------------
   3964         Bra
   3965         CBra 1
   3966         a
   3967         Recurse
   3968         b
   3969         Ket
   3970         Ket
   3971         End
   3972 ------------------------------------------------------------------
   3973 Capturing subpattern count = 1
   3974 First code unit = 'a'
   3975 Last code unit = 'b'
   3976 Subject length lower bound = 2
   3977 
   3978 /(a(?1)+b)/IB
   3979 ------------------------------------------------------------------
   3980         Bra
   3981         CBra 1
   3982         a
   3983         SBra
   3984         Recurse
   3985         KetRmax
   3986         b
   3987         Ket
   3988         Ket
   3989         End
   3990 ------------------------------------------------------------------
   3991 Capturing subpattern count = 1
   3992 First code unit = 'a'
   3993 Last code unit = 'b'
   3994 Subject length lower bound = 2
   3995 
   3996 /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
   3997 Capturing subpattern count = 2
   3998 Compile options: <none>
   3999 Overall options: anchored
   4000 Starting code units: ( - 0 1 2 3 4 5 6 7 8 9 
   4001 Subject length lower bound = 1
   4002     12
   4003  0: 12
   4004  1: 12
   4005     (((2+2)*-3)-7)
   4006  0: (((2+2)*-3)-7)
   4007  1: (((2+2)*-3)-7)
   4008  2: -
   4009     -12
   4010  0: -12
   4011  1: -12
   4012 \= Expect no match
   4013     ((2+2)*-3)-7)
   4014 No match
   4015 
   4016 /^(x(y|(?1){2})z)/I
   4017 Capturing subpattern count = 2
   4018 Compile options: <none>
   4019 Overall options: anchored
   4020 First code unit = 'x'
   4021 Subject length lower bound = 3
   4022     xyz
   4023  0: xyz
   4024  1: xyz
   4025  2: y
   4026     xxyzxyzz
   4027  0: xxyzxyzz
   4028  1: xxyzxyzz
   4029  2: xyzxyz
   4030 \= Expect no match
   4031     xxyzz
   4032 No match
   4033     xxyzxyzxyzz
   4034 No match
   4035 
   4036 /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
   4037 Capturing subpattern count = 2
   4038 Options: extended
   4039 First code unit = '<'
   4040 Last code unit = '>'
   4041 Subject length lower bound = 2
   4042     <>
   4043  0: <>
   4044  1: <>
   4045  2: <>
   4046     <abcd>
   4047  0: <abcd>
   4048  1: <abcd>
   4049  2: <abcd>
   4050     <abc <123> hij>
   4051  0: <abc <123> hij>
   4052  1: <abc <123> hij>
   4053  2: <abc <123> hij>
   4054     <abc <def> hij>
   4055  0: <def>
   4056  1: <def>
   4057  2: <def>
   4058     <abc<>def>
   4059  0: <abc<>def>
   4060  1: <abc<>def>
   4061  2: <abc<>def>
   4062     <abc<>
   4063  0: <>
   4064  1: <>
   4065  2: <>
   4066 \= Expect no match
   4067     <abc
   4068 No match
   4069 
   4070 /(?1)/I
   4071 Failed: error 115 at offset 3: reference to non-existent subpattern
   4072 
   4073 /((?2)(abc)/I
   4074 Failed: error 114 at offset 10: missing closing parenthesis
   4075 
   4076 /^(abc)def(?1)/I
   4077 Capturing subpattern count = 1
   4078 Compile options: <none>
   4079 Overall options: anchored
   4080 First code unit = 'a'
   4081 Subject length lower bound = 9
   4082     abcdefabc
   4083  0: abcdefabc
   4084  1: abc
   4085 
   4086 /^(a|b|c)=(?1)+/I
   4087 Capturing subpattern count = 1
   4088 Compile options: <none>
   4089 Overall options: anchored
   4090 Starting code units: a b c 
   4091 Subject length lower bound = 2
   4092     a=a
   4093  0: a=a
   4094  1: a
   4095     a=b
   4096  0: a=b
   4097  1: a
   4098     a=bc
   4099  0: a=bc
   4100  1: a
   4101 
   4102 /^(a|b|c)=((?1))+/I
   4103 Capturing subpattern count = 2
   4104 Compile options: <none>
   4105 Overall options: anchored
   4106 Starting code units: a b c 
   4107 Subject length lower bound = 2
   4108     a=a
   4109  0: a=a
   4110  1: a
   4111  2: a
   4112     a=b
   4113  0: a=b
   4114  1: a
   4115  2: b
   4116     a=bc
   4117  0: a=bc
   4118  1: a
   4119  2: c
   4120 
   4121 /a(?P<name1>b|c)d(?P<longername2>e)/IB
   4122 ------------------------------------------------------------------
   4123         Bra
   4124         a
   4125         CBra 1
   4126         b
   4127         Alt
   4128         c
   4129         Ket
   4130         d
   4131         CBra 2
   4132         e
   4133         Ket
   4134         Ket
   4135         End
   4136 ------------------------------------------------------------------
   4137 Capturing subpattern count = 2
   4138 Named capturing subpatterns:
   4139   longername2   2
   4140   name1         1
   4141 First code unit = 'a'
   4142 Last code unit = 'e'
   4143 Subject length lower bound = 4
   4144     abde
   4145  0: abde
   4146  1: b
   4147  2: e
   4148     acde
   4149  0: acde
   4150  1: c
   4151  2: e
   4152 
   4153 /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/IB
   4154 ------------------------------------------------------------------
   4155         Bra
   4156         Bra
   4157         a
   4158         CBra 1
   4159         c
   4160         CBra 2
   4161         d
   4162         Ket
   4163         Ket
   4164         Ket
   4165         CBra 3
   4166         a
   4167         Ket
   4168         Ket
   4169         End
   4170 ------------------------------------------------------------------
   4171 Capturing subpattern count = 3
   4172 Named capturing subpatterns:
   4173   a   3
   4174   c   1
   4175   d   2
   4176 First code unit = 'a'
   4177 Last code unit = 'a'
   4178 Subject length lower bound = 4
   4179 
   4180 /(?P<a>a)...(?P=a)bbb(?P>a)d/IB
   4181 ------------------------------------------------------------------
   4182         Bra
   4183         CBra 1
   4184         a
   4185         Ket
   4186         Any
   4187         Any
   4188         Any
   4189         \1
   4190         bbb
   4191         Recurse
   4192         d
   4193         Ket
   4194         End
   4195 ------------------------------------------------------------------
   4196 Capturing subpattern count = 1
   4197 Max back reference = 1
   4198 Named capturing subpatterns:
   4199   a   1
   4200 First code unit = 'a'
   4201 Last code unit = 'd'
   4202 Subject length lower bound = 10
   4203 
   4204 /^\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
   4205 Capturing subpattern count = 4
   4206 Max back reference = 4
   4207 Named capturing subpatterns:
   4208   four    4
   4209   one     1
   4210   three   3
   4211   two     2
   4212 May match empty string
   4213 Compile options: caseless
   4214 Overall options: anchored caseless
   4215 Subject length lower bound = 0
   4216     1221
   4217  0: 1221
   4218  1: 1221
   4219  2: 1
   4220     Satan, oscillate my metallic sonatas!
   4221  0: Satan, oscillate my metallic sonatas!
   4222  1: <unset>
   4223  2: <unset>
   4224  3: Satan, oscillate my metallic sonatas
   4225  4: S
   4226     A man, a plan, a canal: Panama!
   4227  0: A man, a plan, a canal: Panama!
   4228  1: <unset>
   4229  2: <unset>
   4230  3: A man, a plan, a canal: Panama
   4231  4: A
   4232     Able was I ere I saw Elba.
   4233  0: Able was I ere I saw Elba.
   4234  1: <unset>
   4235  2: <unset>
   4236  3: Able was I ere I saw Elba
   4237  4: A
   4238 \= Expect no match
   4239     The quick brown fox
   4240 No match
   4241 
   4242 /((?(R)a|b))\1(?1)?/I
   4243 Capturing subpattern count = 1
   4244 Max back reference = 1
   4245 Subject length lower bound = 2
   4246   bb
   4247  0: bb
   4248  1: b
   4249   bbaa
   4250  0: bba
   4251  1: b
   4252 
   4253 /(.*)a/Is
   4254 Capturing subpattern count = 1
   4255 Compile options: dotall
   4256 Overall options: anchored dotall
   4257 Last code unit = 'a'
   4258 Subject length lower bound = 1
   4259 
   4260 /(.*)a\1/Is
   4261 Capturing subpattern count = 1
   4262 Max back reference = 1
   4263 Options: dotall
   4264 Last code unit = 'a'
   4265 Subject length lower bound = 1
   4266 
   4267 /(.*)a(b)\2/Is
   4268 Capturing subpattern count = 2
   4269 Max back reference = 2
   4270 Compile options: dotall
   4271 Overall options: anchored dotall
   4272 Last code unit = 'b'
   4273 Subject length lower bound = 3
   4274 
   4275 /((.*)a|(.*)b)z/Is
   4276 Capturing subpattern count = 3
   4277 Compile options: dotall
   4278 Overall options: anchored dotall
   4279 Last code unit = 'z'
   4280 Subject length lower bound = 2
   4281 
   4282 /((.*)a|(.*)b)z\1/Is
   4283 Capturing subpattern count = 3
   4284 Max back reference = 1
   4285 Options: dotall
   4286 Last code unit = 'z'
   4287 Subject length lower bound = 3
   4288 
   4289 /((.*)a|(.*)b)z\2/Is
   4290 Capturing subpattern count = 3
   4291 Max back reference = 2
   4292 Options: dotall
   4293 Last code unit = 'z'
   4294 Subject length lower bound = 2
   4295 
   4296 /((.*)a|(.*)b)z\3/Is
   4297 Capturing subpattern count = 3
   4298 Max back reference = 3
   4299 Options: dotall
   4300 Last code unit = 'z'
   4301 Subject length lower bound = 2
   4302 
   4303 /((.*)a|^(.*)b)z\3/Is
   4304 Capturing subpattern count = 3
   4305 Max back reference = 3
   4306 Compile options: dotall
   4307 Overall options: anchored dotall
   4308 Last code unit = 'z'
   4309 Subject length lower bound = 2
   4310 
   4311 /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
   4312 Capturing subpattern count = 31
   4313 May match empty string
   4314 Compile options: dotall
   4315 Overall options: anchored dotall
   4316 Subject length lower bound = 0
   4317 
   4318 /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
   4319 Capturing subpattern count = 31
   4320 Max back reference = 31
   4321 May match empty string
   4322 Options: dotall
   4323 Subject length lower bound = 0
   4324 
   4325 /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
   4326 Capturing subpattern count = 32
   4327 Max back reference = 32
   4328 May match empty string
   4329 Options: dotall
   4330 Subject length lower bound = 0
   4331 
   4332 /(a)(bc)/IB,no_auto_capture
   4333 ------------------------------------------------------------------
   4334         Bra
   4335         Bra
   4336         a
   4337         Ket
   4338         Bra
   4339         bc
   4340         Ket
   4341         Ket
   4342         End
   4343 ------------------------------------------------------------------
   4344 Capturing subpattern count = 0
   4345 Options: no_auto_capture
   4346 First code unit = 'a'
   4347 Last code unit = 'c'
   4348 Subject length lower bound = 3
   4349   abc
   4350  0: abc
   4351 
   4352 /(?P<one>a)(bc)/IB,no_auto_capture
   4353 ------------------------------------------------------------------
   4354         Bra
   4355         CBra 1
   4356         a
   4357         Ket
   4358         Bra
   4359         bc
   4360         Ket
   4361         Ket
   4362         End
   4363 ------------------------------------------------------------------
   4364 Capturing subpattern count = 1
   4365 Named capturing subpatterns:
   4366   one   1
   4367 Options: no_auto_capture
   4368 First code unit = 'a'
   4369 Last code unit = 'c'
   4370 Subject length lower bound = 3
   4371   abc
   4372  0: abc
   4373  1: a
   4374 
   4375 /(a)(?P<named>bc)/IB,no_auto_capture
   4376 ------------------------------------------------------------------
   4377         Bra
   4378         Bra
   4379         a
   4380         Ket
   4381         CBra 1
   4382         bc
   4383         Ket
   4384         Ket
   4385         End
   4386 ------------------------------------------------------------------
   4387 Capturing subpattern count = 1
   4388 Named capturing subpatterns:
   4389   named   1
   4390 Options: no_auto_capture
   4391 First code unit = 'a'
   4392 Last code unit = 'c'
   4393 Subject length lower bound = 3
   4394 
   4395 /(aaa(?C1)bbb|ab)/I
   4396 Capturing subpattern count = 1
   4397 First code unit = 'a'
   4398 Last code unit = 'b'
   4399 Subject length lower bound = 2
   4400    aaabbb
   4401 --->aaabbb
   4402   1 ^  ^       b
   4403  0: aaabbb
   4404  1: aaabbb
   4405    aaabbb\=callout_data=0
   4406 --->aaabbb
   4407   1 ^  ^       b
   4408  0: aaabbb
   4409  1: aaabbb
   4410    aaabbb\=callout_data=1
   4411 --->aaabbb
   4412   1 ^  ^       b
   4413 Callout data = 1
   4414  0: ab
   4415  1: ab
   4416 \= Expect no match
   4417    aaabbb\=callout_data=-1
   4418 --->aaabbb
   4419   1 ^  ^       b
   4420 Callout data = -1
   4421 No match
   4422 
   4423 /ab(?P<one>cd)ef(?P<two>gh)/I
   4424 Capturing subpattern count = 2
   4425 Named capturing subpatterns:
   4426   one   1
   4427   two   2
   4428 First code unit = 'a'
   4429 Last code unit = 'h'
   4430 Subject length lower bound = 8
   4431     abcdefgh
   4432  0: abcdefgh
   4433  1: cd
   4434  2: gh
   4435     abcdefgh\=copy=1,get=two
   4436  0: abcdefgh
   4437  1: cd
   4438  2: gh
   4439  1C cd (2)
   4440   G gh (2) two (group 2)
   4441     abcdefgh\=copy=one,copy=two
   4442  0: abcdefgh
   4443  1: cd
   4444  2: gh
   4445   C cd (2) one (group 1)
   4446   C gh (2) two (group 2)
   4447     abcdefgh\=copy=three
   4448  0: abcdefgh
   4449  1: cd
   4450  2: gh
   4451 Number not found for group 'three'
   4452 Copy substring 'three' failed (-49): unknown substring
   4453 
   4454 /(?P<Tes>)(?P<Test>)/IB
   4455 ------------------------------------------------------------------
   4456         Bra
   4457         CBra 1
   4458         Ket
   4459         CBra 2
   4460         Ket
   4461         Ket
   4462         End
   4463 ------------------------------------------------------------------
   4464 Capturing subpattern count = 2
   4465 Named capturing subpatterns:
   4466   Tes    1
   4467   Test   2
   4468 May match empty string
   4469 Subject length lower bound = 0
   4470 
   4471 /(?P<Test>)(?P<Tes>)/IB
   4472 ------------------------------------------------------------------
   4473         Bra
   4474         CBra 1
   4475         Ket
   4476         CBra 2
   4477         Ket
   4478         Ket
   4479         End
   4480 ------------------------------------------------------------------
   4481 Capturing subpattern count = 2
   4482 Named capturing subpatterns:
   4483   Tes    2
   4484   Test   1
   4485 May match empty string
   4486 Subject length lower bound = 0
   4487 
   4488 /(?P<Z>zz)(?P<A>aa)/I
   4489 Capturing subpattern count = 2
   4490 Named capturing subpatterns:
   4491   A   2
   4492   Z   1
   4493 First code unit = 'z'
   4494 Last code unit = 'a'
   4495 Subject length lower bound = 4
   4496     zzaa\=copy=Z
   4497  0: zzaa
   4498  1: zz
   4499  2: aa
   4500   C zz (2) Z (group 1)
   4501     zzaa\=copy=A
   4502  0: zzaa
   4503  1: zz
   4504  2: aa
   4505   C aa (2) A (group 2)
   4506 
   4507 /(?P<x>eks)(?P<x>eccs)/I
   4508 Failed: error 143 at offset 16: two named subpatterns have the same name (PCRE2_DUPNAMES not set)
   4509 
   4510 /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
   4511 Failed: error 143 at offset 31: two named subpatterns have the same name (PCRE2_DUPNAMES not set)
   4512 
   4513 "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
   4514 Capturing subpattern count = 3
   4515 Named capturing subpatterns:
   4516   elem   2
   4517 First code unit = '['
   4518 Last code unit = ']'
   4519 Subject length lower bound = 3
   4520     [10,20,30,5,5,4,4,2,43,23,4234]
   4521  0: [10,20,30,5,5,4,4,2,43,23,4234]
   4522  1: 10,20,30,5,5,4,4,2,43,23,4234
   4523  2: 10
   4524  3: ,4234
   4525 \= Expect no match
   4526     []
   4527 No match
   4528 
   4529 "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
   4530 Capturing subpattern count = 3
   4531 Named capturing subpatterns:
   4532   elem   2
   4533 First code unit = '['
   4534 Last code unit = ']'
   4535 Subject length lower bound = 2
   4536     [10,20,30,5,5,4,4,2,43,23,4234]
   4537  0: [10,20,30,5,5,4,4,2,43,23,4234]
   4538  1: 10,20,30,5,5,4,4,2,43,23,4234
   4539  2: 10
   4540  3: ,4234
   4541     []
   4542  0: []
   4543 
   4544 /(a(b(?2)c))?/IB
   4545 ------------------------------------------------------------------
   4546         Bra
   4547         Brazero
   4548         CBra 1
   4549         a
   4550         CBra 2
   4551         b
   4552         Recurse
   4553         c
   4554         Ket
   4555         Ket
   4556         Ket
   4557         End
   4558 ------------------------------------------------------------------
   4559 Capturing subpattern count = 2
   4560 May match empty string
   4561 Subject length lower bound = 0
   4562 
   4563 /(a(b(?2)c))*/IB
   4564 ------------------------------------------------------------------
   4565         Bra
   4566         Brazero
   4567         CBra 1
   4568         a
   4569         CBra 2
   4570         b
   4571         Recurse
   4572         c
   4573         Ket
   4574         KetRmax
   4575         Ket
   4576         End
   4577 ------------------------------------------------------------------
   4578 Capturing subpattern count = 2
   4579 May match empty string
   4580 Subject length lower bound = 0
   4581 
   4582 /(a(b(?2)c)){0,2}/IB
   4583 ------------------------------------------------------------------
   4584         Bra
   4585         Brazero
   4586         Bra
   4587         CBra 1
   4588         a
   4589         CBra 2
   4590         b
   4591         Recurse
   4592         c
   4593         Ket
   4594         Ket
   4595         Brazero
   4596         CBra 1
   4597         a
   4598         CBra 2
   4599         b
   4600         Recurse
   4601         c
   4602         Ket
   4603         Ket
   4604         Ket
   4605         Ket
   4606         End
   4607 ------------------------------------------------------------------
   4608 Capturing subpattern count = 2
   4609 May match empty string
   4610 Subject length lower bound = 0
   4611 
   4612 /[ab]{1}+/B
   4613 ------------------------------------------------------------------
   4614         Bra
   4615         [ab]
   4616         Ket
   4617         End
   4618 ------------------------------------------------------------------
   4619 
   4620 /()(?1){1}/B
   4621 ------------------------------------------------------------------
   4622         Bra
   4623         CBra 1
   4624         Ket
   4625         Recurse
   4626         Ket
   4627         End
   4628 ------------------------------------------------------------------
   4629 
   4630 /()(?1)/B
   4631 ------------------------------------------------------------------
   4632         Bra
   4633         CBra 1
   4634         Ket
   4635         Recurse
   4636         Ket
   4637         End
   4638 ------------------------------------------------------------------
   4639 
   4640 /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
   4641 Capturing subpattern count = 3
   4642 Options: caseless
   4643 Last code unit = 'g' (caseless)
   4644 Subject length lower bound = 8
   4645      Baby Bjorn Active Carrier - With free SHIPPING!!
   4646  0: Baby Bjorn Active Carrier - With free SHIPPING!!
   4647  1: Baby Bjorn Active Carrier - With free SHIPPING!!
   4648 
   4649 /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
   4650 Capturing subpattern count = 3
   4651 Options: caseless
   4652 Last code unit = 'g' (caseless)
   4653 Subject length lower bound = 8
   4654      Baby Bjorn Active Carrier - With free SHIPPING!!
   4655  0: Baby Bjorn Active Carrier - With free SHIPPING!!
   4656  1: Baby Bjorn Active Carrier - With free SHIPPING!!
   4657 
   4658 /a*.*b/IB
   4659 ------------------------------------------------------------------
   4660         Bra
   4661         a*
   4662         Any*
   4663         b
   4664         Ket
   4665         End
   4666 ------------------------------------------------------------------
   4667 Capturing subpattern count = 0
   4668 Last code unit = 'b'
   4669 Subject length lower bound = 1
   4670 
   4671 /(a|b)*.?c/IB
   4672 ------------------------------------------------------------------
   4673         Bra
   4674         Brazero
   4675         CBra 1
   4676         a
   4677         Alt
   4678         b
   4679         KetRmax
   4680         Any?
   4681         c
   4682         Ket
   4683         End
   4684 ------------------------------------------------------------------
   4685 Capturing subpattern count = 1
   4686 Last code unit = 'c'
   4687 Subject length lower bound = 1
   4688 
   4689 /abc(?C255)de(?C)f/IB
   4690 ------------------------------------------------------------------
   4691         Bra
   4692         abc
   4693         Callout 255 10 1
   4694         de
   4695         Callout 0 16 1
   4696         f
   4697         Ket
   4698         End
   4699 ------------------------------------------------------------------
   4700 Capturing subpattern count = 0
   4701 First code unit = 'a'
   4702 Last code unit = 'f'
   4703 Subject length lower bound = 6
   4704 
   4705 /abcde/IB,auto_callout
   4706 ------------------------------------------------------------------
   4707         Bra
   4708         Callout 255 0 1
   4709         a
   4710         Callout 255 1 1
   4711         b
   4712         Callout 255 2 1
   4713         c
   4714         Callout 255 3 1
   4715         d
   4716         Callout 255 4 1
   4717         e
   4718         Callout 255 5 0
   4719         Ket
   4720         End
   4721 ------------------------------------------------------------------
   4722 Capturing subpattern count = 0
   4723 Options: auto_callout
   4724 First code unit = 'a'
   4725 Last code unit = 'e'
   4726 Subject length lower bound = 5
   4727   abcde
   4728 --->abcde
   4729  +0 ^         a
   4730  +1 ^^        b
   4731  +2 ^ ^       c
   4732  +3 ^  ^      d
   4733  +4 ^   ^     e
   4734  +5 ^    ^    End of pattern
   4735  0: abcde
   4736 \= Expect no match
   4737   abcdfe
   4738 --->abcdfe
   4739  +0 ^          a
   4740  +1 ^^         b
   4741  +2 ^ ^        c
   4742  +3 ^  ^       d
   4743  +4 ^   ^      e
   4744 No match
   4745 
   4746 /a*b/IB,auto_callout
   4747 ------------------------------------------------------------------
   4748         Bra
   4749         Callout 255 0 2
   4750         a*+
   4751         Callout 255 2 1
   4752         b
   4753         Callout 255 3 0
   4754         Ket
   4755         End
   4756 ------------------------------------------------------------------
   4757 Capturing subpattern count = 0
   4758 Options: auto_callout
   4759 Starting code units: a b 
   4760 Last code unit = 'b'
   4761 Subject length lower bound = 1
   4762   ab
   4763 --->ab
   4764  +0 ^      a*
   4765  +2 ^^     b
   4766  +3 ^ ^    End of pattern
   4767  0: ab
   4768   aaaab
   4769 --->aaaab
   4770  +0 ^         a*
   4771  +2 ^   ^     b
   4772  +3 ^    ^    End of pattern
   4773  0: aaaab
   4774   aaaacb
   4775 --->aaaacb
   4776  +0 ^          a*
   4777  +2 ^   ^      b
   4778  +0  ^         a*
   4779  +2  ^  ^      b
   4780  +0   ^        a*
   4781  +2   ^ ^      b
   4782  +0    ^       a*
   4783  +2    ^^      b
   4784  +0      ^     a*
   4785  +2      ^     b
   4786  +3      ^^    End of pattern
   4787  0: b
   4788 
   4789 /a*b/IB,auto_callout
   4790 ------------------------------------------------------------------
   4791         Bra
   4792         Callout 255 0 2
   4793         a*+
   4794         Callout 255 2 1
   4795         b
   4796         Callout 255 3 0
   4797         Ket
   4798         End
   4799 ------------------------------------------------------------------
   4800 Capturing subpattern count = 0
   4801 Options: auto_callout
   4802 Starting code units: a b 
   4803 Last code unit = 'b'
   4804 Subject length lower bound = 1
   4805   ab
   4806 --->ab
   4807  +0 ^      a*
   4808  +2 ^^     b
   4809  +3 ^ ^    End of pattern
   4810  0: ab
   4811   aaaab
   4812 --->aaaab
   4813  +0 ^         a*
   4814  +2 ^   ^     b
   4815  +3 ^    ^    End of pattern
   4816  0: aaaab
   4817   aaaacb
   4818 --->aaaacb
   4819  +0 ^          a*
   4820  +2 ^   ^      b
   4821  +0  ^         a*
   4822  +2  ^  ^      b
   4823  +0   ^        a*
   4824  +2   ^ ^      b
   4825  +0    ^       a*
   4826  +2    ^^      b
   4827  +0      ^     a*
   4828  +2      ^     b
   4829  +3      ^^    End of pattern
   4830  0: b
   4831 
   4832 /a+b/IB,auto_callout
   4833 ------------------------------------------------------------------
   4834         Bra
   4835         Callout 255 0 2
   4836         a++
   4837         Callout 255 2 1
   4838         b
   4839         Callout 255 3 0
   4840         Ket
   4841         End
   4842 ------------------------------------------------------------------
   4843 Capturing subpattern count = 0
   4844 Options: auto_callout
   4845 First code unit = 'a'
   4846 Last code unit = 'b'
   4847 Subject length lower bound = 2
   4848   ab
   4849 --->ab
   4850  +0 ^      a+
   4851  +2 ^^     b
   4852  +3 ^ ^    End of pattern
   4853  0: ab
   4854   aaaab
   4855 --->aaaab
   4856  +0 ^         a+
   4857  +2 ^   ^     b
   4858  +3 ^    ^    End of pattern
   4859  0: aaaab
   4860 \= Expect no match
   4861   aaaacb
   4862 --->aaaacb
   4863  +0 ^          a+
   4864  +2 ^   ^      b
   4865  +0  ^         a+
   4866  +2  ^  ^      b
   4867  +0   ^        a+
   4868  +2   ^ ^      b
   4869  +0    ^       a+
   4870  +2    ^^      b
   4871 No match
   4872 
   4873 /(abc|def)x/IB,auto_callout
   4874 ------------------------------------------------------------------
   4875         Bra
   4876         Callout 255 0 1
   4877         CBra 1
   4878         Callout 255 1 1
   4879         a
   4880         Callout 255 2 1
   4881         b
   4882         Callout 255 3 1
   4883         c
   4884         Callout 255 4 1
   4885         Alt
   4886         Callout 255 5 1
   4887         d
   4888         Callout 255 6 1
   4889         e
   4890         Callout 255 7 1
   4891         f
   4892         Callout 255 8 1
   4893         Ket
   4894         Callout 255 9 1
   4895         x
   4896         Callout 255 10 0
   4897         Ket
   4898         End
   4899 ------------------------------------------------------------------
   4900 Capturing subpattern count = 1
   4901 Options: auto_callout
   4902 Starting code units: a d 
   4903 Last code unit = 'x'
   4904 Subject length lower bound = 4
   4905   abcx
   4906 --->abcx
   4907  +0 ^        (
   4908  +1 ^        a
   4909  +2 ^^       b
   4910  +3 ^ ^      c
   4911  +4 ^  ^     |
   4912  +9 ^  ^     x
   4913 +10 ^   ^    End of pattern
   4914  0: abcx
   4915  1: abc
   4916   defx
   4917 --->defx
   4918  +0 ^        (
   4919  +1 ^        a
   4920  +5 ^        d
   4921  +6 ^^       e
   4922  +7 ^ ^      f
   4923  +8 ^  ^     )
   4924  +9 ^  ^     x
   4925 +10 ^   ^    End of pattern
   4926  0: defx
   4927  1: def
   4928 \= Expect no match
   4929   abcdefzx
   4930 --->abcdefzx
   4931  +0 ^            (
   4932  +1 ^            a
   4933  +2 ^^           b
   4934  +3 ^ ^          c
   4935  +4 ^  ^         |
   4936  +9 ^  ^         x
   4937  +5 ^            d
   4938  +0    ^         (
   4939  +1    ^         a
   4940  +5    ^         d
   4941  +6    ^^        e
   4942  +7    ^ ^       f
   4943  +8    ^  ^      )
   4944  +9    ^  ^      x
   4945 No match
   4946 
   4947 /(abc|def)x/IB,auto_callout
   4948 ------------------------------------------------------------------
   4949         Bra
   4950         Callout 255 0 1
   4951         CBra 1
   4952         Callout 255 1 1
   4953         a
   4954         Callout 255 2 1
   4955         b
   4956         Callout 255 3 1
   4957         c
   4958         Callout 255 4 1
   4959         Alt
   4960         Callout 255 5 1
   4961         d
   4962         Callout 255 6 1
   4963         e
   4964         Callout 255 7 1
   4965         f
   4966         Callout 255 8 1
   4967         Ket
   4968         Callout 255 9 1
   4969         x
   4970         Callout 255 10 0
   4971         Ket
   4972         End
   4973 ------------------------------------------------------------------
   4974 Capturing subpattern count = 1
   4975 Options: auto_callout
   4976 Starting code units: a d 
   4977 Last code unit = 'x'
   4978 Subject length lower bound = 4
   4979   abcx
   4980 --->abcx
   4981  +0 ^        (
   4982  +1 ^        a
   4983  +2 ^^       b
   4984  +3 ^ ^      c
   4985  +4 ^  ^     |
   4986  +9 ^  ^     x
   4987 +10 ^   ^    End of pattern
   4988  0: abcx
   4989  1: abc
   4990   defx
   4991 --->defx
   4992  +0 ^        (
   4993  +1 ^        a
   4994  +5 ^        d
   4995  +6 ^^       e
   4996  +7 ^ ^      f
   4997  +8 ^  ^     )
   4998  +9 ^  ^     x
   4999 +10 ^   ^    End of pattern
   5000  0: defx
   5001  1: def
   5002 \= Expect no match
   5003   abcdefzx
   5004 --->abcdefzx
   5005  +0 ^            (
   5006  +1 ^            a
   5007  +2 ^^           b
   5008  +3 ^ ^          c
   5009  +4 ^  ^         |
   5010  +9 ^  ^         x
   5011  +5 ^            d
   5012  +0    ^         (
   5013  +1    ^         a
   5014  +5    ^         d
   5015  +6    ^^        e
   5016  +7    ^ ^       f
   5017  +8    ^  ^      )
   5018  +9    ^  ^      x
   5019 No match
   5020 
   5021 /(ab|cd){3,4}/I,auto_callout
   5022 Capturing subpattern count = 1
   5023 Options: auto_callout
   5024 Starting code units: a c 
   5025 Subject length lower bound = 6
   5026   ababab
   5027 --->ababab
   5028  +0 ^          (
   5029  +1 ^          a
   5030  +2 ^^         b
   5031  +3 ^ ^        |
   5032  +1 ^ ^        a
   5033  +2 ^  ^       b
   5034  +3 ^   ^      |
   5035  +1 ^   ^      a
   5036  +2 ^    ^     b
   5037  +3 ^     ^    |
   5038  +1 ^     ^    a
   5039  +4 ^     ^    c
   5040 +12 ^     ^    End of pattern
   5041  0: ababab
   5042  1: ab
   5043   abcdabcd
   5044 --->abcdabcd
   5045  +0 ^            (
   5046  +1 ^            a
   5047  +2 ^^           b
   5048  +3 ^ ^          |
   5049  +1 ^ ^          a
   5050  +4 ^ ^          c
   5051  +5 ^  ^         d
   5052  +6 ^   ^        ){3,4}
   5053  +1 ^   ^        a
   5054  +2 ^    ^       b
   5055  +3 ^     ^      |
   5056  +1 ^     ^      a
   5057  +4 ^     ^      c
   5058  +5 ^      ^     d
   5059  +6 ^       ^    ){3,4}
   5060 +12 ^       ^    End of pattern
   5061  0: abcdabcd
   5062  1: cd
   5063   abcdcdcdcdcd
   5064 --->abcdcdcdcdcd
   5065  +0 ^                (
   5066  +1 ^                a
   5067  +2 ^^               b
   5068  +3 ^ ^              |
   5069  +1 ^ ^              a
   5070  +4 ^ ^              c
   5071  +5 ^  ^             d
   5072  +6 ^   ^            ){3,4}
   5073  +1 ^   ^            a
   5074  +4 ^   ^            c
   5075  +5 ^    ^           d
   5076  +6 ^     ^          ){3,4}
   5077  +1 ^     ^          a
   5078  +4 ^     ^          c
   5079  +5 ^      ^         d
   5080  +6 ^       ^        ){3,4}
   5081 +12 ^       ^        End of pattern
   5082  0: abcdcdcd
   5083  1: cd
   5084 
   5085 /([ab]{,4}c|xy)/IB,auto_callout
   5086 ------------------------------------------------------------------
   5087         Bra
   5088         Callout 255 0 1
   5089         CBra 1
   5090         Callout 255 1 4
   5091         [ab]
   5092         Callout 255 5 1
   5093         {
   5094         Callout 255 6 1
   5095         ,
   5096         Callout 255 7 1
   5097         4
   5098         Callout 255 8 1
   5099         }
   5100         Callout 255 9 1
   5101         c
   5102         Callout 255 10 1
   5103         Alt
   5104         Callout 255 11 1
   5105         x
   5106         Callout 255 12 1
   5107         y
   5108         Callout 255 13 1
   5109         Ket
   5110         Callout 255 14 0
   5111         Ket
   5112         End
   5113 ------------------------------------------------------------------
   5114 Capturing subpattern count = 1
   5115 Options: auto_callout
   5116 Starting code units: a b x 
   5117 Subject length lower bound = 2
   5118 \= Expect no match
   5119     Note: that { does NOT introduce a quantifier
   5120 --->Note: that { does NOT introduce a quantifier
   5121  +0         ^                                        (
   5122  +1         ^                                        [ab]
   5123  +5         ^^                                       {
   5124 +11         ^                                        x
   5125  +0                                 ^                (
   5126  +1                                 ^                [ab]
   5127  +5                                 ^^               {
   5128 +11                                 ^                x
   5129  +0                                     ^            (
   5130  +1                                     ^            [ab]
   5131  +5                                     ^^           {
   5132 +11                                     ^            x
   5133 No match
   5134 
   5135 /([ab]{,4}c|xy)/IB,auto_callout
   5136 ------------------------------------------------------------------
   5137         Bra
   5138         Callout 255 0 1
   5139         CBra 1
   5140         Callout 255 1 4
   5141         [ab]
   5142         Callout 255 5 1
   5143         {
   5144         Callout 255 6 1
   5145         ,
   5146         Callout 255 7 1
   5147         4
   5148         Callout 255 8 1
   5149         }
   5150         Callout 255 9 1
   5151         c
   5152         Callout 255 10 1
   5153         Alt
   5154         Callout 255 11 1
   5155         x
   5156         Callout 255 12 1
   5157         y
   5158         Callout 255 13 1
   5159         Ket
   5160         Callout 255 14 0
   5161         Ket
   5162         End
   5163 ------------------------------------------------------------------
   5164 Capturing subpattern count = 1
   5165 Options: auto_callout
   5166 Starting code units: a b x 
   5167 Subject length lower bound = 2
   5168 \= Expect no match
   5169     Note: that { does NOT introduce a quantifier
   5170 --->Note: that { does NOT introduce a quantifier
   5171  +0         ^                                        (
   5172  +1         ^                                        [ab]
   5173  +5         ^^                                       {
   5174 +11         ^                                        x
   5175  +0                                 ^                (
   5176  +1                                 ^                [ab]
   5177  +5                                 ^^               {
   5178 +11                                 ^                x
   5179  +0                                     ^            (
   5180  +1                                     ^            [ab]
   5181  +5                                     ^^           {
   5182 +11                                     ^            x
   5183 No match
   5184 
   5185 /([ab]{1,4}c|xy){4,5}?123/IB,auto_callout
   5186 ------------------------------------------------------------------
   5187         Bra
   5188         Callout 255 0 1
   5189         CBra 1
   5190         Callout 255 1 9
   5191         [ab]{1,4}+
   5192         Callout 255 10 1
   5193         c
   5194         Callout 255 11 1
   5195         Alt
   5196         Callout 255 12 1
   5197         x
   5198         Callout 255 13 1
   5199         y
   5200         Callout 255 14 7
   5201         Ket
   5202         CBra 1
   5203         Callout 255 1 9
   5204         [ab]{1,4}+
   5205         Callout 255 10 1
   5206         c
   5207         Callout 255 11 1
   5208         Alt
   5209         Callout 255 12 1
   5210         x
   5211         Callout 255 13 1
   5212         y
   5213         Callout 255 14 7
   5214         Ket
   5215         CBra 1
   5216         Callout 255 1 9
   5217         [ab]{1,4}+
   5218         Callout 255 10 1
   5219         c
   5220         Callout 255 11 1
   5221         Alt
   5222         Callout 255 12 1
   5223         x
   5224         Callout 255 13 1
   5225         y
   5226         Callout 255 14 7
   5227         Ket
   5228         CBra 1
   5229         Callout 255 1 9
   5230         [ab]{1,4}+
   5231         Callout 255 10 1
   5232         c
   5233         Callout 255 11 1
   5234         Alt
   5235         Callout 255 12 1
   5236         x
   5237         Callout 255 13 1
   5238         y
   5239         Callout 255 14 7
   5240         Ket
   5241         Braminzero
   5242         CBra 1
   5243         Callout 255 1 9
   5244         [ab]{1,4}+
   5245         Callout 255 10 1
   5246         c
   5247         Callout 255 11 1
   5248         Alt
   5249         Callout 255 12 1
   5250         x
   5251         Callout 255 13 1
   5252         y
   5253         Callout 255 14 7
   5254         Ket
   5255         Callout 255 21 1
   5256         1
   5257         Callout 255 22 1
   5258         2
   5259         Callout 255 23 1
   5260         3
   5261         Callout 255 24 0
   5262         Ket
   5263         End
   5264 ------------------------------------------------------------------
   5265 Capturing subpattern count = 1
   5266 Options: auto_callout
   5267 Starting code units: a b x 
   5268 Last code unit = '3'
   5269 Subject length lower bound = 11
   5270     aacaacaacaacaac123
   5271 --->aacaacaacaacaac123
   5272  +0 ^                      (
   5273  +1 ^                      [ab]{1,4}
   5274 +10 ^ ^                    c
   5275 +11 ^  ^                   |
   5276  +1 ^  ^                   [ab]{1,4}
   5277 +10 ^    ^                 c
   5278 +11 ^     ^                |
   5279  +1 ^     ^                [ab]{1,4}
   5280 +10 ^       ^              c
   5281 +11 ^        ^             |
   5282  +1 ^        ^             [ab]{1,4}
   5283 +10 ^          ^           c
   5284 +11 ^           ^          |
   5285 +21 ^           ^          1
   5286  +1 ^           ^          [ab]{1,4}
   5287 +10 ^             ^        c
   5288 +11 ^              ^       |
   5289 +21 ^              ^       1
   5290 +22 ^               ^      2
   5291 +23 ^                ^     3
   5292 +24 ^                 ^    End of pattern
   5293  0: aacaacaacaacaac123
   5294  1: aac
   5295 
   5296 /\b.*/I
   5297 Capturing subpattern count = 0
   5298 Max lookbehind = 1
   5299 May match empty string
   5300 Subject length lower bound = 0
   5301   ab cd\=offset=1
   5302  0:  cd
   5303 
   5304 /\b.*/Is
   5305 Capturing subpattern count = 0
   5306 Max lookbehind = 1
   5307 May match empty string
   5308 Options: dotall
   5309 Subject length lower bound = 0
   5310   ab cd\=startoffset=1
   5311  0:  cd
   5312 
   5313 /(?!.bcd).*/I
   5314 Capturing subpattern count = 0
   5315 May match empty string
   5316 Subject length lower bound = 0
   5317   Xbcd12345
   5318  0: bcd12345
   5319 
   5320 /abcde/I
   5321 Capturing subpattern count = 0
   5322 First code unit = 'a'
   5323 Last code unit = 'e'
   5324 Subject length lower bound = 5
   5325     ab\=ps
   5326 Partial match: ab
   5327     abc\=ps
   5328 Partial match: abc
   5329     abcd\=ps
   5330 Partial match: abcd
   5331     abcde\=ps
   5332  0: abcde
   5333     the quick brown abc\=ps
   5334 Partial match: abc
   5335 \= Expect no match\=ps
   5336     the quick brown abxyz fox\=ps
   5337 No match
   5338 
   5339 "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
   5340 Capturing subpattern count = 3
   5341 Compile options: <none>
   5342 Overall options: anchored
   5343 Starting code units: 0 1 2 3 4 5 6 7 8 9 
   5344 Last code unit = '/'
   5345 Subject length lower bound = 6
   5346     13/05/04\=ps
   5347  0: 13/05/04
   5348  1: 13
   5349  2: 05
   5350     13/5/2004\=ps
   5351  0: 13/5/2004
   5352  1: 13
   5353  2: 5
   5354  3: 20
   5355     02/05/09\=ps
   5356  0: 02/05/09
   5357  1: 02
   5358  2: 05
   5359     1\=ps
   5360 Partial match: 1
   5361     1/2\=ps
   5362 Partial match: 1/2
   5363     1/2/0\=ps
   5364 Partial match: 1/2/0
   5365     1/2/04\=ps
   5366  0: 1/2/04
   5367  1: 1
   5368  2: 2
   5369     0\=ps
   5370 Partial match: 0
   5371     02/\=ps
   5372 Partial match: 02/
   5373     02/0\=ps
   5374 Partial match: 02/0
   5375     02/1\=ps
   5376 Partial match: 02/1
   5377 \= Expect no match\=ps
   5378     \=ps
   5379 No match
   5380     123\=ps
   5381 No match
   5382     33/4/04\=ps
   5383 No match
   5384     3/13/04\=ps
   5385 No match
   5386     0/1/2003\=ps
   5387 No match
   5388     0/\=ps
   5389 No match
   5390     02/0/\=ps
   5391 No match
   5392     02/13\=ps
   5393 No match
   5394 
   5395 /0{0,2}ABC/I
   5396 Capturing subpattern count = 0
   5397 Starting code units: 0 A 
   5398 Last code unit = 'C'
   5399 Subject length lower bound = 3
   5400 
   5401 /\d{3,}ABC/I
   5402 Capturing subpattern count = 0
   5403 Starting code units: 0 1 2 3 4 5 6 7 8 9 
   5404 Last code unit = 'C'
   5405 Subject length lower bound = 6
   5406 
   5407 /\d*ABC/I
   5408 Capturing subpattern count = 0
   5409 Starting code units: 0 1 2 3 4 5 6 7 8 9 A 
   5410 Last code unit = 'C'
   5411 Subject length lower bound = 3
   5412 
   5413 /[abc]+DE/I
   5414 Capturing subpattern count = 0
   5415 Starting code units: a b c 
   5416 Last code unit = 'E'
   5417 Subject length lower bound = 3
   5418 
   5419 /[abc]?123/I
   5420 Capturing subpattern count = 0
   5421 Starting code units: 1 a b c 
   5422 Last code unit = '3'
   5423 Subject length lower bound = 3
   5424     123\=ps
   5425  0: 123
   5426     a\=ps
   5427 Partial match: a
   5428     b\=ps
   5429 Partial match: b
   5430     c\=ps
   5431 Partial match: c
   5432     c12\=ps
   5433 Partial match: c12
   5434     c123\=ps
   5435  0: c123
   5436 
   5437 /^(?:\d){3,5}X/I
   5438 Capturing subpattern count = 0
   5439 Compile options: <none>
   5440 Overall options: anchored
   5441 Starting code units: 0 1 2 3 4 5 6 7 8 9 
   5442 Last code unit = 'X'
   5443 Subject length lower bound = 4
   5444     1\=ps
   5445 Partial match: 1
   5446     123\=ps
   5447 Partial match: 123
   5448     123X
   5449  0: 123X
   5450     1234\=ps
   5451 Partial match: 1234
   5452     1234X
   5453  0: 1234X
   5454     12345\=ps
   5455 Partial match: 12345
   5456     12345X
   5457  0: 12345X
   5458 \= Expect no match
   5459     1X
   5460 No match
   5461     123456\=ps
   5462 No match
   5463 
   5464 "<(\w+)/?>(.)*</(\1)>"Igms
   5465 Capturing subpattern count = 3
   5466 Max back reference = 1
   5467 Options: dotall multiline
   5468 First code unit = '<'
   5469 Last code unit = '>'
   5470 Subject length lower bound = 7
   5471     <!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>\=jitstack=1024
   5472  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>
   5473  1: seite
   5474  2: \x0a
   5475  3: seite
   5476 
   5477 /line\nbreak/I
   5478 Capturing subpattern count = 0
   5479 Contains explicit CR or LF match
   5480 First code unit = 'l'
   5481 Last code unit = 'k'
   5482 Subject length lower bound = 10
   5483     this is a line\nbreak
   5484  0: line\x0abreak
   5485     line one\nthis is a line\nbreak in the second line
   5486  0: line\x0abreak
   5487 
   5488 /line\nbreak/I,firstline
   5489 Capturing subpattern count = 0
   5490 Contains explicit CR or LF match
   5491 Options: firstline
   5492 First code unit = 'l'
   5493 Last code unit = 'k'
   5494 Subject length lower bound = 10
   5495     this is a line\nbreak
   5496  0: line\x0abreak
   5497 \= Expect no match
   5498     line one\nthis is a line\nbreak in the second line
   5499 No match
   5500 
   5501 /line\nbreak/Im,firstline
   5502 Capturing subpattern count = 0
   5503 Contains explicit CR or LF match
   5504 Options: firstline multiline
   5505 First code unit = 'l'
   5506 Last code unit = 'k'
   5507 Subject length lower bound = 10
   5508     this is a line\nbreak
   5509  0: line\x0abreak
   5510 \= Expect no match
   5511     line one\nthis is a line\nbreak in the second line
   5512 No match
   5513 
   5514 /(?i)(?-i)AbCd/I
   5515 Capturing subpattern count = 0
   5516 First code unit = 'A'
   5517 Last code unit = 'd'
   5518 Subject length lower bound = 4
   5519     AbCd
   5520  0: AbCd
   5521 \= Expect no match
   5522     abcd
   5523 No match
   5524 
   5525 /a{11111111111111111111}/I
   5526 Failed: error 105 at offset 8: number too big in {} quantifier
   5527 
   5528 /(){64294967295}/I
   5529 Failed: error 105 at offset 9: number too big in {} quantifier
   5530 
   5531 /(){2,4294967295}/I
   5532 Failed: error 105 at offset 11: number too big in {} quantifier
   5533 
   5534 "(?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
   5535 Capturing subpattern count = 1
   5536 Max back reference = 1
   5537 First code unit = 'a' (caseless)
   5538 Last code unit = 'B'
   5539 Subject length lower bound = 15
   5540     abcdefghijklAkB
   5541  0: abcdefghijklAkB
   5542  1: k
   5543 
   5544 "(?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
   5545 Capturing subpattern count = 12
   5546 Max back reference = 11
   5547 Named capturing subpatterns:
   5548   n0    1
   5549   n1    2
   5550   n10  11
   5551   n11  12
   5552   n2    3
   5553   n3    4
   5554   n4    5
   5555   n5    6
   5556   n6    7
   5557   n7    8
   5558   n8    9
   5559   n9   10
   5560 First code unit = 'a'
   5561 Last code unit = 'B'
   5562 Subject length lower bound = 15
   5563     abcdefghijklAkB
   5564  0: abcdefghijklAkB
   5565  1: a
   5566  2: b
   5567  3: c
   5568  4: d
   5569  5: e
   5570  6: f
   5571  7: g
   5572  8: h
   5573  9: i
   5574 10: j
   5575 11: k
   5576 12: l
   5577 
   5578 "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
   5579 Capturing subpattern count = 12
   5580 Max back reference = 11
   5581 First code unit = 'a'
   5582 Last code unit = 'B'
   5583 Subject length lower bound = 15
   5584     abcdefghijklAkB
   5585  0: abcdefghijklAkB
   5586  1: a
   5587  2: b
   5588  3: c
   5589  4: d
   5590  5: e
   5591  6: f
   5592  7: g
   5593  8: h
   5594  9: i
   5595 10: j
   5596 11: k
   5597 12: l
   5598 
   5599 "(?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
   5600 Capturing subpattern count = 101
   5601 Named capturing subpatterns:
   5602   name0     1
   5603   name1     2
   5604   name10   11
   5605   name100 101
   5606   name11   12
   5607   name12   13
   5608   name13   14
   5609   name14   15
   5610   name15   16
   5611   name16   17
   5612   name17   18
   5613   name18   19
   5614   name19   20
   5615   name2     3
   5616   name20   21
   5617   name21   22
   5618   name22   23
   5619   name23   24
   5620   name24   25
   5621   name25   26
   5622   name26   27
   5623   name27   28
   5624   name28   29
   5625   name29   30
   5626   name3     4
   5627   name30   31
   5628   name31   32
   5629   name32   33
   5630   name33   34
   5631   name34   35
   5632   name35   36
   5633   name36   37
   5634   name37   38
   5635   name38   39
   5636   name39   40
   5637   name4     5
   5638   name40   41
   5639   name41   42
   5640   name42   43
   5641   name43   44
   5642   name44   45
   5643   name45   46
   5644   name46   47
   5645   name47   48
   5646   name48   49
   5647   name49   50
   5648   name5     6
   5649   name50   51
   5650   name51   52
   5651   name52   53
   5652   name53   54
   5653   name54   55
   5654   name55   56
   5655   name56   57
   5656   name57   58
   5657   name58   59
   5658   name59   60
   5659   name6     7
   5660   name60   61
   5661   name61   62
   5662   name62   63
   5663   name63   64
   5664   name64   65
   5665   name65   66
   5666   name66   67
   5667   name67   68
   5668   name68   69
   5669   name69   70
   5670   name7     8
   5671   name70   71
   5672   name71   72
   5673   name72   73
   5674   name73   74
   5675   name74   75
   5676   name75   76
   5677   name76   77
   5678   name77   78
   5679   name78   79
   5680   name79   80
   5681   name8     9
   5682   name80   81
   5683   name81   82
   5684   name82   83
   5685   name83   84
   5686   name84   85
   5687   name85   86
   5688   name86   87
   5689   name87   88
   5690   name88   89
   5691   name89   90
   5692   name9    10
   5693   name90   91
   5694   name91   92
   5695   name92   93
   5696   name93   94
   5697   name94   95
   5698   name95   96
   5699   name96   97
   5700   name97   98
   5701   name98   99
   5702   name99  100
   5703 First code unit = 'a'
   5704 Last code unit = 'a'
   5705 Subject length lower bound = 101
   5706     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   5707 Matched, but too many substrings
   5708  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   5709  1: a
   5710  2: a
   5711  3: a
   5712  4: a
   5713  5: a
   5714  6: a
   5715  7: a
   5716  8: a
   5717  9: a
   5718 10: a
   5719 11: a
   5720 12: a
   5721 13: a
   5722 14: a
   5723 
   5724 "(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(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
   5725 Capturing subpattern count = 101
   5726 First code unit = 'a'
   5727 Last code unit = 'a'
   5728 Subject length lower bound = 101
   5729     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   5730 Matched, but too many substrings
   5731  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   5732  1: a
   5733  2: a
   5734  3: a
   5735  4: a
   5736  5: a
   5737  6: a
   5738  7: a
   5739  8: a
   5740  9: a
   5741 10: a
   5742 11: a
   5743 12: a
   5744 13: a
   5745 14: a
   5746 
   5747 /[^()]*(?:\((?R)\)[^()]*)*/I
   5748 Capturing subpattern count = 0
   5749 May match empty string
   5750 Subject length lower bound = 0
   5751     (this(and)that
   5752  0: 
   5753     (this(and)that)
   5754  0: (this(and)that)
   5755     (this(and)that)stuff
   5756  0: (this(and)that)stuff
   5757 
   5758 /[^()]*(?:\((?>(?R))\)[^()]*)*/I
   5759 Capturing subpattern count = 0
   5760 May match empty string
   5761 Subject length lower bound = 0
   5762     (this(and)that
   5763  0: 
   5764     (this(and)that)
   5765  0: (this(and)that)
   5766 
   5767 /[^()]*(?:\((?R)\))*[^()]*/I
   5768 Capturing subpattern count = 0
   5769 May match empty string
   5770 Subject length lower bound = 0
   5771     (this(and)that
   5772  0: 
   5773     (this(and)that)
   5774  0: (this(and)that)
   5775 
   5776 /(?:\((?R)\))*[^()]*/I
   5777 Capturing subpattern count = 0
   5778 May match empty string
   5779 Subject length lower bound = 0
   5780     (this(and)that
   5781  0: 
   5782     (this(and)that)
   5783  0: 
   5784     ((this))
   5785  0: ((this))
   5786 
   5787 /(?:\((?R)\))|[^()]*/I
   5788 Capturing subpattern count = 0
   5789 May match empty string
   5790 Subject length lower bound = 0
   5791     (this(and)that
   5792  0: 
   5793     (this(and)that)
   5794  0: 
   5795     (this)
   5796  0: (this)
   5797     ((this))
   5798  0: ((this))
   5799 
   5800 /\x{0000ff}/I
   5801 Capturing subpattern count = 0
   5802 First code unit = \xff
   5803 Subject length lower bound = 1
   5804 
   5805 /^((?P<A>a1)|(?P<A>a2)b)/I
   5806 Failed: error 143 at offset 18: two named subpatterns have the same name (PCRE2_DUPNAMES not set)
   5807 
   5808 /^((?P<A>a1)|(?P<A>a2)b)/I,dupnames
   5809 Capturing subpattern count = 3
   5810 Named capturing subpatterns:
   5811   A   2
   5812   A   3
   5813 Compile options: dupnames
   5814 Overall options: anchored dupnames
   5815 First code unit = 'a'
   5816 Subject length lower bound = 2
   5817     a1b\=copy=A
   5818  0: a1
   5819  1: a1
   5820  2: a1
   5821   C a1 (2) A (non-unique)
   5822     a2b\=copy=A
   5823  0: a2b
   5824  1: a2b
   5825  2: <unset>
   5826  3: a2
   5827   C a2 (2) A (non-unique)
   5828     a1b\=copy=Z,copy=A
   5829  0: a1
   5830  1: a1
   5831  2: a1
   5832 Number not found for group 'Z'
   5833 Copy substring 'Z' failed (-49): unknown substring
   5834   C a1 (2) A (non-unique)
   5835 
   5836 /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/I,dupnames
   5837 Capturing subpattern count = 3
   5838 Named capturing subpatterns:
   5839   a   1
   5840   a   3
   5841   b   2
   5842 May match empty string
   5843 Options: dupnames
   5844 Subject length lower bound = 0
   5845 
   5846 /^(?P<A>a)(?P<A>b)/I,dupnames
   5847 Capturing subpattern count = 2
   5848 Named capturing subpatterns:
   5849   A   1
   5850   A   2
   5851 Compile options: dupnames
   5852 Overall options: anchored dupnames
   5853 First code unit = 'a'
   5854 Subject length lower bound = 2
   5855     ab\=copy=A
   5856  0: ab
   5857  1: a
   5858  2: b
   5859   C a (1) A (non-unique)
   5860 
   5861 /^(?P<A>a)(?P<A>b)|cd/I,dupnames
   5862 Capturing subpattern count = 2
   5863 Named capturing subpatterns:
   5864   A   1
   5865   A   2
   5866 Options: dupnames
   5867 Starting code units: a c 
   5868 Subject length lower bound = 2
   5869     ab\=copy=A
   5870  0: ab
   5871  1: a
   5872  2: b
   5873   C a (1) A (non-unique)
   5874     cd\=copy=A
   5875  0: cd
   5876 Copy substring 'A' failed (-55): requested value is not set
   5877 
   5878 /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/I,dupnames
   5879 Capturing subpattern count = 4
   5880 Named capturing subpatterns:
   5881   A   1
   5882   A   2
   5883   A   3
   5884   A   4
   5885 Options: dupnames
   5886 Starting code units: a c 
   5887 Subject length lower bound = 2
   5888     cdefgh\=copy=A
   5889  0: cdefgh
   5890  1: <unset>
   5891  2: <unset>
   5892  3: ef
   5893  4: gh
   5894   C ef (2) A (non-unique)
   5895 
   5896 /^((?P<A>a1)|(?P<A>a2)b)/I,dupnames
   5897 Capturing subpattern count = 3
   5898 Named capturing subpatterns:
   5899   A   2
   5900   A   3
   5901 Compile options: dupnames
   5902 Overall options: anchored dupnames
   5903 First code unit = 'a'
   5904 Subject length lower bound = 2
   5905     a1b\=get=A
   5906  0: a1
   5907  1: a1
   5908  2: a1
   5909   G a1 (2) A (non-unique)
   5910     a2b\=get=A
   5911  0: a2b
   5912  1: a2b
   5913  2: <unset>
   5914  3: a2
   5915   G a2 (2) A (non-unique)
   5916     a1b\=get=Z,get=A
   5917  0: a1
   5918  1: a1
   5919  2: a1
   5920 Number not found for group 'Z'
   5921 Get substring 'Z' failed (-49): unknown substring
   5922   G a1 (2) A (non-unique)
   5923 
   5924 /^(?P<A>a)(?P<A>b)/I,dupnames
   5925 Capturing subpattern count = 2
   5926 Named capturing subpatterns:
   5927   A   1
   5928   A   2
   5929 Compile options: dupnames
   5930 Overall options: anchored dupnames
   5931 First code unit = 'a'
   5932 Subject length lower bound = 2
   5933     ab\=get=A
   5934  0: ab
   5935  1: a
   5936  2: b
   5937   G a (1) A (non-unique)
   5938 
   5939 /^(?P<A>a)(?P<A>b)|cd/I,dupnames
   5940 Capturing subpattern count = 2
   5941 Named capturing subpatterns:
   5942   A   1
   5943   A   2
   5944 Options: dupnames
   5945 Starting code units: a c 
   5946 Subject length lower bound = 2
   5947     ab\=get=A
   5948  0: ab
   5949  1: a
   5950  2: b
   5951   G a (1) A (non-unique)
   5952     cd\=get=A
   5953  0: cd
   5954 Get substring 'A' failed (-55): requested value is not set
   5955 
   5956 /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/I,dupnames
   5957 Capturing subpattern count = 4
   5958 Named capturing subpatterns:
   5959   A   1
   5960   A   2
   5961   A   3
   5962   A   4
   5963 Options: dupnames
   5964 Starting code units: a c 
   5965 Subject length lower bound = 2
   5966     cdefgh\=get=A
   5967  0: cdefgh
   5968  1: <unset>
   5969  2: <unset>
   5970  3: ef
   5971  4: gh
   5972   G ef (2) A (non-unique)
   5973 
   5974 /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
   5975 Capturing subpattern count = 3
   5976 Named capturing subpatterns:
   5977   A   2
   5978   A   3
   5979 Compile options: <none>
   5980 Overall options: anchored
   5981 Duplicate name status changes
   5982 First code unit = 'a'
   5983 Subject length lower bound = 2
   5984     a1b\=copy=A
   5985  0: a1
   5986  1: a1
   5987  2: a1
   5988   C a1 (2) A (non-unique)
   5989     a2b\=copy=A
   5990  0: a2b
   5991  1: a2b
   5992  2: <unset>
   5993  3: a2
   5994   C a2 (2) A (non-unique)
   5995 
   5996 /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
   5997 Failed: error 143 at offset 38: two named subpatterns have the same name (PCRE2_DUPNAMES not set)
   5998 
   5999 # In this next test, J is not set at the outer level; consequently it isn't set
   6000 # in the pattern's options; consequently pcre2_substring_get_byname() produces
   6001 # a random value.
   6002 
   6003 /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
   6004 Capturing subpattern count = 4
   6005 Named capturing subpatterns:
   6006   A   1
   6007   B   2
   6008   B   3
   6009   C   4
   6010 Compile options: <none>
   6011 Overall options: anchored
   6012 Duplicate name status changes
   6013 First code unit = 'a'
   6014 Subject length lower bound = 6
   6015     a bc d\=copy=A,copy=B,copy=C
   6016  0: a bc d
   6017  1: a
   6018  2: b
   6019  3: c
   6020  4: d
   6021   C a (1) A (group 1)
   6022   C b (1) B (non-unique)
   6023   C d (1) C (group 4)
   6024 
   6025 /^(?P<A>a)?(?(A)a|b)/I
   6026 Capturing subpattern count = 1
   6027 Max back reference = 1
   6028 Named capturing subpatterns:
   6029   A   1
   6030 Compile options: <none>
   6031 Overall options: anchored
   6032 Subject length lower bound = 1
   6033     aabc
   6034  0: aa
   6035  1: a
   6036     bc
   6037  0: b
   6038 \= Expect no match
   6039     abc
   6040 No match
   6041 
   6042 /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
   6043 Capturing subpattern count = 1
   6044 Max back reference = 1
   6045 Named capturing subpatterns:
   6046   ZZ   1
   6047 Last code unit = 'X'
   6048 Subject length lower bound = 2
   6049     bXaX
   6050  0: bXaX
   6051  1: X
   6052 
   6053 /(?:(?(2y)a|b)(X))+/I
   6054 Failed: error 124 at offset 7: missing closing parenthesis for condition
   6055 
   6056 /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
   6057 Failed: error 115 at offset 6: reference to non-existent subpattern
   6058 
   6059 /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
   6060 Capturing subpattern count = 1
   6061 Max back reference = 1
   6062 Named capturing subpatterns:
   6063   ZZ   1
   6064 Last code unit = 'X'
   6065 Subject length lower bound = 3
   6066     bbXaaX
   6067  0: bbXaaX
   6068  1: X
   6069 
   6070 /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
   6071 Capturing subpattern count = 1
   6072 Max back reference = 1
   6073 Named capturing subpatterns:
   6074   ZZ   1
   6075 Last code unit = 'X'
   6076 Subject length lower bound = 3
   6077     (b)\\Xa\\X
   6078  0: (b)\Xa\X
   6079  1: X
   6080 
   6081 /(?P<ABC/I
   6082 Failed: error 142 at offset 7: syntax error in subpattern name (missing terminator)
   6083 
   6084 /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
   6085 Capturing subpattern count = 1
   6086 Max back reference = 1
   6087 Named capturing subpatterns:
   6088   A   1
   6089 Subject length lower bound = 2
   6090     bXXaYYaY
   6091  0: bXXaYYaY
   6092  1: Y
   6093     bXYaXXaX
   6094  0: bX
   6095  1: X
   6096 
   6097 /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
   6098 Capturing subpattern count = 10
   6099 Max back reference = 10
   6100 Named capturing subpatterns:
   6101   A  10
   6102 Subject length lower bound = 2
   6103     bXXaYYaY
   6104  0: bXXaYYaY
   6105  1: 
   6106  2: 
   6107  3: 
   6108  4: 
   6109  5: 
   6110  6: 
   6111  7: 
   6112  8: 
   6113  9: 
   6114 10: Y
   6115 
   6116 /\s*,\s*/I
   6117 Capturing subpattern count = 0
   6118 Starting code units: \x09 \x0a \x0b \x0c \x0d \x20 , 
   6119 Last code unit = ','
   6120 Subject length lower bound = 1
   6121     \x0b,\x0b
   6122  0: \x0b,\x0b
   6123     \x0c,\x0d
   6124  0: \x0c,\x0d
   6125 
   6126 /^abc/Im,newline=lf
   6127 Capturing subpattern count = 0
   6128 Options: multiline
   6129 Forced newline is LF
   6130 First code unit at start or follows newline
   6131 Last code unit = 'c'
   6132 Subject length lower bound = 3
   6133     xyz\nabc
   6134  0: abc
   6135     xyz\r\nabc
   6136  0: abc
   6137 \= Expect no match
   6138     xyz\rabc
   6139 No match
   6140     xyzabc\r
   6141 No match
   6142     xyzabc\rpqr
   6143 No match
   6144     xyzabc\r\n
   6145 No match
   6146     xyzabc\r\npqr
   6147 No match
   6148 
   6149 /^abc/Im,newline=crlf
   6150 Capturing subpattern count = 0
   6151 Options: multiline
   6152 Forced newline is CRLF
   6153 First code unit at start or follows newline
   6154 Last code unit = 'c'
   6155 Subject length lower bound = 3
   6156     xyz\r\nabclf>
   6157  0: abc
   6158 \= Expect no match
   6159     xyz\nabclf
   6160 No match
   6161     xyz\rabclf
   6162 No match
   6163 
   6164 /^abc/Im,newline=cr
   6165 Capturing subpattern count = 0
   6166 Options: multiline
   6167 Forced newline is CR
   6168 First code unit at start or follows newline
   6169 Last code unit = 'c'
   6170 Subject length lower bound = 3
   6171     xyz\rabc
   6172  0: abc
   6173 \= Expect no match
   6174     xyz\nabc
   6175 No match
   6176     xyz\r\nabc
   6177 No match
   6178 
   6179 /^abc/Im,newline=bad
   6180 ** Invalid value in 'newline=bad'
   6181 
   6182 /.*/I,newline=lf
   6183 Capturing subpattern count = 0
   6184 May match empty string
   6185 Forced newline is LF
   6186 First code unit at start or follows newline
   6187 Subject length lower bound = 0
   6188     abc\ndef
   6189  0: abc
   6190     abc\rdef
   6191  0: abc\x0ddef
   6192     abc\r\ndef
   6193  0: abc\x0d
   6194 
   6195 /.*/I,newline=cr
   6196 Capturing subpattern count = 0
   6197 May match empty string
   6198 Forced newline is CR
   6199 First code unit at start or follows newline
   6200 Subject length lower bound = 0
   6201     abc\ndef
   6202  0: abc\x0adef
   6203     abc\rdef
   6204  0: abc
   6205     abc\r\ndef
   6206  0: abc
   6207 
   6208 /.*/I,newline=crlf
   6209 Capturing subpattern count = 0
   6210 May match empty string
   6211 Forced newline is CRLF
   6212 First code unit at start or follows newline
   6213 Subject length lower bound = 0
   6214     abc\ndef
   6215  0: abc\x0adef
   6216     abc\rdef
   6217  0: abc\x0ddef
   6218     abc\r\ndef
   6219  0: abc
   6220 
   6221 /\w+(.)(.)?def/Is
   6222 Capturing subpattern count = 2
   6223 Options: dotall
   6224 Starting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P 
   6225   Q R S T U V W X Y Z _ 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 
   6226 Last code unit = 'f'
   6227 Subject length lower bound = 5
   6228     abc\ndef
   6229  0: abc\x0adef
   6230  1: \x0a
   6231     abc\rdef
   6232  0: abc\x0ddef
   6233  1: \x0d
   6234     abc\r\ndef
   6235  0: abc\x0d\x0adef
   6236  1: \x0d
   6237  2: \x0a
   6238 
   6239 /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
   6240 Capturing subpattern count = 1
   6241 Named capturing subpatterns:
   6242   B   1
   6243 Starting code units: 0 1 2 3 4 5 6 7 8 9 
   6244 Last code unit = '.'
   6245 Subject length lower bound = 7
   6246 
   6247 /()()()()()()()()()()()()()()()()()()()()
   6248  ()()()()()()()()()()()()()()()()()()()()
   6249  ()()()()()()()()()()()()()()()()()()()()
   6250  ()()()()()()()()()()()()()()()()()()()()
   6251  ()()()()()()()()()()()()()()()()()()()()
   6252  (.(.))/Ix
   6253 Capturing subpattern count = 102
   6254 Options: extended
   6255 Subject length lower bound = 2
   6256     XY\=ovector=133
   6257  0: XY
   6258  1: 
   6259  2: 
   6260  3: 
   6261  4: 
   6262  5: 
   6263  6: 
   6264  7: 
   6265  8: 
   6266  9: 
   6267 10: 
   6268 11: 
   6269 12: 
   6270 13: 
   6271 14: 
   6272 15: 
   6273 16: 
   6274 17: 
   6275 18: 
   6276 19: 
   6277 20: 
   6278 21: 
   6279 22: 
   6280 23: 
   6281 24: 
   6282 25: 
   6283 26: 
   6284 27: 
   6285 28: 
   6286 29: 
   6287 30: 
   6288 31: 
   6289 32: 
   6290 33: 
   6291 34: 
   6292 35: 
   6293 36: 
   6294 37: 
   6295 38: 
   6296 39: 
   6297 40: 
   6298 41: 
   6299 42: 
   6300 43: 
   6301 44: 
   6302 45: 
   6303 46: 
   6304 47: 
   6305 48: 
   6306 49: 
   6307 50: 
   6308 51: 
   6309 52: 
   6310 53: 
   6311 54: 
   6312 55: 
   6313 56: 
   6314 57: 
   6315 58: 
   6316 59: 
   6317 60: 
   6318 61: 
   6319 62: 
   6320 63: 
   6321 64: 
   6322 65: 
   6323 66: 
   6324 67: 
   6325 68: 
   6326 69: 
   6327 70: 
   6328 71: 
   6329 72: 
   6330 73: 
   6331 74: 
   6332 75: 
   6333 76: 
   6334 77: 
   6335 78: 
   6336 79: 
   6337 80: 
   6338 81: 
   6339 82: 
   6340 83: 
   6341 84: 
   6342 85: 
   6343 86: 
   6344 87: 
   6345 88: 
   6346 89: 
   6347 90: 
   6348 91: 
   6349 92: 
   6350 93: 
   6351 94: 
   6352 95: 
   6353 96: 
   6354 97: 
   6355 98: 
   6356 99: 
   6357 100: 
   6358 101: XY
   6359 102: Y
   6360 
   6361 /(a*b|(?i:c*(?-i)d))/I
   6362 Capturing subpattern count = 1
   6363 Starting code units: C a b c d 
   6364 Subject length lower bound = 1
   6365 
   6366 /()[ab]xyz/I
   6367 Capturing subpattern count = 1
   6368 Starting code units: a b 
   6369 Last code unit = 'z'
   6370 Subject length lower bound = 4
   6371 
   6372 /(|)[ab]xyz/I
   6373 Capturing subpattern count = 1
   6374 Starting code units: a b 
   6375 Last code unit = 'z'
   6376 Subject length lower bound = 4
   6377 
   6378 /(|c)[ab]xyz/I
   6379 Capturing subpattern count = 1
   6380 Starting code units: a b c 
   6381 Last code unit = 'z'
   6382 Subject length lower bound = 4
   6383 
   6384 /(|c?)[ab]xyz/I
   6385 Capturing subpattern count = 1
   6386 Starting code units: a b c 
   6387 Last code unit = 'z'
   6388 Subject length lower bound = 4
   6389 
   6390 /(d?|c?)[ab]xyz/I
   6391 Capturing subpattern count = 1
   6392 Starting code units: a b c d 
   6393 Last code unit = 'z'
   6394 Subject length lower bound = 4
   6395 
   6396 /(d?|c)[ab]xyz/I
   6397 Capturing subpattern count = 1
   6398 Starting code units: a b c d 
   6399 Last code unit = 'z'
   6400 Subject length lower bound = 4
   6401 
   6402 /^a*b\d/IB
   6403 ------------------------------------------------------------------
   6404         Bra
   6405         ^
   6406         a*+
   6407         b
   6408         \d
   6409         Ket
   6410         End
   6411 ------------------------------------------------------------------
   6412 Capturing subpattern count = 0
   6413 Compile options: <none>
   6414 Overall options: anchored
   6415 Starting code units: a b 
   6416 Last code unit = 'b'
   6417 Subject length lower bound = 2
   6418 
   6419 /^a*+b\d/IB
   6420 ------------------------------------------------------------------
   6421         Bra
   6422         ^
   6423         a*+
   6424         b
   6425         \d
   6426         Ket
   6427         End
   6428 ------------------------------------------------------------------
   6429 Capturing subpattern count = 0
   6430 Compile options: <none>
   6431 Overall options: anchored
   6432 Starting code units: a b 
   6433 Last code unit = 'b'
   6434 Subject length lower bound = 2
   6435 
   6436 /^a*?b\d/IB
   6437 ------------------------------------------------------------------
   6438         Bra
   6439         ^
   6440         a*+
   6441         b
   6442         \d
   6443         Ket
   6444         End
   6445 ------------------------------------------------------------------
   6446 Capturing subpattern count = 0
   6447 Compile options: <none>
   6448 Overall options: anchored
   6449 Starting code units: a b 
   6450 Last code unit = 'b'
   6451 Subject length lower bound = 2
   6452 
   6453 /^a+A\d/IB
   6454 ------------------------------------------------------------------
   6455         Bra
   6456         ^
   6457         a++
   6458         A
   6459         \d
   6460         Ket
   6461         End
   6462 ------------------------------------------------------------------
   6463 Capturing subpattern count = 0
   6464 Compile options: <none>
   6465 Overall options: anchored
   6466 First code unit = 'a'
   6467 Last code unit = 'A'
   6468 Subject length lower bound = 3
   6469     aaaA5
   6470  0: aaaA5
   6471 \= Expect no match
   6472     aaaa5
   6473 No match
   6474 
   6475 /^a*A\d/IBi
   6476 ------------------------------------------------------------------
   6477         Bra
   6478         ^
   6479      /i a*
   6480      /i A
   6481         \d
   6482         Ket
   6483         End
   6484 ------------------------------------------------------------------
   6485 Capturing subpattern count = 0
   6486 Compile options: caseless
   6487 Overall options: anchored caseless
   6488 Starting code units: A a 
   6489 Last code unit = 'A' (caseless)
   6490 Subject length lower bound = 2
   6491     aaaA5
   6492  0: aaaA5
   6493     aaaa5
   6494  0: aaaa5
   6495 
   6496 /(a*|b*)[cd]/I
   6497 Capturing subpattern count = 1
   6498 Starting code units: a b c d 
   6499 Subject length lower bound = 1
   6500 
   6501 /(a+|b*)[cd]/I
   6502 Capturing subpattern count = 1
   6503 Starting code units: a b c d 
   6504 Subject length lower bound = 1
   6505 
   6506 /(a*|b+)[cd]/I
   6507 Capturing subpattern count = 1
   6508 Starting code units: a b c d 
   6509 Subject length lower bound = 1
   6510 
   6511 /(a+|b+)[cd]/I
   6512 Capturing subpattern count = 1
   6513 Starting code units: a b 
   6514 Subject length lower bound = 2
   6515 
   6516 /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
   6517  ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
   6518  (((
   6519  a
   6520  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
   6521  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
   6522  )))
   6523 /Ix
   6524 Capturing subpattern count = 203
   6525 Options: extended
   6526 First code unit = 'a'
   6527 Subject length lower bound = 1
   6528   large nest
   6529 Matched, but too many substrings
   6530  0: a
   6531  1: a
   6532  2: a
   6533  3: a
   6534  4: a
   6535  5: a
   6536  6: a
   6537  7: a
   6538  8: a
   6539  9: a
   6540 10: a
   6541 11: a
   6542 12: a
   6543 13: a
   6544 14: a
   6545 
   6546 /a*\d/B
   6547 ------------------------------------------------------------------
   6548         Bra
   6549         a*+
   6550         \d
   6551         Ket
   6552         End
   6553 ------------------------------------------------------------------
   6554 
   6555 /a*\D/B
   6556 ------------------------------------------------------------------
   6557         Bra
   6558         a*
   6559         \D
   6560         Ket
   6561         End
   6562 ------------------------------------------------------------------
   6563 
   6564 /0*\d/B
   6565 ------------------------------------------------------------------
   6566         Bra
   6567         0*
   6568         \d
   6569         Ket
   6570         End
   6571 ------------------------------------------------------------------
   6572 
   6573 /0*\D/B
   6574 ------------------------------------------------------------------
   6575         Bra
   6576         0*+
   6577         \D
   6578         Ket
   6579         End
   6580 ------------------------------------------------------------------
   6581 
   6582 /a*\s/B
   6583 ------------------------------------------------------------------
   6584         Bra
   6585         a*+
   6586         \s
   6587         Ket
   6588         End
   6589 ------------------------------------------------------------------
   6590 
   6591 /a*\S/B
   6592 ------------------------------------------------------------------
   6593         Bra
   6594         a*
   6595         \S
   6596         Ket
   6597         End
   6598 ------------------------------------------------------------------
   6599 
   6600 / *\s/B
   6601 ------------------------------------------------------------------
   6602         Bra
   6603          *
   6604         \s
   6605         Ket
   6606         End
   6607 ------------------------------------------------------------------
   6608 
   6609 / *\S/B
   6610 ------------------------------------------------------------------
   6611         Bra
   6612          *+
   6613         \S
   6614         Ket
   6615         End
   6616 ------------------------------------------------------------------
   6617 
   6618 /a*\w/B
   6619 ------------------------------------------------------------------
   6620         Bra
   6621         a*
   6622         \w
   6623         Ket
   6624         End
   6625 ------------------------------------------------------------------
   6626 
   6627 /a*\W/B
   6628 ------------------------------------------------------------------
   6629         Bra
   6630         a*+
   6631         \W
   6632         Ket
   6633         End
   6634 ------------------------------------------------------------------
   6635 
   6636 /=*\w/B
   6637 ------------------------------------------------------------------
   6638         Bra
   6639         =*+
   6640         \w
   6641         Ket
   6642         End
   6643 ------------------------------------------------------------------
   6644 
   6645 /=*\W/B
   6646 ------------------------------------------------------------------
   6647         Bra
   6648         =*
   6649         \W
   6650         Ket
   6651         End
   6652 ------------------------------------------------------------------
   6653 
   6654 /\d*a/B
   6655 ------------------------------------------------------------------
   6656         Bra
   6657         \d*+
   6658         a
   6659         Ket
   6660         End
   6661 ------------------------------------------------------------------
   6662 
   6663 /\d*2/B
   6664 ------------------------------------------------------------------
   6665         Bra
   6666         \d*
   6667         2
   6668         Ket
   6669         End
   6670 ------------------------------------------------------------------
   6671 
   6672 /\d*\d/B
   6673 ------------------------------------------------------------------
   6674         Bra
   6675         \d*
   6676         \d
   6677         Ket
   6678         End
   6679 ------------------------------------------------------------------
   6680 
   6681 /\d*\D/B
   6682 ------------------------------------------------------------------
   6683         Bra
   6684         \d*+
   6685         \D
   6686         Ket
   6687         End
   6688 ------------------------------------------------------------------
   6689 
   6690 /\d*\s/B
   6691 ------------------------------------------------------------------
   6692         Bra
   6693         \d*+
   6694         \s
   6695         Ket
   6696         End
   6697 ------------------------------------------------------------------
   6698 
   6699 /\d*\S/B
   6700 ------------------------------------------------------------------
   6701         Bra
   6702         \d*
   6703         \S
   6704         Ket
   6705         End
   6706 ------------------------------------------------------------------
   6707 
   6708 /\d*\w/B
   6709 ------------------------------------------------------------------
   6710         Bra
   6711         \d*
   6712         \w
   6713         Ket
   6714         End
   6715 ------------------------------------------------------------------
   6716 
   6717 /\d*\W/B
   6718 ------------------------------------------------------------------
   6719         Bra
   6720         \d*+
   6721         \W
   6722         Ket
   6723         End
   6724 ------------------------------------------------------------------
   6725 
   6726 /\D*a/B
   6727 ------------------------------------------------------------------
   6728         Bra
   6729         \D*
   6730         a
   6731         Ket
   6732         End
   6733 ------------------------------------------------------------------
   6734 
   6735 /\D*2/B
   6736 ------------------------------------------------------------------
   6737         Bra
   6738         \D*+
   6739         2
   6740         Ket
   6741         End
   6742 ------------------------------------------------------------------
   6743 
   6744 /\D*\d/B
   6745 ------------------------------------------------------------------
   6746         Bra
   6747         \D*+
   6748         \d
   6749         Ket
   6750         End
   6751 ------------------------------------------------------------------
   6752 
   6753 /\D*\D/B
   6754 ------------------------------------------------------------------
   6755         Bra
   6756         \D*
   6757         \D
   6758         Ket
   6759         End
   6760 ------------------------------------------------------------------
   6761 
   6762 /\D*\s/B
   6763 ------------------------------------------------------------------
   6764         Bra
   6765         \D*
   6766         \s
   6767         Ket
   6768         End
   6769 ------------------------------------------------------------------
   6770 
   6771 /\D*\S/B
   6772 ------------------------------------------------------------------
   6773         Bra
   6774         \D*
   6775         \S
   6776         Ket
   6777         End
   6778 ------------------------------------------------------------------
   6779 
   6780 /\D*\w/B
   6781 ------------------------------------------------------------------
   6782         Bra
   6783         \D*
   6784         \w
   6785         Ket
   6786         End
   6787 ------------------------------------------------------------------
   6788 
   6789 /\D*\W/B
   6790 ------------------------------------------------------------------
   6791         Bra
   6792         \D*
   6793         \W
   6794         Ket
   6795         End
   6796 ------------------------------------------------------------------
   6797 
   6798 /\s*a/B
   6799 ------------------------------------------------------------------
   6800         Bra
   6801         \s*+
   6802         a
   6803         Ket
   6804         End
   6805 ------------------------------------------------------------------
   6806 
   6807 /\s*2/B
   6808 ------------------------------------------------------------------
   6809         Bra
   6810         \s*+
   6811         2
   6812         Ket
   6813         End
   6814 ------------------------------------------------------------------
   6815 
   6816 /\s*\d/B
   6817 ------------------------------------------------------------------
   6818         Bra
   6819         \s*+
   6820         \d
   6821         Ket
   6822         End
   6823 ------------------------------------------------------------------
   6824 
   6825 /\s*\D/B
   6826 ------------------------------------------------------------------
   6827         Bra
   6828         \s*
   6829         \D
   6830         Ket
   6831         End
   6832 ------------------------------------------------------------------
   6833 
   6834 /\s*\s/B
   6835 ------------------------------------------------------------------
   6836         Bra
   6837         \s*
   6838         \s
   6839         Ket
   6840         End
   6841 ------------------------------------------------------------------
   6842 
   6843 /\s*\S/B
   6844 ------------------------------------------------------------------
   6845         Bra
   6846         \s*+
   6847         \S
   6848         Ket
   6849         End
   6850 ------------------------------------------------------------------
   6851 
   6852 /\s*\w/B
   6853 ------------------------------------------------------------------
   6854         Bra
   6855         \s*+
   6856         \w
   6857         Ket
   6858         End
   6859 ------------------------------------------------------------------
   6860 
   6861 /\s*\W/B
   6862 ------------------------------------------------------------------
   6863         Bra
   6864         \s*
   6865         \W
   6866         Ket
   6867         End
   6868 ------------------------------------------------------------------
   6869 
   6870 /\S*a/B
   6871 ------------------------------------------------------------------
   6872         Bra
   6873         \S*
   6874         a
   6875         Ket
   6876         End
   6877 ------------------------------------------------------------------
   6878 
   6879 /\S*2/B
   6880 ------------------------------------------------------------------
   6881         Bra
   6882         \S*
   6883         2
   6884         Ket
   6885         End
   6886 ------------------------------------------------------------------
   6887 
   6888 /\S*\d/B
   6889 ------------------------------------------------------------------
   6890         Bra
   6891         \S*
   6892         \d
   6893         Ket
   6894         End
   6895 ------------------------------------------------------------------
   6896 
   6897 /\S*\D/B
   6898 ------------------------------------------------------------------
   6899         Bra
   6900         \S*
   6901         \D
   6902         Ket
   6903         End
   6904 ------------------------------------------------------------------
   6905 
   6906 /\S*\s/B
   6907 ------------------------------------------------------------------
   6908         Bra
   6909         \S*+
   6910         \s
   6911         Ket
   6912         End
   6913 ------------------------------------------------------------------
   6914 
   6915 /\S*\S/B
   6916 ------------------------------------------------------------------
   6917         Bra
   6918         \S*
   6919         \S
   6920         Ket
   6921         End
   6922 ------------------------------------------------------------------
   6923 
   6924 /\S*\w/B
   6925 ------------------------------------------------------------------
   6926         Bra
   6927         \S*
   6928         \w
   6929         Ket
   6930         End
   6931 ------------------------------------------------------------------
   6932 
   6933 /\S*\W/B
   6934 ------------------------------------------------------------------
   6935         Bra
   6936         \S*
   6937         \W
   6938         Ket
   6939         End
   6940 ------------------------------------------------------------------
   6941 
   6942 /\w*a/B
   6943 ------------------------------------------------------------------
   6944         Bra
   6945         \w*
   6946         a
   6947         Ket
   6948         End
   6949 ------------------------------------------------------------------
   6950 
   6951 /\w*2/B
   6952 ------------------------------------------------------------------
   6953         Bra
   6954         \w*
   6955         2
   6956         Ket
   6957         End
   6958 ------------------------------------------------------------------
   6959 
   6960 /\w*\d/B
   6961 ------------------------------------------------------------------
   6962         Bra
   6963         \w*
   6964         \d
   6965         Ket
   6966         End
   6967 ------------------------------------------------------------------
   6968 
   6969 /\w*\D/B
   6970 ------------------------------------------------------------------
   6971         Bra
   6972         \w*
   6973         \D
   6974         Ket
   6975         End
   6976 ------------------------------------------------------------------
   6977 
   6978 /\w*\s/B
   6979 ------------------------------------------------------------------
   6980         Bra
   6981         \w*+
   6982         \s
   6983         Ket
   6984         End
   6985 ------------------------------------------------------------------
   6986 
   6987 /\w*\S/B
   6988 ------------------------------------------------------------------
   6989         Bra
   6990         \w*
   6991         \S
   6992         Ket
   6993         End
   6994 ------------------------------------------------------------------
   6995 
   6996 /\w*\w/B
   6997 ------------------------------------------------------------------
   6998         Bra
   6999         \w*
   7000         \w
   7001         Ket
   7002         End
   7003 ------------------------------------------------------------------
   7004 
   7005 /\w*\W/B
   7006 ------------------------------------------------------------------
   7007         Bra
   7008         \w*+
   7009         \W
   7010         Ket
   7011         End
   7012 ------------------------------------------------------------------
   7013 
   7014 /\W*a/B
   7015 ------------------------------------------------------------------
   7016         Bra
   7017         \W*+
   7018         a
   7019         Ket
   7020         End
   7021 ------------------------------------------------------------------
   7022 
   7023 /\W*2/B
   7024 ------------------------------------------------------------------
   7025         Bra
   7026         \W*+
   7027         2
   7028         Ket
   7029         End
   7030 ------------------------------------------------------------------
   7031 
   7032 /\W*\d/B
   7033 ------------------------------------------------------------------
   7034         Bra
   7035         \W*+
   7036         \d
   7037         Ket
   7038         End
   7039 ------------------------------------------------------------------
   7040 
   7041 /\W*\D/B
   7042 ------------------------------------------------------------------
   7043         Bra
   7044         \W*
   7045         \D
   7046         Ket
   7047         End
   7048 ------------------------------------------------------------------
   7049 
   7050 /\W*\s/B
   7051 ------------------------------------------------------------------
   7052         Bra
   7053         \W*
   7054         \s
   7055         Ket
   7056         End
   7057 ------------------------------------------------------------------
   7058 
   7059 /\W*\S/B
   7060 ------------------------------------------------------------------
   7061         Bra
   7062         \W*
   7063         \S
   7064         Ket
   7065         End
   7066 ------------------------------------------------------------------
   7067 
   7068 /\W*\w/B
   7069 ------------------------------------------------------------------
   7070         Bra
   7071         \W*+
   7072         \w
   7073         Ket
   7074         End
   7075 ------------------------------------------------------------------
   7076 
   7077 /\W*\W/B
   7078 ------------------------------------------------------------------
   7079         Bra
   7080         \W*
   7081         \W
   7082         Ket
   7083         End
   7084 ------------------------------------------------------------------
   7085 
   7086 /[^a]+a/B
   7087 ------------------------------------------------------------------
   7088         Bra
   7089         [^a]++
   7090         a
   7091         Ket
   7092         End
   7093 ------------------------------------------------------------------
   7094 
   7095 /[^a]+a/Bi
   7096 ------------------------------------------------------------------
   7097         Bra
   7098      /i [^a]++
   7099      /i a
   7100         Ket
   7101         End
   7102 ------------------------------------------------------------------
   7103 
   7104 /[^a]+A/Bi
   7105 ------------------------------------------------------------------
   7106         Bra
   7107      /i [^a]++
   7108      /i A
   7109         Ket
   7110         End
   7111 ------------------------------------------------------------------
   7112 
   7113 /[^a]+b/B
   7114 ------------------------------------------------------------------
   7115         Bra
   7116         [^a]+
   7117         b
   7118         Ket
   7119         End
   7120 ------------------------------------------------------------------
   7121 
   7122 /[^a]+\d/B
   7123 ------------------------------------------------------------------
   7124         Bra
   7125         [^a]+
   7126         \d
   7127         Ket
   7128         End
   7129 ------------------------------------------------------------------
   7130 
   7131 /a*[^a]/B
   7132 ------------------------------------------------------------------
   7133         Bra
   7134         a*+
   7135         [^a]
   7136         Ket
   7137         End
   7138 ------------------------------------------------------------------
   7139 
   7140 /(?P<abc>x)(?P<xyz>y)/I
   7141 Capturing subpattern count = 2
   7142 Named capturing subpatterns:
   7143   abc   1
   7144   xyz   2
   7145 First code unit = 'x'
   7146 Last code unit = 'y'
   7147 Subject length lower bound = 2
   7148     xy\=copy=abc,copy=xyz
   7149  0: xy
   7150  1: x
   7151  2: y
   7152   C x (1) abc (group 1)
   7153   C y (1) xyz (group 2)
   7154 
   7155 /(?<abc>x)(?'xyz'y)/I
   7156 Capturing subpattern count = 2
   7157 Named capturing subpatterns:
   7158   abc   1
   7159   xyz   2
   7160 First code unit = 'x'
   7161 Last code unit = 'y'
   7162 Subject length lower bound = 2
   7163     xy\=copy=abc,copy=xyz
   7164  0: xy
   7165  1: x
   7166  2: y
   7167   C x (1) abc (group 1)
   7168   C y (1) xyz (group 2)
   7169 
   7170 /(?<abc'x)(?'xyz'y)/I
   7171 Failed: error 142 at offset 6: syntax error in subpattern name (missing terminator)
   7172 
   7173 /(?<abc>x)(?'xyz>y)/I
   7174 Failed: error 142 at offset 15: syntax error in subpattern name (missing terminator)
   7175 
   7176 /(?P'abc'x)(?P<xyz>y)/I
   7177 Failed: error 141 at offset 3: unrecognized character after (?P
   7178 
   7179 /^(?:(?(ZZ)a|b)(?<ZZ>X))+/
   7180     bXaX
   7181  0: bXaX
   7182  1: X
   7183     bXbX
   7184  0: bX
   7185  1: X
   7186 \= Expect no match
   7187     aXaX
   7188 No match
   7189     aXbX
   7190 No match
   7191 
   7192 /^(?P>abc)(?<abcd>xxx)/
   7193 Failed: error 115 at offset 5: reference to non-existent subpattern
   7194 
   7195 /^(?P>abc)(?<abc>x|y)/
   7196     xx
   7197  0: xx
   7198  1: x
   7199     xy
   7200  0: xy
   7201  1: y
   7202     yy
   7203  0: yy
   7204  1: y
   7205     yx
   7206  0: yx
   7207  1: x
   7208 
   7209 /^(?P>abc)(?P<abc>x|y)/
   7210     xx
   7211  0: xx
   7212  1: x
   7213     xy
   7214  0: xy
   7215  1: y
   7216     yy
   7217  0: yy
   7218  1: y
   7219     yx
   7220  0: yx
   7221  1: x
   7222 
   7223 /^((?(abc)a|b)(?<abc>x|y))+/
   7224     bxay
   7225  0: bxay
   7226  1: ay
   7227  2: y
   7228     bxby
   7229  0: bx
   7230  1: bx
   7231  2: x
   7232 \= Expect no match
   7233     axby
   7234 No match
   7235 
   7236 /^(((?P=abc)|X)(?<abc>x|y))+/
   7237     XxXxxx
   7238  0: XxXxxx
   7239  1: xx
   7240  2: x
   7241  3: x
   7242     XxXyyx
   7243  0: XxXyyx
   7244  1: yx
   7245  2: y
   7246  3: x
   7247     XxXyxx
   7248  0: XxXy
   7249  1: Xy
   7250  2: X
   7251  3: y
   7252 \= Expect no match
   7253     x
   7254 No match
   7255 
   7256 /^(?1)(abc)/
   7257     abcabc
   7258  0: abcabc
   7259  1: abc
   7260 
   7261 /^(?:(?:\1|X)(a|b))+/
   7262     Xaaa
   7263  0: Xaaa
   7264  1: a
   7265     Xaba
   7266  0: Xa
   7267  1: a
   7268 
   7269 /^[\E\Qa\E-\Qz\E]+/B
   7270 ------------------------------------------------------------------
   7271         Bra
   7272         ^
   7273         [a-z]++
   7274         Ket
   7275         End
   7276 ------------------------------------------------------------------
   7277 
   7278 /^[a\Q]bc\E]/B
   7279 ------------------------------------------------------------------
   7280         Bra
   7281         ^
   7282         [\]a-c]
   7283         Ket
   7284         End
   7285 ------------------------------------------------------------------
   7286 
   7287 /^[a-\Q\E]/B
   7288 ------------------------------------------------------------------
   7289         Bra
   7290         ^
   7291         [\-a]
   7292         Ket
   7293         End
   7294 ------------------------------------------------------------------
   7295 
   7296 /^(?P>abc)[()](?<abc>)/B
   7297 ------------------------------------------------------------------
   7298         Bra
   7299         ^
   7300         Recurse
   7301         [()]
   7302         CBra 1
   7303         Ket
   7304         Ket
   7305         End
   7306 ------------------------------------------------------------------
   7307 
   7308 /^((?(abc)y)[()](?P<abc>x))+/B
   7309 ------------------------------------------------------------------
   7310         Bra
   7311         ^
   7312         CBra 1
   7313         Cond
   7314       2 Cond ref
   7315         y
   7316         Ket
   7317         [()]
   7318         CBra 2
   7319         x
   7320         Ket
   7321         KetRmax
   7322         Ket
   7323         End
   7324 ------------------------------------------------------------------
   7325     (xy)x
   7326  0: (xy)x
   7327  1: y)x
   7328  2: x
   7329 
   7330 /^(?P>abc)\Q()\E(?<abc>)/B
   7331 ------------------------------------------------------------------
   7332         Bra
   7333         ^
   7334         Recurse
   7335         ()
   7336         CBra 1
   7337         Ket
   7338         Ket
   7339         End
   7340 ------------------------------------------------------------------
   7341 
   7342 /^(?P>abc)[a\Q(]\E(](?<abc>)/B
   7343 ------------------------------------------------------------------
   7344         Bra
   7345         ^
   7346         Recurse
   7347         [(\]a]
   7348         CBra 1
   7349         Ket
   7350         Ket
   7351         End
   7352 ------------------------------------------------------------------
   7353 
   7354 /^(?P>abc) # this is (a comment)
   7355   (?<abc>)/Bx
   7356 ------------------------------------------------------------------
   7357         Bra
   7358         ^
   7359         Recurse
   7360         CBra 1
   7361         Ket
   7362         Ket
   7363         End
   7364 ------------------------------------------------------------------
   7365 
   7366 /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
   7367 Capturing subpattern count = 4
   7368 Max back reference = 4
   7369 Named capturing subpatterns:
   7370   four    4
   7371   one     1
   7372   three   3
   7373   two     2
   7374 May match empty string
   7375 Compile options: caseless
   7376 Overall options: anchored caseless
   7377 Subject length lower bound = 0
   7378     1221
   7379  0: 1221
   7380  1: 1221
   7381  2: 1
   7382     Satan, oscillate my metallic sonatas!
   7383  0: Satan, oscillate my metallic sonatas!
   7384  1: <unset>
   7385  2: <unset>
   7386  3: Satan, oscillate my metallic sonatas
   7387  4: S
   7388     A man, a plan, a canal: Panama!
   7389  0: A man, a plan, a canal: Panama!
   7390  1: <unset>
   7391  2: <unset>
   7392  3: A man, a plan, a canal: Panama
   7393  4: A
   7394     Able was I ere I saw Elba.
   7395  0: Able was I ere I saw Elba.
   7396  1: <unset>
   7397  2: <unset>
   7398  3: Able was I ere I saw Elba
   7399  4: A
   7400 \= Expect no match
   7401     The quick brown fox
   7402 No match
   7403 
   7404 /(?=(\w+))\1:/I
   7405 Capturing subpattern count = 1
   7406 Max back reference = 1
   7407 Starting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P 
   7408   Q R S T U V W X Y Z _ 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 
   7409 Last code unit = ':'
   7410 Subject length lower bound = 2
   7411     abcd:
   7412  0: abcd:
   7413  1: abcd
   7414 
   7415 /(?=(?'abc'\w+))\k<abc>:/I
   7416 Capturing subpattern count = 1
   7417 Max back reference = 1
   7418 Named capturing subpatterns:
   7419   abc   1
   7420 Starting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P 
   7421   Q R S T U V W X Y Z _ 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 
   7422 Last code unit = ':'
   7423 Subject length lower bound = 2
   7424     abcd:
   7425  0: abcd:
   7426  1: abcd
   7427 
   7428 /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/dupnames
   7429     adaa
   7430  0: adaa
   7431  1: a
   7432  2: d
   7433 \= Expect no match
   7434     addd
   7435 No match
   7436     adbb
   7437 No match
   7438 
   7439 /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/dupnames
   7440     bdaa
   7441  0: bdaa
   7442  1: b
   7443  2: d
   7444     bdab
   7445  0: bdab
   7446  1: b
   7447  2: d
   7448 \= Expect no match
   7449     bddd
   7450 No match
   7451 
   7452 /(?(<bc))/
   7453 Failed: error 142 at offset 6: syntax error in subpattern name (missing terminator)
   7454 
   7455 /(?(''))/
   7456 Failed: error 162 at offset 4: subpattern name expected
   7457 
   7458 /(?('R')stuff)/
   7459 Failed: error 115 at offset 4: reference to non-existent subpattern
   7460 
   7461 /((abc (?(R) (?(R1)1) (?(R2)2) X  |  (?1)  (?2)   (?R) ))) /x
   7462     abcabc1Xabc2XabcXabcabc
   7463  0: abcabc1Xabc2XabcX
   7464  1: abcabc1Xabc2XabcX
   7465  2: abcabc1Xabc2XabcX
   7466 
   7467 /(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
   7468     abcabc1Xabc2XabcXabcabc
   7469  0: abcabc1Xabc2XabcX
   7470  1: abcabc1Xabc2XabcX
   7471  2: abcabc1Xabc2XabcX
   7472 
   7473 /(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
   7474 Failed: error 115 at offset 27: reference to non-existent subpattern
   7475 
   7476 /^(?(DEFINE) abc | xyz ) /x
   7477 Failed: error 154 at offset 4: DEFINE group contains more than one branch
   7478 
   7479 /(?(DEFINE) abc) xyz/Ix
   7480 Capturing subpattern count = 0
   7481 Options: extended
   7482 First code unit = 'x'
   7483 Last code unit = 'z'
   7484 Subject length lower bound = 3
   7485 
   7486 /(a|)*\d/
   7487   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4\=ovector=0
   7488  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
   7489  1: 
   7490 \= Expect no match
   7491   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\=ovector=0
   7492 No match
   7493 
   7494 /^a.b/newline=lf
   7495     a\rb
   7496  0: a\x0db
   7497 \= Expect no match
   7498     a\nb
   7499 No match
   7500 
   7501 /^a.b/newline=cr
   7502     a\nb
   7503  0: a\x0ab
   7504 \= Expect no match
   7505     a\rb
   7506 No match
   7507 
   7508 /^a.b/newline=anycrlf
   7509     a\x85b
   7510  0: a\x85b
   7511 \= Expect no match
   7512     a\rb
   7513 No match
   7514 
   7515 /^a.b/newline=any
   7516 \= Expect no match
   7517     a\nb
   7518 No match
   7519     a\rb
   7520 No match
   7521     a\x85b
   7522 No match
   7523 
   7524 /^abc./gmx,newline=any
   7525     abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
   7526  0: abc1
   7527  0: abc2
   7528  0: abc3
   7529  0: abc4
   7530  0: abc5
   7531  0: abc6
   7532  0: abc7
   7533 
   7534 /abc.$/gmx,newline=any
   7535     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
   7536  0: abc1
   7537  0: abc2
   7538  0: abc3
   7539  0: abc4
   7540  0: abc5
   7541  0: abc6
   7542  0: abc9
   7543 
   7544 /^a\Rb/bsr=unicode
   7545     a\nb
   7546  0: a\x0ab
   7547     a\rb
   7548  0: a\x0db
   7549     a\r\nb
   7550  0: a\x0d\x0ab
   7551     a\x0bb
   7552  0: a\x0bb
   7553     a\x0cb
   7554  0: a\x0cb
   7555     a\x85b
   7556  0: a\x85b
   7557 \= Expect no match
   7558     a\n\rb
   7559 No match
   7560 
   7561 /^a\R*b/bsr=unicode
   7562     ab
   7563  0: ab
   7564     a\nb
   7565  0: a\x0ab
   7566     a\rb
   7567  0: a\x0db
   7568     a\r\nb
   7569  0: a\x0d\x0ab
   7570     a\x0bb
   7571  0: a\x0bb
   7572     a\x0cb
   7573  0: a\x0cb
   7574     a\x85b
   7575  0: a\x85b
   7576     a\n\rb
   7577  0: a\x0a\x0db
   7578     a\n\r\x85\x0cb
   7579  0: a\x0a\x0d\x85\x0cb
   7580 
   7581 /^a\R+b/bsr=unicode
   7582     a\nb
   7583  0: a\x0ab
   7584     a\rb
   7585  0: a\x0db
   7586     a\r\nb
   7587  0: a\x0d\x0ab
   7588     a\x0bb
   7589  0: a\x0bb
   7590     a\x0cb
   7591  0: a\x0cb
   7592     a\x85b
   7593  0: a\x85b
   7594     a\n\rb
   7595  0: a\x0a\x0db
   7596     a\n\r\x85\x0cb
   7597  0: a\x0a\x0d\x85\x0cb
   7598 \= Expect no match
   7599     ab
   7600 No match
   7601 
   7602 /^a\R{1,3}b/bsr=unicode
   7603     a\nb
   7604  0: a\x0ab
   7605     a\n\rb
   7606  0: a\x0a\x0db
   7607     a\n\r\x85b
   7608  0: a\x0a\x0d\x85b
   7609     a\r\n\r\nb
   7610  0: a\x0d\x0a\x0d\x0ab
   7611     a\r\n\r\n\r\nb
   7612  0: a\x0d\x0a\x0d\x0a\x0d\x0ab
   7613     a\n\r\n\rb
   7614  0: a\x0a\x0d\x0a\x0db
   7615     a\n\n\r\nb
   7616  0: a\x0a\x0a\x0d\x0ab
   7617 \= Expect no match
   7618     a\n\n\n\rb
   7619 No match
   7620     a\r
   7621 No match
   7622 
   7623 /(?&abc)X(?<abc>P)/I
   7624 Capturing subpattern count = 1
   7625 Named capturing subpatterns:
   7626   abc   1
   7627 Last code unit = 'P'
   7628 Subject length lower bound = 3
   7629     abcPXP123
   7630  0: PXP
   7631  1: P
   7632 
   7633 /(?1)X(?<abc>P)/I
   7634 Capturing subpattern count = 1
   7635 Named capturing subpatterns:
   7636   abc   1
   7637 Last code unit = 'P'
   7638 Subject length lower bound = 3
   7639     abcPXP123
   7640  0: PXP
   7641  1: P
   7642 
   7643 /(?:a(?&abc)b)*(?<abc>x)/
   7644     123axbaxbaxbx456
   7645  0: axbaxbaxbx
   7646  1: x
   7647     123axbaxbaxb456
   7648  0: x
   7649  1: x
   7650 
   7651 /(?:a(?&abc)b){1,5}(?<abc>x)/
   7652     123axbaxbaxbx456
   7653  0: axbaxbaxbx
   7654  1: x
   7655 
   7656 /(?:a(?&abc)b){2,5}(?<abc>x)/
   7657     123axbaxbaxbx456
   7658  0: axbaxbaxbx
   7659  1: x
   7660 
   7661 /(?:a(?&abc)b){2,}(?<abc>x)/
   7662     123axbaxbaxbx456
   7663  0: axbaxbaxbx
   7664  1: x
   7665 
   7666 /(abc)(?i:(?1))/
   7667     defabcabcxyz
   7668  0: abcabc
   7669  1: abc
   7670 \= Expect no match
   7671     DEFabcABCXYZ
   7672 No match
   7673 
   7674 /(abc)(?:(?i)(?1))/
   7675     defabcabcxyz
   7676  0: abcabc
   7677  1: abc
   7678 \= Expect no match
   7679     DEFabcABCXYZ
   7680 No match
   7681 
   7682 /^(a)\g-2/
   7683 Failed: error 115 at offset 8: reference to non-existent subpattern
   7684 
   7685 /^(a)\g/
   7686 Failed: error 157 at offset 6: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number
   7687 
   7688 /^(a)\g{0}/
   7689 Failed: error 115 at offset 9: reference to non-existent subpattern
   7690 
   7691 /^(a)\g{3/
   7692 Failed: error 157 at offset 6: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number
   7693 
   7694 /^(a)\g{aa}/
   7695 Failed: error 115 at offset 7: reference to non-existent subpattern
   7696 
   7697 /^a.b/newline=lf
   7698     a\rb
   7699  0: a\x0db
   7700 \= Expect no match
   7701     a\nb
   7702 No match
   7703 
   7704 /.+foo/
   7705     afoo
   7706  0: afoo
   7707 \= Expect no match
   7708     \r\nfoo
   7709 No match
   7710     \nfoo
   7711 No match
   7712 
   7713 /.+foo/newline=crlf
   7714     afoo
   7715  0: afoo
   7716     \nfoo
   7717  0: \x0afoo
   7718 \= Expect no match
   7719     \r\nfoo
   7720 No match
   7721 
   7722 /.+foo/newline=any
   7723     afoo
   7724  0: afoo
   7725 \= Expect no match
   7726     \nfoo
   7727 No match
   7728     \r\nfoo
   7729 No match
   7730 
   7731 /.+foo/s
   7732     afoo
   7733  0: afoo
   7734     \r\nfoo
   7735  0: \x0d\x0afoo
   7736     \nfoo
   7737  0: \x0afoo
   7738 
   7739 /^$/gm,newline=any
   7740     abc\r\rxyz
   7741  0: 
   7742     abc\n\rxyz
   7743  0: 
   7744 \= Expect no match
   7745     abc\r\nxyz
   7746 No match
   7747 
   7748 /(?m)^$/g,newline=any,aftertext
   7749     abc\r\n\r\n
   7750  0: 
   7751  0+ \x0d\x0a
   7752 
   7753 /(?m)^$|^\r\n/g,newline=any,aftertext
   7754     abc\r\n\r\n
   7755  0: 
   7756  0+ \x0d\x0a
   7757  0: \x0d\x0a
   7758  0+ 
   7759 
   7760 /(?m)$/g,newline=any,aftertext
   7761     abc\r\n\r\n
   7762  0: 
   7763  0+ \x0d\x0a\x0d\x0a
   7764  0: 
   7765  0+ \x0d\x0a
   7766  0: 
   7767  0+ 
   7768 
   7769 /abc.$/gmx,newline=anycrlf
   7770     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
   7771  0: abc1
   7772  0: abc4
   7773  0: abc5
   7774  0: abc9
   7775 
   7776 /^X/m
   7777     XABC
   7778  0: X
   7779 \= Expect no match
   7780     XABC\=notbol
   7781 No match
   7782 
   7783 /(ab|c)(?-1)/B
   7784 ------------------------------------------------------------------
   7785         Bra
   7786         CBra 1
   7787         ab
   7788         Alt
   7789         c
   7790         Ket
   7791         Recurse
   7792         Ket
   7793         End
   7794 ------------------------------------------------------------------
   7795     abc
   7796  0: abc
   7797  1: ab
   7798 
   7799 /xy(?+1)(abc)/B
   7800 ------------------------------------------------------------------
   7801         Bra
   7802         xy
   7803         Recurse
   7804         CBra 1
   7805         abc
   7806         Ket
   7807         Ket
   7808         End
   7809 ------------------------------------------------------------------
   7810     xyabcabc
   7811  0: xyabcabc
   7812  1: abc
   7813 \= Expect no match
   7814     xyabc
   7815 No match
   7816 
   7817 /x(?-0)y/
   7818 Failed: error 126 at offset 5: a relative value of zero is not allowed
   7819 
   7820 /x(?-1)y/
   7821 Failed: error 115 at offset 5: reference to non-existent subpattern
   7822 
   7823 /x(?+0)y/
   7824 Failed: error 126 at offset 5: a relative value of zero is not allowed
   7825 
   7826 /x(?+1)y/
   7827 Failed: error 115 at offset 5: reference to non-existent subpattern
   7828 
   7829 /^(abc)?(?(-1)X|Y)/B
   7830 ------------------------------------------------------------------
   7831         Bra
   7832         ^
   7833         Brazero
   7834         CBra 1
   7835         abc
   7836         Ket
   7837         Cond
   7838       1 Cond ref
   7839         X
   7840         Alt
   7841         Y
   7842         Ket
   7843         Ket
   7844         End
   7845 ------------------------------------------------------------------
   7846     abcX
   7847  0: abcX
   7848  1: abc
   7849     Y
   7850  0: Y
   7851 \= Expect no match
   7852     abcY
   7853 No match
   7854 
   7855 /^((?(+1)X|Y)(abc))+/B
   7856 ------------------------------------------------------------------
   7857         Bra
   7858         ^
   7859         CBra 1
   7860         Cond
   7861       2 Cond ref
   7862         X
   7863         Alt
   7864         Y
   7865         Ket
   7866         CBra 2
   7867         abc
   7868         Ket
   7869         KetRmax
   7870         Ket
   7871         End
   7872 ------------------------------------------------------------------
   7873     YabcXabc
   7874  0: YabcXabc
   7875  1: Xabc
   7876  2: abc
   7877     YabcXabcXabc
   7878  0: YabcXabcXabc
   7879  1: Xabc
   7880  2: abc
   7881 \= Expect no match
   7882     XabcXabc
   7883 No match
   7884 
   7885 /(?(-1)a)/B
   7886 Failed: error 115 at offset 5: reference to non-existent subpattern
   7887 
   7888 /((?(-1)a))/B
   7889 ------------------------------------------------------------------
   7890         Bra
   7891         CBra 1
   7892         Cond
   7893       1 Cond ref
   7894         a
   7895         Ket
   7896         Ket
   7897         Ket
   7898         End
   7899 ------------------------------------------------------------------
   7900 
   7901 /((?(-2)a))/B
   7902 Failed: error 115 at offset 6: reference to non-existent subpattern
   7903 
   7904 /^(?(+1)X|Y)(.)/B
   7905 ------------------------------------------------------------------
   7906         Bra
   7907         ^
   7908         Cond
   7909       1 Cond ref
   7910         X
   7911         Alt
   7912         Y
   7913         Ket
   7914         CBra 1
   7915         Any
   7916         Ket
   7917         Ket
   7918         End
   7919 ------------------------------------------------------------------
   7920     Y!
   7921  0: Y!
   7922  1: !
   7923 
   7924 /(?<A>tom|bon)-\k{A}/
   7925     tom-tom
   7926  0: tom-tom
   7927  1: tom
   7928     bon-bon
   7929  0: bon-bon
   7930  1: bon
   7931 \= Expect no match
   7932     tom-bon
   7933 No match
   7934 
   7935 /\g{A/
   7936 Failed: error 142 at offset 4: syntax error in subpattern name (missing terminator)
   7937 
   7938 /(?|(abc)|(xyz))/B
   7939 ------------------------------------------------------------------
   7940         Bra
   7941         Bra
   7942         CBra 1
   7943         abc
   7944         Ket
   7945         Alt
   7946         CBra 1
   7947         xyz
   7948         Ket
   7949         Ket
   7950         Ket
   7951         End
   7952 ------------------------------------------------------------------
   7953    >abc<
   7954  0: abc
   7955  1: abc
   7956    >xyz<
   7957  0: xyz
   7958  1: xyz
   7959 
   7960 /(x)(?|(abc)|(xyz))(x)/B
   7961 ------------------------------------------------------------------
   7962         Bra
   7963         CBra 1
   7964         x
   7965         Ket
   7966         Bra
   7967         CBra 2
   7968         abc
   7969         Ket
   7970         Alt
   7971         CBra 2
   7972         xyz
   7973         Ket
   7974         Ket
   7975         CBra 3
   7976         x
   7977         Ket
   7978         Ket
   7979         End
   7980 ------------------------------------------------------------------
   7981     xabcx
   7982  0: xabcx
   7983  1: x
   7984  2: abc
   7985  3: x
   7986     xxyzx
   7987  0: xxyzx
   7988  1: x
   7989  2: xyz
   7990  3: x
   7991 
   7992 /(x)(?|(abc)(pqr)|(xyz))(x)/B
   7993 ------------------------------------------------------------------
   7994         Bra
   7995         CBra 1
   7996         x
   7997         Ket
   7998         Bra
   7999         CBra 2
   8000         abc
   8001         Ket
   8002         CBra 3
   8003         pqr
   8004         Ket
   8005         Alt
   8006         CBra 2
   8007         xyz
   8008         Ket
   8009         Ket
   8010         CBra 4
   8011         x
   8012         Ket
   8013         Ket
   8014         End
   8015 ------------------------------------------------------------------
   8016     xabcpqrx
   8017  0: xabcpqrx
   8018  1: x
   8019  2: abc
   8020  3: pqr
   8021  4: x
   8022     xxyzx
   8023  0: xxyzx
   8024  1: x
   8025  2: xyz
   8026  3: <unset>
   8027  4: x
   8028 
   8029 /\H++X/B
   8030 ------------------------------------------------------------------
   8031         Bra
   8032         \H++
   8033         X
   8034         Ket
   8035         End
   8036 ------------------------------------------------------------------
   8037 \= Expect no match
   8038     XXXX
   8039 No match
   8040 
   8041 /\H+\hY/B
   8042 ------------------------------------------------------------------
   8043         Bra
   8044         \H++
   8045         \h
   8046         Y
   8047         Ket
   8048         End
   8049 ------------------------------------------------------------------
   8050     XXXX Y
   8051  0: XXXX Y
   8052 
   8053 /\H+ Y/B
   8054 ------------------------------------------------------------------
   8055         Bra
   8056         \H++
   8057          Y
   8058         Ket
   8059         End
   8060 ------------------------------------------------------------------
   8061 
   8062 /\h+A/B
   8063 ------------------------------------------------------------------
   8064         Bra
   8065         \h++
   8066         A
   8067         Ket
   8068         End
   8069 ------------------------------------------------------------------
   8070 
   8071 /\v*B/B
   8072 ------------------------------------------------------------------
   8073         Bra
   8074         \v*+
   8075         B
   8076         Ket
   8077         End
   8078 ------------------------------------------------------------------
   8079 
   8080 /\V+\x0a/B
   8081 ------------------------------------------------------------------
   8082         Bra
   8083         \V++
   8084         \x0a
   8085         Ket
   8086         End
   8087 ------------------------------------------------------------------
   8088 
   8089 /A+\h/B
   8090 ------------------------------------------------------------------
   8091         Bra
   8092         A++
   8093         \h
   8094         Ket
   8095         End
   8096 ------------------------------------------------------------------
   8097 
   8098 / *\H/B
   8099 ------------------------------------------------------------------
   8100         Bra
   8101          *+
   8102         \H
   8103         Ket
   8104         End
   8105 ------------------------------------------------------------------
   8106 
   8107 /A*\v/B
   8108 ------------------------------------------------------------------
   8109         Bra
   8110         A*+
   8111         \v
   8112         Ket
   8113         End
   8114 ------------------------------------------------------------------
   8115 
   8116 /\x0b*\V/B
   8117 ------------------------------------------------------------------
   8118         Bra
   8119         \x0b*+
   8120         \V
   8121         Ket
   8122         End
   8123 ------------------------------------------------------------------
   8124 
   8125 /\d+\h/B
   8126 ------------------------------------------------------------------
   8127         Bra
   8128         \d++
   8129         \h
   8130         Ket
   8131         End
   8132 ------------------------------------------------------------------
   8133 
   8134 /\d*\v/B
   8135 ------------------------------------------------------------------
   8136         Bra
   8137         \d*+
   8138         \v
   8139         Ket
   8140         End
   8141 ------------------------------------------------------------------
   8142 
   8143 /S+\h\S+\v/B
   8144 ------------------------------------------------------------------
   8145         Bra
   8146         S++
   8147         \h
   8148         \S++
   8149         \v
   8150         Ket
   8151         End
   8152 ------------------------------------------------------------------
   8153 
   8154 /\w{3,}\h\w+\v/B
   8155 ------------------------------------------------------------------
   8156         Bra
   8157         \w{3}
   8158         \w*+
   8159         \h
   8160         \w++
   8161         \v
   8162         Ket
   8163         End
   8164 ------------------------------------------------------------------
   8165 
   8166 /\h+\d\h+\w\h+\S\h+\H/B
   8167 ------------------------------------------------------------------
   8168         Bra
   8169         \h++
   8170         \d
   8171         \h++
   8172         \w
   8173         \h++
   8174         \S
   8175         \h++
   8176         \H
   8177         Ket
   8178         End
   8179 ------------------------------------------------------------------
   8180 
   8181 /\v+\d\v+\w\v+\S\v+\V/B
   8182 ------------------------------------------------------------------
   8183         Bra
   8184         \v++
   8185         \d
   8186         \v++
   8187         \w
   8188         \v++
   8189         \S
   8190         \v++
   8191         \V
   8192         Ket
   8193         End
   8194 ------------------------------------------------------------------
   8195 
   8196 /\H+\h\H+\d/B
   8197 ------------------------------------------------------------------
   8198         Bra
   8199         \H++
   8200         \h
   8201         \H+
   8202         \d
   8203         Ket
   8204         End
   8205 ------------------------------------------------------------------
   8206 
   8207 /\V+\v\V+\w/B
   8208 ------------------------------------------------------------------
   8209         Bra
   8210         \V++
   8211         \v
   8212         \V+
   8213         \w
   8214         Ket
   8215         End
   8216 ------------------------------------------------------------------
   8217 
   8218 /\( (?: [^()]* | (?R) )* \)/x
   8219 (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)\=jitstack=1024
   8220  0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
   8221 
   8222 /[\E]AAA/
   8223 Failed: error 106 at offset 7: missing terminating ] for character class
   8224 
   8225 /[\Q\E]AAA/
   8226 Failed: error 106 at offset 9: missing terminating ] for character class
   8227 
   8228 /[^\E]AAA/
   8229 Failed: error 106 at offset 8: missing terminating ] for character class
   8230 
   8231 /[^\Q\E]AAA/
   8232 Failed: error 106 at offset 10: missing terminating ] for character class
   8233 
   8234 /[\E^]AAA/
   8235 Failed: error 106 at offset 8: missing terminating ] for character class
   8236 
   8237 /[\Q\E^]AAA/
   8238 Failed: error 106 at offset 10: missing terminating ] for character class
   8239 
   8240 /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/B
   8241 ------------------------------------------------------------------
   8242         Bra
   8243         A
   8244         *PRUNE
   8245         B
   8246         *SKIP
   8247         C
   8248         *THEN
   8249         D
   8250         *COMMIT
   8251         E
   8252         *FAIL
   8253         F
   8254         *FAIL
   8255         G
   8256         *FAIL
   8257         H
   8258         *ACCEPT
   8259         I
   8260         Ket
   8261         End
   8262 ------------------------------------------------------------------
   8263 
   8264 /^a+(*FAIL)/auto_callout
   8265 \= Expect no match
   8266     aaaaaa
   8267 --->aaaaaa
   8268  +0 ^          ^
   8269  +1 ^          a+
   8270  +3 ^     ^    (*FAIL)
   8271  +3 ^    ^     (*FAIL)
   8272  +3 ^   ^      (*FAIL)
   8273  +3 ^  ^       (*FAIL)
   8274  +3 ^ ^        (*FAIL)
   8275  +3 ^^         (*FAIL)
   8276 No match
   8277 
   8278 /a+b?c+(*FAIL)/auto_callout
   8279 \= Expect no match
   8280     aaabccc
   8281 --->aaabccc
   8282  +0 ^           a+
   8283  +2 ^  ^        b?
   8284  +4 ^   ^       c+
   8285  +6 ^      ^    (*FAIL)
   8286  +6 ^     ^     (*FAIL)
   8287  +6 ^    ^      (*FAIL)
   8288  +0  ^          a+
   8289  +2  ^ ^        b?
   8290  +4  ^  ^       c+
   8291  +6  ^     ^    (*FAIL)
   8292  +6  ^    ^     (*FAIL)
   8293  +6  ^   ^      (*FAIL)
   8294  +0   ^         a+
   8295  +2   ^^        b?
   8296  +4   ^ ^       c+
   8297  +6   ^    ^    (*FAIL)
   8298  +6   ^   ^     (*FAIL)
   8299  +6   ^  ^      (*FAIL)
   8300 No match
   8301 
   8302 /a+b?(*PRUNE)c+(*FAIL)/auto_callout
   8303 \= Expect no match
   8304     aaabccc
   8305 --->aaabccc
   8306  +0 ^           a+
   8307  +2 ^  ^        b?
   8308  +4 ^   ^       (*PRUNE)
   8309 +12 ^   ^       c+
   8310 +14 ^      ^    (*FAIL)
   8311 +14 ^     ^     (*FAIL)
   8312 +14 ^    ^      (*FAIL)
   8313  +0  ^          a+
   8314  +2  ^ ^        b?
   8315  +4  ^  ^       (*PRUNE)
   8316 +12  ^  ^       c+
   8317 +14  ^     ^    (*FAIL)
   8318 +14  ^    ^     (*FAIL)
   8319 +14  ^   ^      (*FAIL)
   8320  +0   ^         a+
   8321  +2   ^^        b?
   8322  +4   ^ ^       (*PRUNE)
   8323 +12   ^ ^       c+
   8324 +14   ^    ^    (*FAIL)
   8325 +14   ^   ^     (*FAIL)
   8326 +14   ^  ^      (*FAIL)
   8327 No match
   8328 
   8329 /a+b?(*COMMIT)c+(*FAIL)/auto_callout
   8330 \= Expect no match
   8331     aaabccc
   8332 --->aaabccc
   8333  +0 ^           a+
   8334  +2 ^  ^        b?
   8335  +4 ^   ^       (*COMMIT)
   8336 +13 ^   ^       c+
   8337 +15 ^      ^    (*FAIL)
   8338 +15 ^     ^     (*FAIL)
   8339 +15 ^    ^      (*FAIL)
   8340 No match
   8341 
   8342 /a+b?(*SKIP)c+(*FAIL)/auto_callout
   8343 \= Expect no match
   8344     aaabcccaaabccc
   8345 --->aaabcccaaabccc
   8346  +0 ^                  a+
   8347  +2 ^  ^               b?
   8348  +4 ^   ^              (*SKIP)
   8349 +11 ^   ^              c+
   8350 +13 ^      ^           (*FAIL)
   8351 +13 ^     ^            (*FAIL)
   8352 +13 ^    ^             (*FAIL)
   8353  +0        ^           a+
   8354  +2        ^  ^        b?
   8355  +4        ^   ^       (*SKIP)
   8356 +11        ^   ^       c+
   8357 +13        ^      ^    (*FAIL)
   8358 +13        ^     ^     (*FAIL)
   8359 +13        ^    ^      (*FAIL)
   8360 No match
   8361 
   8362 /a+b?(*THEN)c+(*FAIL)/auto_callout
   8363 \= Expect no match
   8364     aaabccc
   8365 --->aaabccc
   8366  +0 ^           a+
   8367  +2 ^  ^        b?
   8368  +4 ^   ^       (*THEN)
   8369 +11 ^   ^       c+
   8370 +13 ^      ^    (*FAIL)
   8371 +13 ^     ^     (*FAIL)
   8372 +13 ^    ^      (*FAIL)
   8373  +0  ^          a+
   8374  +2  ^ ^        b?
   8375  +4  ^  ^       (*THEN)
   8376 +11  ^  ^       c+
   8377 +13  ^     ^    (*FAIL)
   8378 +13  ^    ^     (*FAIL)
   8379 +13  ^   ^      (*FAIL)
   8380  +0   ^         a+
   8381  +2   ^^        b?
   8382  +4   ^ ^       (*THEN)
   8383 +11   ^ ^       c+
   8384 +13   ^    ^    (*FAIL)
   8385 +13   ^   ^     (*FAIL)
   8386 +13   ^  ^      (*FAIL)
   8387 No match
   8388 
   8389 /a(*MARK)b/
   8390 Failed: error 166 at offset 7: (*MARK) must have an argument
   8391 
   8392 /(?i:A{1,}\6666666666)/
   8393 Failed: error 161 at offset 19: group number is too big
   8394 
   8395 /\g6666666666/
   8396 Failed: error 161 at offset 7: group number is too big
   8397 
   8398 /[\g6666666666]/B
   8399 ------------------------------------------------------------------
   8400         Bra
   8401         [6g]
   8402         Ket
   8403         End
   8404 ------------------------------------------------------------------
   8405 
   8406 /(?1)\c[/
   8407 Failed: error 115 at offset 3: reference to non-existent subpattern
   8408 
   8409 /.+A/newline=crlf
   8410 \= Expect no match
   8411     \r\nA
   8412 No match
   8413 
   8414 /\nA/newline=crlf
   8415     \r\nA
   8416  0: \x0aA
   8417 
   8418 /[\r\n]A/newline=crlf
   8419     \r\nA
   8420  0: \x0aA
   8421 
   8422 /(\r|\n)A/newline=crlf
   8423     \r\nA
   8424  0: \x0aA
   8425  1: \x0a
   8426 
   8427 /a(*CR)b/
   8428 Failed: error 160 at offset 5: (*VERB) not recognized or malformed
   8429 
   8430 /(*CR)a.b/
   8431     a\nb
   8432  0: a\x0ab
   8433 \= Expect no match
   8434     a\rb
   8435 No match
   8436 
   8437 /(*CR)a.b/newline=lf
   8438     a\nb
   8439  0: a\x0ab
   8440 \= Expect no match
   8441     a\rb
   8442 No match
   8443 
   8444 /(*LF)a.b/newline=CRLF
   8445     a\rb
   8446  0: a\x0db
   8447 \= Expect no match
   8448     a\nb
   8449 No match
   8450 
   8451 /(*CRLF)a.b/
   8452     a\rb
   8453  0: a\x0db
   8454     a\nb
   8455  0: a\x0ab
   8456 \= Expect no match
   8457     a\r\nb
   8458 No match
   8459 
   8460 /(*ANYCRLF)a.b/newline=CR
   8461 \= Expect no match
   8462     a\rb
   8463 No match
   8464     a\nb
   8465 No match
   8466     a\r\nb
   8467 No match
   8468 
   8469 /(*ANY)a.b/newline=cr
   8470 \= Expect no match
   8471     a\rb
   8472 No match
   8473     a\nb
   8474 No match
   8475     a\r\nb
   8476 No match
   8477     a\x85b
   8478 No match
   8479 
   8480 /(*ANY).*/g
   8481     abc\r\ndef
   8482  0: abc
   8483  0: 
   8484  0: def
   8485  0: 
   8486 
   8487 /(*ANYCRLF).*/g
   8488     abc\r\ndef
   8489  0: abc
   8490  0: 
   8491  0: def
   8492  0: 
   8493 
   8494 /(*CRLF).*/g
   8495     abc\r\ndef
   8496  0: abc
   8497  0: 
   8498  0: def
   8499  0: 
   8500 
   8501 /(*NUL)^.*/
   8502     a\nb\x00ccc
   8503  0: a\x0ab
   8504 
   8505 /(*NUL)^.*/s
   8506     a\nb\x00ccc
   8507  0: a\x0ab\x00ccc
   8508 
   8509 /^x/m,newline=NUL
   8510     ab\x00xy
   8511  0: x
   8512 
   8513 /'#comment' 0d 0a 00 '^x\' 0a 'y'/x,newline=nul,hex
   8514     x\nyz
   8515  0: x\x0ay
   8516 
   8517 /(*NUL)^X\NY/
   8518     X\nY
   8519  0: X\x0aY
   8520     X\rY
   8521  0: X\x0dY
   8522 \= Expect no match
   8523     X\x00Y
   8524 No match
   8525 
   8526 /a\Rb/I,bsr=anycrlf
   8527 Capturing subpattern count = 0
   8528 \R matches CR, LF, or CRLF
   8529 First code unit = 'a'
   8530 Last code unit = 'b'
   8531 Subject length lower bound = 3
   8532     a\rb
   8533  0: a\x0db
   8534     a\nb
   8535  0: a\x0ab
   8536     a\r\nb
   8537  0: a\x0d\x0ab
   8538 \= Expect no match
   8539     a\x85b
   8540 No match
   8541     a\x0bb
   8542 No match
   8543 
   8544 /a\Rb/I,bsr=unicode
   8545 Capturing subpattern count = 0
   8546 \R matches any Unicode newline
   8547 First code unit = 'a'
   8548 Last code unit = 'b'
   8549 Subject length lower bound = 3
   8550     a\rb
   8551  0: a\x0db
   8552     a\nb
   8553  0: a\x0ab
   8554     a\r\nb
   8555  0: a\x0d\x0ab
   8556     a\x85b
   8557  0: a\x85b
   8558     a\x0bb
   8559  0: a\x0bb
   8560 
   8561 /a\R?b/I,bsr=anycrlf
   8562 Capturing subpattern count = 0
   8563 \R matches CR, LF, or CRLF
   8564 First code unit = 'a'
   8565 Last code unit = 'b'
   8566 Subject length lower bound = 2
   8567     a\rb
   8568  0: a\x0db
   8569     a\nb
   8570  0: a\x0ab
   8571     a\r\nb
   8572  0: a\x0d\x0ab
   8573 \= Expect no match
   8574     a\x85b
   8575 No match
   8576     a\x0bb
   8577 No match
   8578 
   8579 /a\R?b/I,bsr=unicode
   8580 Capturing subpattern count = 0
   8581 \R matches any Unicode newline
   8582 First code unit = 'a'
   8583 Last code unit = 'b'
   8584 Subject length lower bound = 2
   8585     a\rb
   8586  0: a\x0db
   8587     a\nb
   8588  0: a\x0ab
   8589     a\r\nb
   8590  0: a\x0d\x0ab
   8591     a\x85b
   8592  0: a\x85b
   8593     a\x0bb
   8594  0: a\x0bb
   8595 
   8596 /a\R{2,4}b/I,bsr=anycrlf
   8597 Capturing subpattern count = 0
   8598 \R matches CR, LF, or CRLF
   8599 First code unit = 'a'
   8600 Last code unit = 'b'
   8601 Subject length lower bound = 4
   8602     a\r\n\nb
   8603  0: a\x0d\x0a\x0ab
   8604     a\n\r\rb
   8605  0: a\x0a\x0d\x0db
   8606     a\r\n\r\n\r\n\r\nb
   8607  0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
   8608 \= Expect no match
   8609     a\x85\x85b
   8610 No match
   8611     a\x0b\x0bb
   8612 No match
   8613 
   8614 /a\R{2,4}b/I,bsr=unicode
   8615 Capturing subpattern count = 0
   8616 \R matches any Unicode newline
   8617 First code unit = 'a'
   8618 Last code unit = 'b'
   8619 Subject length lower bound = 4
   8620     a\r\rb
   8621  0: a\x0d\x0db
   8622     a\n\n\nb
   8623  0: a\x0a\x0a\x0ab
   8624     a\r\n\n\r\rb
   8625  0: a\x0d\x0a\x0a\x0d\x0db
   8626     a\x85\x85b
   8627  0: a\x85\x85b
   8628     a\x0b\x0bb
   8629  0: a\x0b\x0bb
   8630 \= Expect no match
   8631     a\r\r\r\r\rb
   8632 No match
   8633 
   8634 /(*BSR_ANYCRLF)a\Rb/I
   8635 Capturing subpattern count = 0
   8636 \R matches CR, LF, or CRLF
   8637 First code unit = 'a'
   8638 Last code unit = 'b'
   8639 Subject length lower bound = 3
   8640     a\nb
   8641  0: a\x0ab
   8642     a\rb
   8643  0: a\x0db
   8644 
   8645 /(*BSR_UNICODE)a\Rb/I
   8646 Capturing subpattern count = 0
   8647 \R matches any Unicode newline
   8648 First code unit = 'a'
   8649 Last code unit = 'b'
   8650 Subject length lower bound = 3
   8651     a\x85b
   8652  0: a\x85b
   8653 
   8654 /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
   8655 Capturing subpattern count = 0
   8656 \R matches CR, LF, or CRLF
   8657 Forced newline is CRLF
   8658 First code unit = 'a'
   8659 Last code unit = 'b'
   8660 Subject length lower bound = 3
   8661     a\nb
   8662  0: a\x0ab
   8663     a\rb
   8664  0: a\x0db
   8665 
   8666 /(*CRLF)(*BSR_UNICODE)a\Rb/I
   8667 Capturing subpattern count = 0
   8668 \R matches any Unicode newline
   8669 Forced newline is CRLF
   8670 First code unit = 'a'
   8671 Last code unit = 'b'
   8672 Subject length lower bound = 3
   8673     a\x85b
   8674  0: a\x85b
   8675 
   8676 /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
   8677 Capturing subpattern count = 0
   8678 \R matches CR, LF, or CRLF
   8679 Forced newline is CR
   8680 First code unit = 'a'
   8681 Last code unit = 'b'
   8682 Subject length lower bound = 2
   8683 
   8684 /(?<a>)(?&)/
   8685 Failed: error 162 at offset 9: subpattern name expected
   8686 
   8687 /(?<abc>)(?&a)/
   8688 Failed: error 115 at offset 11: reference to non-existent subpattern
   8689 
   8690 /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
   8691 Failed: error 115 at offset 9: reference to non-existent subpattern
   8692 
   8693 /(?+-a)/
   8694 Failed: error 129 at offset 2: digit expected after (?+ or (?-
   8695 
   8696 /(?-+a)/
   8697 Failed: error 111 at offset 3: unrecognized character after (? or (?-
   8698 
   8699 /(?(-1))/
   8700 Failed: error 115 at offset 5: reference to non-existent subpattern
   8701 
   8702 /(?(+10))/
   8703 Failed: error 115 at offset 4: reference to non-existent subpattern
   8704 
   8705 /(?(10))/
   8706 Failed: error 115 at offset 3: reference to non-existent subpattern
   8707 
   8708 /(?(+2))()()/
   8709 
   8710 /(?(2))()()/
   8711 
   8712 /\k''/
   8713 Failed: error 162 at offset 3: subpattern name expected
   8714 
   8715 /\k<>/
   8716 Failed: error 162 at offset 3: subpattern name expected
   8717 
   8718 /\k{}/
   8719 Failed: error 162 at offset 3: subpattern name expected
   8720 
   8721 /\k/
   8722 Failed: error 169 at offset 2: \k is not followed by a braced, angle-bracketed, or quoted name
   8723 
   8724 /\kabc/
   8725 Failed: error 169 at offset 2: \k is not followed by a braced, angle-bracketed, or quoted name
   8726 
   8727 /(?P=)/
   8728 Failed: error 162 at offset 4: subpattern name expected
   8729 
   8730 /(?P>)/
   8731 Failed: error 162 at offset 4: subpattern name expected
   8732 
   8733 /[[:foo:]]/
   8734 Failed: error 130 at offset 3: unknown POSIX class name
   8735 
   8736 /[[:1234:]]/
   8737 Failed: error 130 at offset 3: unknown POSIX class name
   8738 
   8739 /[[:f\oo:]]/
   8740 Failed: error 130 at offset 3: unknown POSIX class name
   8741 
   8742 /[[: :]]/
   8743 Failed: error 130 at offset 3: unknown POSIX class name
   8744 
   8745 /[[:...:]]/
   8746 Failed: error 130 at offset 3: unknown POSIX class name
   8747 
   8748 /[[:l\ower:]]/
   8749 Failed: error 130 at offset 3: unknown POSIX class name
   8750 
   8751 /[[:abc\:]]/
   8752 Failed: error 130 at offset 3: unknown POSIX class name
   8753 
   8754 /[abc[:x\]pqr:]]/
   8755 Failed: error 130 at offset 6: unknown POSIX class name
   8756 
   8757 /[[:a\dz:]]/
   8758 Failed: error 130 at offset 3: unknown POSIX class name
   8759 
   8760 /(^(a|b\g<-1'c))/
   8761 Failed: error 157 at offset 8: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number
   8762 
   8763 /^(?+1)(?<a>x|y){0}z/
   8764     xzxx
   8765  0: xz
   8766     yzyy
   8767  0: yz
   8768 \= Expect no match
   8769     xxz
   8770 No match
   8771 
   8772 /(\3)(\1)(a)/
   8773 \= Expect no match
   8774     cat
   8775 No match
   8776 
   8777 /(\3)(\1)(a)/alt_bsux,allow_empty_class,match_unset_backref,dupnames
   8778     cat
   8779  0: a
   8780  1: 
   8781  2: 
   8782  3: a
   8783 
   8784 /TA]/
   8785     The ACTA] comes
   8786  0: TA]
   8787 
   8788 /TA]/alt_bsux,allow_empty_class,match_unset_backref,dupnames
   8789     The ACTA] comes
   8790  0: TA]
   8791 
   8792 /(?2)[]a()b](abc)/
   8793 Failed: error 115 at offset 3: reference to non-existent subpattern
   8794     abcbabc
   8795 
   8796 /(?2)[^]a()b](abc)/
   8797 Failed: error 115 at offset 3: reference to non-existent subpattern
   8798     abcbabc
   8799 
   8800 /(?1)[]a()b](abc)/
   8801     abcbabc
   8802  0: abcbabc
   8803  1: abc
   8804 \= Expect no match
   8805     abcXabc
   8806 No match
   8807 
   8808 /(?1)[^]a()b](abc)/
   8809     abcXabc
   8810  0: abcXabc
   8811  1: abc
   8812 \= Expect no match
   8813     abcbabc
   8814 No match
   8815 
   8816 /(?2)[]a()b](abc)(xyz)/
   8817     xyzbabcxyz
   8818  0: xyzbabcxyz
   8819  1: abc
   8820  2: xyz
   8821 
   8822 /(?&N)[]a(?<N>)](?<M>abc)/
   8823 Failed: error 115 at offset 3: reference to non-existent subpattern
   8824    abc<abc
   8825 
   8826 /(?&N)[]a(?<N>)](abc)/
   8827 Failed: error 115 at offset 3: reference to non-existent subpattern
   8828    abc<abc
   8829 
   8830 /a[]b/
   8831 Failed: error 106 at offset 4: missing terminating ] for character class
   8832 
   8833 /a[^]b/
   8834 Failed: error 106 at offset 5: missing terminating ] for character class
   8835 
   8836 /a[]b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
   8837 \= Expect no match
   8838     ab
   8839 No match
   8840 
   8841 /a[]+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
   8842 \= Expect no match
   8843     ab
   8844 No match
   8845 
   8846 /a[]*+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
   8847 \= Expect no match
   8848     ab
   8849 No match
   8850 
   8851 /a[^]b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
   8852     aXb
   8853  0: aXb
   8854     a\nb
   8855  0: a\x0ab
   8856 \= Expect no match
   8857     ab
   8858 No match
   8859 
   8860 /a[^]+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
   8861     aXb
   8862  0: aXb
   8863     a\nX\nXb
   8864  0: a\x0aX\x0aXb
   8865 \= Expect no match
   8866     ab
   8867 No match
   8868 
   8869 /a(?!)b/B
   8870 ------------------------------------------------------------------
   8871         Bra
   8872         a
   8873         *FAIL
   8874         b
   8875         Ket
   8876         End
   8877 ------------------------------------------------------------------
   8878 
   8879 /(?!)?a/B
   8880 ------------------------------------------------------------------
   8881         Bra
   8882         Brazero
   8883         Assert not
   8884         Ket
   8885         a
   8886         Ket
   8887         End
   8888 ------------------------------------------------------------------
   8889     ab
   8890  0: a
   8891 
   8892 /a(*FAIL)+b/
   8893 Failed: error 109 at offset 8: quantifier does not follow a repeatable item
   8894 
   8895 /(abc|pqr|123){0}[xyz]/I
   8896 Capturing subpattern count = 1
   8897 Starting code units: x y z 
   8898 Subject length lower bound = 1
   8899 
   8900 /(?(?=.*b)b|^)/I,auto_callout
   8901 Capturing subpattern count = 0
   8902 May match empty string
   8903 Options: auto_callout
   8904 Subject length lower bound = 0
   8905    adc
   8906 --->adc
   8907  +0 ^       (?
   8908  +2 ^       (?=
   8909  +5 ^       .*
   8910  +7 ^  ^    b
   8911  +7 ^ ^     b
   8912  +7 ^^      b
   8913  +7 ^       b
   8914 +11 ^       ^
   8915 +12 ^       )
   8916 +13 ^       End of pattern
   8917  0: 
   8918    abc
   8919 --->abc
   8920  +0 ^       (?
   8921  +2 ^       (?=
   8922  +5 ^       .*
   8923  +7 ^  ^    b
   8924  +7 ^ ^     b
   8925  +7 ^^      b
   8926  +8 ^ ^     )
   8927  +9 ^       b
   8928  +0  ^      (?
   8929  +2  ^      (?=
   8930  +5  ^      .*
   8931  +7  ^ ^    b
   8932  +7  ^^     b
   8933  +7  ^      b
   8934  +8  ^^     )
   8935  +9  ^      b
   8936 +10  ^^     |
   8937 +13  ^^     End of pattern
   8938  0: b
   8939 
   8940 /(?(?=b).*b|^d)/I
   8941 Capturing subpattern count = 0
   8942 Subject length lower bound = 1
   8943 
   8944 /(?(?=.*b).*b|^d)/I
   8945 Capturing subpattern count = 0
   8946 Subject length lower bound = 1
   8947 
   8948 /xyz/auto_callout
   8949   xyz
   8950 --->xyz
   8951  +0 ^       x
   8952  +1 ^^      y
   8953  +2 ^ ^     z
   8954  +3 ^  ^    End of pattern
   8955  0: xyz
   8956   abcxyz
   8957 --->abcxyz
   8958  +0    ^       x
   8959  +1    ^^      y
   8960  +2    ^ ^     z
   8961  +3    ^  ^    End of pattern
   8962  0: xyz
   8963 \= Expect no match
   8964   abc
   8965 No match
   8966   abcxypqr
   8967 No match
   8968 
   8969 /xyz/auto_callout,no_start_optimize
   8970   abcxyz
   8971 --->abcxyz
   8972  +0 ^          x
   8973  +0  ^         x
   8974  +0   ^        x
   8975  +0    ^       x
   8976  +1    ^^      y
   8977  +2    ^ ^     z
   8978  +3    ^  ^    End of pattern
   8979  0: xyz
   8980 \= Expect no match
   8981   abc
   8982 --->abc
   8983  +0 ^       x
   8984  +0  ^      x
   8985  +0   ^     x
   8986  +0    ^    x
   8987 No match
   8988   abcxypqr
   8989 --->abcxypqr
   8990  +0 ^            x
   8991  +0  ^           x
   8992  +0   ^          x
   8993  +0    ^         x
   8994  +1    ^^        y
   8995  +2    ^ ^       z
   8996  +0     ^        x
   8997  +0      ^       x
   8998  +0       ^      x
   8999  +0        ^     x
   9000  +0         ^    x
   9001 No match
   9002 
   9003 /(*NO_START_OPT)xyz/auto_callout
   9004   abcxyz
   9005 --->abcxyz
   9006 +15 ^          x
   9007 +15  ^         x
   9008 +15   ^        x
   9009 +15    ^       x
   9010 +16    ^^      y
   9011 +17    ^ ^     z
   9012 +18    ^  ^    End of pattern
   9013  0: xyz
   9014 
   9015 /(*NO_AUTO_POSSESS)a+b/B
   9016 ------------------------------------------------------------------
   9017         Bra
   9018         a+
   9019         b
   9020         Ket
   9021         End
   9022 ------------------------------------------------------------------
   9023 
   9024 /xyz/auto_callout,no_start_optimize
   9025   abcxyz
   9026 --->abcxyz
   9027  +0 ^          x
   9028  +0  ^         x
   9029  +0   ^        x
   9030  +0    ^       x
   9031  +1    ^^      y
   9032  +2    ^ ^     z
   9033  +3    ^  ^    End of pattern
   9034  0: xyz
   9035 
   9036 /^"((?(?=[a])[^"])|b)*"$/auto_callout
   9037     "ab"
   9038 --->"ab"
   9039  +0 ^        ^
   9040  +1 ^        "
   9041  +2 ^^       (
   9042  +3 ^^       (?
   9043  +5 ^^       (?=
   9044  +8 ^^       [a]
   9045 +11 ^ ^      )
   9046 +12 ^^       [^"]
   9047 +16 ^ ^      )
   9048 +17 ^ ^      |
   9049  +3 ^ ^      (?
   9050  +5 ^ ^      (?=
   9051  +8 ^ ^      [a]
   9052 +17 ^ ^      |
   9053 +21 ^ ^      "
   9054 +18 ^ ^      b
   9055 +19 ^  ^     )*
   9056  +3 ^  ^     (?
   9057  +5 ^  ^     (?=
   9058  +8 ^  ^     [a]
   9059 +17 ^  ^     |
   9060 +21 ^  ^     "
   9061 +22 ^   ^    $
   9062 +23 ^   ^    End of pattern
   9063  0: "ab"
   9064  1: 
   9065 
   9066 /^"((?(?=[a])[^"])|b)*"$/
   9067     "ab"
   9068  0: "ab"
   9069  1: 
   9070 
   9071 /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
   9072 Failed: error 115 at offset 5: reference to non-existent subpattern
   9073     XYabcdY
   9074 
   9075 /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
   9076     XYabcdY
   9077  0: XYabcdY
   9078  1: a
   9079  2: b
   9080  3: c
   9081  4: d
   9082  5: Y
   9083 
   9084 /Xa{2,4}b/
   9085     X\=ps
   9086 Partial match: X
   9087     Xa\=ps
   9088 Partial match: Xa
   9089     Xaa\=ps
   9090 Partial match: Xaa
   9091     Xaaa\=ps
   9092 Partial match: Xaaa
   9093     Xaaaa\=ps
   9094 Partial match: Xaaaa
   9095 
   9096 /Xa{2,4}?b/
   9097     X\=ps
   9098 Partial match: X
   9099     Xa\=ps
   9100 Partial match: Xa
   9101     Xaa\=ps
   9102 Partial match: Xaa
   9103     Xaaa\=ps
   9104 Partial match: Xaaa
   9105     Xaaaa\=ps
   9106 Partial match: Xaaaa
   9107 
   9108 /Xa{2,4}+b/
   9109     X\=ps
   9110 Partial match: X
   9111     Xa\=ps
   9112 Partial match: Xa
   9113     Xaa\=ps
   9114 Partial match: Xaa
   9115     Xaaa\=ps
   9116 Partial match: Xaaa
   9117     Xaaaa\=ps
   9118 Partial match: Xaaaa
   9119 
   9120 /X\d{2,4}b/
   9121     X\=ps
   9122 Partial match: X
   9123     X3\=ps
   9124 Partial match: X3
   9125     X33\=ps
   9126 Partial match: X33
   9127     X333\=ps
   9128 Partial match: X333
   9129     X3333\=ps
   9130 Partial match: X3333
   9131 
   9132 /X\d{2,4}?b/
   9133     X\=ps
   9134 Partial match: X
   9135     X3\=ps
   9136 Partial match: X3
   9137     X33\=ps
   9138 Partial match: X33
   9139     X333\=ps
   9140 Partial match: X333
   9141     X3333\=ps
   9142 Partial match: X3333
   9143 
   9144 /X\d{2,4}+b/
   9145     X\=ps
   9146 Partial match: X
   9147     X3\=ps
   9148 Partial match: X3
   9149     X33\=ps
   9150 Partial match: X33
   9151     X333\=ps
   9152 Partial match: X333
   9153     X3333\=ps
   9154 Partial match: X3333
   9155 
   9156 /X\D{2,4}b/
   9157     X\=ps
   9158 Partial match: X
   9159     Xa\=ps
   9160 Partial match: Xa
   9161     Xaa\=ps
   9162 Partial match: Xaa
   9163     Xaaa\=ps
   9164 Partial match: Xaaa
   9165     Xaaaa\=ps
   9166 Partial match: Xaaaa
   9167 
   9168 /X\D{2,4}?b/
   9169     X\=ps
   9170 Partial match: X
   9171     Xa\=ps
   9172 Partial match: Xa
   9173     Xaa\=ps
   9174 Partial match: Xaa
   9175     Xaaa\=ps
   9176 Partial match: Xaaa
   9177     Xaaaa\=ps
   9178 Partial match: Xaaaa
   9179 
   9180 /X\D{2,4}+b/
   9181     X\=ps
   9182 Partial match: X
   9183     Xa\=ps
   9184 Partial match: Xa
   9185     Xaa\=ps
   9186 Partial match: Xaa
   9187     Xaaa\=ps
   9188 Partial match: Xaaa
   9189     Xaaaa\=ps
   9190 Partial match: Xaaaa
   9191 
   9192 /X[abc]{2,4}b/
   9193     X\=ps
   9194 Partial match: X
   9195     Xa\=ps
   9196 Partial match: Xa
   9197     Xaa\=ps
   9198 Partial match: Xaa
   9199     Xaaa\=ps
   9200 Partial match: Xaaa
   9201     Xaaaa\=ps
   9202 Partial match: Xaaaa
   9203 
   9204 /X[abc]{2,4}?b/
   9205     X\=ps
   9206 Partial match: X
   9207     Xa\=ps
   9208 Partial match: Xa
   9209     Xaa\=ps
   9210 Partial match: Xaa
   9211     Xaaa\=ps
   9212 Partial match: Xaaa
   9213     Xaaaa\=ps
   9214 Partial match: Xaaaa
   9215 
   9216 /X[abc]{2,4}+b/
   9217     X\=ps
   9218 Partial match: X
   9219     Xa\=ps
   9220 Partial match: Xa
   9221     Xaa\=ps
   9222 Partial match: Xaa
   9223     Xaaa\=ps
   9224 Partial match: Xaaa
   9225     Xaaaa\=ps
   9226 Partial match: Xaaaa
   9227 
   9228 /X[^a]{2,4}b/
   9229     X\=ps
   9230 Partial match: X
   9231     Xz\=ps
   9232 Partial match: Xz
   9233     Xzz\=ps
   9234 Partial match: Xzz
   9235     Xzzz\=ps
   9236 Partial match: Xzzz
   9237     Xzzzz\=ps
   9238 Partial match: Xzzzz
   9239 
   9240 /X[^a]{2,4}?b/
   9241     X\=ps
   9242 Partial match: X
   9243     Xz\=ps
   9244 Partial match: Xz
   9245     Xzz\=ps
   9246 Partial match: Xzz
   9247     Xzzz\=ps
   9248 Partial match: Xzzz
   9249     Xzzzz\=ps
   9250 Partial match: Xzzzz
   9251 
   9252 /X[^a]{2,4}+b/
   9253     X\=ps
   9254 Partial match: X
   9255     Xz\=ps
   9256 Partial match: Xz
   9257     Xzz\=ps
   9258 Partial match: Xzz
   9259     Xzzz\=ps
   9260 Partial match: Xzzz
   9261     Xzzzz\=ps
   9262 Partial match: Xzzzz
   9263 
   9264 /(Y)X\1{2,4}b/
   9265     YX\=ps
   9266 Partial match: YX
   9267     YXY\=ps
   9268 Partial match: YXY
   9269     YXYY\=ps
   9270 Partial match: YXYY
   9271     YXYYY\=ps
   9272 Partial match: YXYYY
   9273     YXYYYY\=ps
   9274 Partial match: YXYYYY
   9275 
   9276 /(Y)X\1{2,4}?b/
   9277     YX\=ps
   9278 Partial match: YX
   9279     YXY\=ps
   9280 Partial match: YXY
   9281     YXYY\=ps
   9282 Partial match: YXYY
   9283     YXYYY\=ps
   9284 Partial match: YXYYY
   9285     YXYYYY\=ps
   9286 Partial match: YXYYYY
   9287 
   9288 /(Y)X\1{2,4}+b/
   9289     YX\=ps
   9290 Partial match: YX
   9291     YXY\=ps
   9292 Partial match: YXY
   9293     YXYY\=ps
   9294 Partial match: YXYY
   9295     YXYYY\=ps
   9296 Partial match: YXYYY
   9297     YXYYYY\=ps
   9298 Partial match: YXYYYY
   9299 
   9300 /\++\KZ|\d+X|9+Y/startchar
   9301     ++++123999\=ps
   9302 Partial match: 123999
   9303     ++++123999Y\=ps
   9304  0: 999Y
   9305     ++++Z1234\=ps
   9306  0: ++++Z
   9307     ^^^^
   9308 
   9309 /Z(*F)/
   9310 \= Expect no match
   9311     Z\=ps
   9312 No match
   9313     ZA\=ps
   9314 No match
   9315 
   9316 /Z(?!)/
   9317 \= Expect no match
   9318     Z\=ps
   9319 No match
   9320     ZA\=ps
   9321 No match
   9322 
   9323 /dog(sbody)?/
   9324     dogs\=ps
   9325  0: dog
   9326     dogs\=ph
   9327 Partial match: dogs
   9328 
   9329 /dog(sbody)??/
   9330     dogs\=ps
   9331  0: dog
   9332     dogs\=ph
   9333  0: dog
   9334 
   9335 /dog|dogsbody/
   9336     dogs\=ps
   9337  0: dog
   9338     dogs\=ph
   9339  0: dog
   9340 
   9341 /dogsbody|dog/
   9342     dogs\=ps
   9343  0: dog
   9344     dogs\=ph
   9345 Partial match: dogs
   9346 
   9347 /\bthe cat\b/
   9348     the cat\=ps
   9349  0: the cat
   9350     the cat\=ph
   9351 Partial match: the cat
   9352 
   9353 /abc/
   9354    abc\=ps
   9355  0: abc
   9356    abc\=ph
   9357  0: abc
   9358 
   9359 /abc\K123/startchar
   9360     xyzabc123pqr
   9361  0: abc123
   9362     ^^^
   9363     xyzabc12\=ps
   9364 Partial match: abc12
   9365     xyzabc12\=ph
   9366 Partial match: abc12
   9367 
   9368 /(?<=abc)123/
   9369     xyzabc123pqr
   9370  0: 123
   9371     xyzabc12\=ps
   9372 Partial match: abc12
   9373                <<<
   9374     xyzabc12\=ph
   9375 Partial match: abc12
   9376                <<<
   9377 
   9378 /\babc\b/
   9379     +++abc+++
   9380  0: abc
   9381     +++ab\=ps
   9382 Partial match: +ab
   9383                <
   9384     +++ab\=ph
   9385 Partial match: +ab
   9386                <
   9387 
   9388 /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/B
   9389 ------------------------------------------------------------------
   9390         Bra
   9391         Recurse
   9392         Recurse
   9393         Cond
   9394         Cond false
   9395         CBra 1
   9396         <
   9397         [^m]
   9398         [^>]
   9399         >
   9400         [^<]
   9401         Ket
   9402         CBra 2
   9403         \w*+
   9404         Ket
   9405         Ket
   9406         Ket
   9407         End
   9408 ------------------------------------------------------------------
   9409 
   9410 /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/B
   9411 ------------------------------------------------------------------
   9412         Bra
   9413         Recurse
   9414         Recurse
   9415         Cond
   9416         Cond false
   9417         CBra 1
   9418         <
   9419         [\x00-/:-\xff] (neg)
   9420         [^>]
   9421         >
   9422         [^<]
   9423         Ket
   9424         CBra 2
   9425         \w*+
   9426         Ket
   9427         Ket
   9428         Ket
   9429         End
   9430 ------------------------------------------------------------------
   9431 
   9432 /(ab)(x(y)z(cd(*ACCEPT)))pq/B
   9433 ------------------------------------------------------------------
   9434         Bra
   9435         CBra 1
   9436         ab
   9437         Ket
   9438         CBra 2
   9439         x
   9440         CBra 3
   9441         y
   9442         Ket
   9443         z
   9444         CBra 4
   9445         cd
   9446         Close 4
   9447         Close 2
   9448         *ACCEPT
   9449         Ket
   9450         Ket
   9451         pq
   9452         Ket
   9453         End
   9454 ------------------------------------------------------------------
   9455 
   9456 /abc\K/aftertext,startchar
   9457     abcdef
   9458  0: abc
   9459     ^^^
   9460  0+ def
   9461     abcdef\=notempty_atstart
   9462  0: abc
   9463     ^^^
   9464  0+ def
   9465     xyzabcdef\=notempty_atstart
   9466  0: abc
   9467     ^^^
   9468  0+ def
   9469 \= Expect no match
   9470     abcdef\=notempty
   9471 No match
   9472     xyzabcdef\=notempty
   9473 No match
   9474 
   9475 /^(?:(?=abc)|abc\K)/aftertext,startchar
   9476     abcdef
   9477  0: 
   9478  0+ abcdef
   9479     abcdef\=notempty_atstart
   9480  0: abc
   9481     ^^^
   9482  0+ def
   9483 \= Expect no match
   9484     abcdef\=notempty
   9485 No match
   9486 
   9487 /a?b?/aftertext
   9488     xyz
   9489  0: 
   9490  0+ xyz
   9491     xyzabc
   9492  0: 
   9493  0+ xyzabc
   9494     xyzabc\=notempty
   9495  0: ab
   9496  0+ c
   9497     xyzabc\=notempty_atstart
   9498  0: 
   9499  0+ yzabc
   9500     xyz\=notempty_atstart
   9501  0: 
   9502  0+ yz
   9503 \= Expect no match
   9504     xyz\=notempty
   9505 No match
   9506 
   9507 /^a?b?/aftertext
   9508     xyz
   9509  0: 
   9510  0+ xyz
   9511     xyzabc
   9512  0: 
   9513  0+ xyzabc
   9514 \= Expect no match
   9515     xyzabc\=notempty
   9516 No match
   9517     xyzabc\=notempty_atstart
   9518 No match
   9519     xyz\=notempty_atstart
   9520 No match
   9521     xyz\=notempty
   9522 No match
   9523 
   9524 /^(?<name>a|b\g<name>c)/
   9525     aaaa
   9526  0: a
   9527  1: a
   9528     bacxxx
   9529  0: bac
   9530  1: bac
   9531     bbaccxxx
   9532  0: bbacc
   9533  1: bbacc
   9534     bbbacccxx
   9535  0: bbbaccc
   9536  1: bbbaccc
   9537 
   9538 /^(?<name>a|b\g'name'c)/
   9539     aaaa
   9540  0: a
   9541  1: a
   9542     bacxxx
   9543  0: bac
   9544  1: bac
   9545     bbaccxxx
   9546  0: bbacc
   9547  1: bbacc
   9548     bbbacccxx
   9549  0: bbbaccc
   9550  1: bbbaccc
   9551 
   9552 /^(a|b\g<1>c)/
   9553     aaaa
   9554  0: a
   9555  1: a
   9556     bacxxx
   9557  0: bac
   9558  1: bac
   9559     bbaccxxx
   9560  0: bbacc
   9561  1: bbacc
   9562     bbbacccxx
   9563  0: bbbaccc
   9564  1: bbbaccc
   9565 
   9566 /^(a|b\g'1'c)/
   9567     aaaa
   9568  0: a
   9569  1: a
   9570     bacxxx
   9571  0: bac
   9572  1: bac
   9573     bbaccxxx
   9574  0: bbacc
   9575  1: bbacc
   9576     bbbacccxx
   9577  0: bbbaccc
   9578  1: bbbaccc
   9579 
   9580 /^(a|b\g'-1'c)/
   9581     aaaa
   9582  0: a
   9583  1: a
   9584     bacxxx
   9585  0: bac
   9586  1: bac
   9587     bbaccxxx
   9588  0: bbacc
   9589  1: bbacc
   9590     bbbacccxx
   9591  0: bbbaccc
   9592  1: bbbaccc
   9593 
   9594 /(^(a|b\g<-1>c))/
   9595     aaaa
   9596  0: a
   9597  1: a
   9598  2: a
   9599     bacxxx
   9600  0: bac
   9601  1: bac
   9602  2: bac
   9603     bbaccxxx
   9604  0: bbacc
   9605  1: bbacc
   9606  2: bbacc
   9607     bbbacccxx
   9608  0: bbbaccc
   9609  1: bbbaccc
   9610  2: bbbaccc
   9611 
   9612 /(?-i:\g<name>)(?i:(?<name>a))/
   9613     XaaX
   9614  0: aa
   9615  1: a
   9616     XAAX
   9617  0: AA
   9618  1: A
   9619 
   9620 /(?i:\g<name>)(?-i:(?<name>a))/
   9621     XaaX
   9622  0: aa
   9623  1: a
   9624 \= Expect no match
   9625     XAAX
   9626 No match
   9627 
   9628 /(?-i:\g<+1>)(?i:(a))/
   9629     XaaX
   9630  0: aa
   9631  1: a
   9632     XAAX
   9633  0: AA
   9634  1: A
   9635 
   9636 /(?=(?<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>\})\}))\{/
   9637 
   9638 /(?<n>a|b|c)\g<n>*/
   9639    abc
   9640  0: abc
   9641  1: a
   9642    accccbbb
   9643  0: accccbbb
   9644  1: a
   9645 
   9646 /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
   9647     XYabcdY
   9648  0: XYabcdY
   9649  1: a
   9650  2: b
   9651  3: <unset>
   9652  4: <unset>
   9653  5: c
   9654  6: d
   9655  7: Y
   9656 
   9657 /(?<=b(?1)|zzz)(a)/
   9658     xbaax
   9659  0: a
   9660  1: a
   9661     xzzzax
   9662  0: a
   9663  1: a
   9664 
   9665 /(a)(?<=b\1)/
   9666 
   9667 /(a)(?<=b+(?1))/
   9668 Failed: error 125 at offset 3: lookbehind assertion is not fixed length
   9669 
   9670 /(a+)(?<=b(?1))/
   9671 Failed: error 125 at offset 4: lookbehind assertion is not fixed length
   9672 
   9673 /(a(?<=b(?1)))/
   9674 Failed: error 125 at offset 2: lookbehind assertion is not fixed length
   9675 
   9676 /(?<=b(?1))xyz/
   9677 Failed: error 115 at offset 8: reference to non-existent subpattern
   9678 
   9679 /(?<=b(?1))xyz(b+)pqrstuvew/
   9680 Failed: error 125 at offset 0: lookbehind assertion is not fixed length
   9681 
   9682 /(a|bc)\1/I
   9683 Capturing subpattern count = 1
   9684 Max back reference = 1
   9685 Starting code units: a b 
   9686 Subject length lower bound = 2
   9687 
   9688 /(a|bc)\1{2,3}/I
   9689 Capturing subpattern count = 1
   9690 Max back reference = 1
   9691 Starting code units: a b 
   9692 Subject length lower bound = 3
   9693 
   9694 /(a|bc)(?1)/I
   9695 Capturing subpattern count = 1
   9696 Starting code units: a b 
   9697 Subject length lower bound = 2
   9698 
   9699 /(a|b\1)(a|b\1)/I
   9700 Capturing subpattern count = 2
   9701 Max back reference = 1
   9702 Starting code units: a b 
   9703 Subject length lower bound = 2
   9704 
   9705 /(a|b\1){2}/I
   9706 Capturing subpattern count = 1
   9707 Max back reference = 1
   9708 Starting code units: a b 
   9709 Subject length lower bound = 2
   9710 
   9711 /(a|bbbb\1)(a|bbbb\1)/I
   9712 Capturing subpattern count = 2
   9713 Max back reference = 1
   9714 Starting code units: a b 
   9715 Subject length lower bound = 2
   9716 
   9717 /(a|bbbb\1){2}/I
   9718 Capturing subpattern count = 1
   9719 Max back reference = 1
   9720 Starting code units: a b 
   9721 Subject length lower bound = 2
   9722 
   9723 /^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]/I
   9724 Capturing subpattern count = 1
   9725 Compile options: <none>
   9726 Overall options: anchored
   9727 First code unit = 'F'
   9728 Last code unit = ':'
   9729 Subject length lower bound = 22
   9730 
   9731 /<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>/Iis
   9732 Capturing subpattern count = 11
   9733 Options: caseless dotall
   9734 First code unit = '<'
   9735 Last code unit = '>'
   9736 Subject length lower bound = 47
   9737 
   9738 "(?>.*/)foo"I
   9739 Capturing subpattern count = 0
   9740 Last code unit = 'o'
   9741 Subject length lower bound = 4
   9742 
   9743 /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /Ix
   9744 Capturing subpattern count = 0
   9745 Options: extended
   9746 Last code unit = '-'
   9747 Subject length lower bound = 8
   9748 
   9749 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/Ii
   9750 Capturing subpattern count = 1
   9751 Options: caseless
   9752 Starting code units: A B C a b c 
   9753 Subject length lower bound = 1
   9754 
   9755 /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/I
   9756 Capturing subpattern count = 0
   9757 Starting code units: c d 
   9758 Last code unit = 'b'
   9759 Subject length lower bound = 41
   9760 
   9761 /<a[\s]+href[\s]*=[\s]*          # find <a href=
   9762  ([\"\'])?                       # find single or double quote
   9763  (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
   9764                                  # quote, otherwise match up to next space
   9765 /Iisx
   9766 Capturing subpattern count = 3
   9767 Max back reference = 1
   9768 Options: caseless dotall extended
   9769 First code unit = '<'
   9770 Last code unit = '='
   9771 Subject length lower bound = 9
   9772 
   9773 /^(?!:)                       # colon disallowed at start
   9774   (?:                         # start of item
   9775     (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
   9776     (?(1)0 | () ) )           # if null previously matched, fail; else null
   9777     :                         # followed by colon
   9778   ){1,7}                      # end item; 1-7 of them required
   9779   [0-9a-f]{1,4} $             # final hex number at end of string
   9780   (?(1)|.)                    # check that there was an empty component
   9781   /Iix
   9782 Capturing subpattern count = 1
   9783 Max back reference = 1
   9784 Compile options: caseless extended
   9785 Overall options: anchored caseless extended
   9786 Last code unit = ':'
   9787 Subject length lower bound = 2
   9788 
   9789 /(?|(?<a>A)|(?<a>B))/I
   9790 Capturing subpattern count = 1
   9791 Named capturing subpatterns:
   9792   a   1
   9793 Starting code units: A B 
   9794 Subject length lower bound = 1
   9795     AB\=copy=a
   9796  0: A
   9797  1: A
   9798   C A (1) a (group 1)
   9799     BA\=copy=a
   9800  0: B
   9801  1: B
   9802   C B (1) a (group 1)
   9803 
   9804 /(?|(?<a>A)|(?<b>B))/
   9805 Failed: error 165 at offset 16: different names for subpatterns of the same number are not allowed
   9806 
   9807 /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
   9808     b(?<quote> (?<apostrophe>')|(?<realquote>")) )
   9809     (?('quote')[a-z]+|[0-9]+)/Ix,dupnames
   9810 Capturing subpattern count = 6
   9811 Max back reference = 4
   9812 Named capturing subpatterns:
   9813   apostrophe   2
   9814   apostrophe   5
   9815   quote        1
   9816   quote        4
   9817   realquote    3
   9818   realquote    6
   9819 Options: dupnames extended
   9820 Starting code units: a b 
   9821 Subject length lower bound = 3
   9822     a"aaaaa
   9823  0: a"aaaaa
   9824  1: "
   9825  2: <unset>
   9826  3: "
   9827     b"aaaaa
   9828  0: b"aaaaa
   9829  1: <unset>
   9830  2: <unset>
   9831  3: <unset>
   9832  4: "
   9833  5: <unset>
   9834  6: "
   9835 \= Expect no match
   9836     b"11111
   9837 No match
   9838     a"11111
   9839 No match
   9840 
   9841 /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/IBx,dupnames
   9842 ------------------------------------------------------------------
   9843         Bra
   9844         ^
   9845         Bra
   9846         CBra 1
   9847         a
   9848         Ket
   9849         CBra 2
   9850         b
   9851         Ket
   9852         CBra 3
   9853         c
   9854         Ket
   9855         CBra 4
   9856         d
   9857         Ket
   9858         Alt
   9859         CBra 1
   9860         e
   9861         Ket
   9862         Ket
   9863         Cond
   9864         Cond ref <D>2
   9865         X
   9866         Alt
   9867         Y
   9868         Ket
   9869         Ket
   9870         End
   9871 ------------------------------------------------------------------
   9872 Capturing subpattern count = 4
   9873 Max back reference = 4
   9874 Named capturing subpatterns:
   9875   D   4
   9876   D   1
   9877 Compile options: dupnames extended
   9878 Overall options: anchored dupnames extended
   9879 Starting code units: a e 
   9880 Subject length lower bound = 2
   9881     abcdX
   9882  0: abcdX
   9883  1: a
   9884  2: b
   9885  3: c
   9886  4: d
   9887     eX
   9888  0: eX
   9889  1: e
   9890 \= Expect no match
   9891     abcdY
   9892 No match
   9893     ey
   9894 No match
   9895 
   9896 /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/IBx,dupnames
   9897 ------------------------------------------------------------------
   9898         Bra
   9899         CBra 1
   9900         a
   9901         Ket
   9902         CBra 2
   9903         b
   9904         Ket
   9905         CBra 3
   9906         c
   9907         Ket
   9908         CBra 4
   9909         d
   9910         Cond
   9911         Cond recurse <A>2
   9912         $
   9913         Alt
   9914         Recurse
   9915         Ket
   9916         Ket
   9917         Ket
   9918         End
   9919 ------------------------------------------------------------------
   9920 Capturing subpattern count = 4
   9921 Max back reference = 4
   9922 Named capturing subpatterns:
   9923   A   1
   9924   A   4
   9925 Options: dupnames extended
   9926 First code unit = 'a'
   9927 Last code unit = 'd'
   9928 Subject length lower bound = 4
   9929     abcdd
   9930  0: abcdd
   9931  1: a
   9932  2: b
   9933  3: c
   9934  4: dd
   9935 \= Expect no match
   9936     abcdde
   9937 No match
   9938 
   9939 /abcd*/
   9940     xxxxabcd\=ps
   9941  0: abcd
   9942     xxxxabcd\=ph
   9943 Partial match: abcd
   9944 
   9945 /abcd*/i
   9946     xxxxabcd\=ps
   9947  0: abcd
   9948     xxxxabcd\=ph
   9949 Partial match: abcd
   9950     XXXXABCD\=ps
   9951  0: ABCD
   9952     XXXXABCD\=ph
   9953 Partial match: ABCD
   9954 
   9955 /abc\d*/
   9956     xxxxabc1\=ps
   9957  0: abc1
   9958     xxxxabc1\=ph
   9959 Partial match: abc1
   9960 
   9961 /(a)bc\1*/
   9962     xxxxabca\=ps
   9963  0: abca
   9964  1: a
   9965     xxxxabca\=ph
   9966 Partial match: abca
   9967 
   9968 /abc[de]*/
   9969     xxxxabcde\=ps
   9970  0: abcde
   9971     xxxxabcde\=ph
   9972 Partial match: abcde
   9973 
   9974 /(\3)(\1)(a)/alt_bsux,allow_empty_class,match_unset_backref,dupnames
   9975     cat
   9976  0: a
   9977  1: 
   9978  2: 
   9979  3: a
   9980 
   9981 /(\3)(\1)(a)/I,alt_bsux,allow_empty_class,match_unset_backref,dupnames
   9982 Capturing subpattern count = 3
   9983 Max back reference = 3
   9984 Options: alt_bsux allow_empty_class dupnames match_unset_backref
   9985 Last code unit = 'a'
   9986 Subject length lower bound = 1
   9987     cat
   9988  0: a
   9989  1: 
   9990  2: 
   9991  3: a
   9992 
   9993 /(\3)(\1)(a)/I
   9994 Capturing subpattern count = 3
   9995 Max back reference = 3
   9996 Last code unit = 'a'
   9997 Subject length lower bound = 3
   9998 \= Expect no match
   9999     cat
   10000 No match
   10001 
   10002 /i(?(DEFINE)(?<s>a))/I
   10003 Capturing subpattern count = 1
   10004 Named capturing subpatterns:
   10005   s   1
   10006 First code unit = 'i'
   10007 Subject length lower bound = 1
   10008     i
   10009  0: i
   10010 
   10011 /()i(?(1)a)/I
   10012 Capturing subpattern count = 1
   10013 Max back reference = 1
   10014 First code unit = 'i'
   10015 Subject length lower bound = 1
   10016     ia
   10017  0: ia
   10018  1: 
   10019 
   10020 /(?i)a(?-i)b|c/B
   10021 ------------------------------------------------------------------
   10022         Bra
   10023      /i a
   10024         b
   10025         Alt
   10026         c
   10027         Ket
   10028         End
   10029 ------------------------------------------------------------------
   10030     XabX
   10031  0: ab
   10032     XAbX
   10033  0: Ab
   10034     CcC
   10035  0: c
   10036 \= Expect no match
   10037     XABX
   10038 No match
   10039 
   10040 /(?i)a(?s)b|c/B
   10041 ------------------------------------------------------------------
   10042         Bra
   10043      /i ab
   10044         Alt
   10045      /i c
   10046         Ket
   10047         End
   10048 ------------------------------------------------------------------
   10049 
   10050 /(?i)a(?s-i)b|c/B
   10051 ------------------------------------------------------------------
   10052         Bra
   10053      /i a
   10054         b
   10055         Alt
   10056         c
   10057         Ket
   10058         End
   10059 ------------------------------------------------------------------
   10060 
   10061 /^(ab(c\1)d|x){2}$/B
   10062 ------------------------------------------------------------------
   10063         Bra
   10064         ^
   10065         Once
   10066         CBra 1
   10067         ab
   10068         CBra 2
   10069         c
   10070         \1
   10071         Ket
   10072         d
   10073         Alt
   10074         x
   10075         Ket
   10076         Ket
   10077         Once
   10078         CBra 1
   10079         ab
   10080         CBra 2
   10081         c
   10082         \1
   10083         Ket
   10084         d
   10085         Alt
   10086         x
   10087         Ket
   10088         Ket
   10089         $
   10090         Ket
   10091         End
   10092 ------------------------------------------------------------------
   10093     xabcxd
   10094  0: xabcxd
   10095  1: abcxd
   10096  2: cx
   10097 
   10098 /^(?&t)*+(?(DEFINE)(?<t>.))$/B
   10099 ------------------------------------------------------------------
   10100         Bra
   10101         ^
   10102         Braposzero
   10103         SBraPos
   10104         Recurse
   10105         KetRpos
   10106         Cond
   10107         Cond false
   10108         CBra 1
   10109         Any
   10110         Ket
   10111         Ket
   10112         $
   10113         Ket
   10114         End
   10115 ------------------------------------------------------------------
   10116 
   10117 /^(?&t)*(?(DEFINE)(?<t>.))$/B
   10118 ------------------------------------------------------------------
   10119         Bra
   10120         ^
   10121         Brazero
   10122         SBra
   10123         Recurse
   10124         KetRmax
   10125         Cond
   10126         Cond false
   10127         CBra 1
   10128         Any
   10129         Ket
   10130         Ket
   10131         $
   10132         Ket
   10133         End
   10134 ------------------------------------------------------------------
   10135 
   10136 # This one is here because Perl gives the match as "b" rather than "ab". I
   10137 # believe this to be a Perl bug.
   10138 
   10139 /(?>a\Kb)z|(ab)/
   10140     ab\=startchar
   10141  0: ab
   10142  1: ab
   10143 
   10144 /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
   10145     abcd
   10146  0: 
   10147  1: 
   10148  2: 
   10149     0abc
   10150  0: 0
   10151  1: 0
   10152  2: 0
   10153 
   10154 /abc(*MARK:)pqr/
   10155 Failed: error 166 at offset 10: (*MARK) must have an argument
   10156 
   10157 /abc(*:)pqr/
   10158 Failed: error 166 at offset 6: (*MARK) must have an argument
   10159 
   10160 /(*COMMIT:X)/B
   10161 ------------------------------------------------------------------
   10162         Bra
   10163         *COMMIT X
   10164         Ket
   10165         End
   10166 ------------------------------------------------------------------
   10167 
   10168 # This should, and does, fail. In Perl, it does not, which I think is a
   10169 # bug because replacing the B in the pattern by (B|D) does make it fail.
   10170 # Turning off Perl's optimization by inserting (??{""}) also makes it fail.
   10171 
   10172 /A(*COMMIT)B/aftertext,mark
   10173 \= Expect no match
   10174     ACABX
   10175 No match
   10176 
   10177 # These should be different, but in Perl they are not, which I think
   10178 # is a bug in Perl.
   10179 
   10180 /A(*THEN)B|A(*THEN)C/mark
   10181     AC
   10182  0: AC
   10183 
   10184 /A(*PRUNE)B|A(*PRUNE)C/mark
   10185 \= Expect no match
   10186     AC
   10187 No match
   10188 
   10189 # Mark names can be duplicated. Perl doesn't give a mark for this one,
   10190 # though PCRE2 does.
   10191 
   10192 /^A(*:A)B|^X(*:A)Y/mark
   10193 \= Expect no match
   10194     XAQQ
   10195 No match, mark = A
   10196 
   10197 # COMMIT at the start of a pattern should be the same as an anchor. Perl
   10198 # optimizations defeat this. So does the PCRE2 optimization unless we disable
   10199 # it.
   10200 
   10201 /(*COMMIT)ABC/
   10202     ABCDEFG
   10203  0: ABC
   10204 
   10205 /(*COMMIT)ABC/no_start_optimize
   10206 \= Expect no match
   10207     DEFGABC
   10208 No match
   10209 
   10210 /^(ab (c+(*THEN)cd) | xyz)/x
   10211 \= Expect no match
   10212     abcccd
   10213 No match
   10214 
   10215 /^(ab (c+(*PRUNE)cd) | xyz)/x
   10216 \= Expect no match
   10217     abcccd
   10218 No match
   10219 
   10220 /^(ab (c+(*FAIL)cd) | xyz)/x
   10221 \= Expect no match
   10222     abcccd
   10223 No match
   10224 
   10225 # Perl gets some of these wrong
   10226 
   10227 /(?>.(*ACCEPT))*?5/
   10228     abcde
   10229  0: a
   10230 
   10231 /(.(*ACCEPT))*?5/
   10232     abcde
   10233  0: a
   10234  1: a
   10235 
   10236 /(.(*ACCEPT))5/
   10237     abcde
   10238  0: a
   10239  1: a
   10240 
   10241 /(.(*ACCEPT))*5/
   10242     abcde
   10243  0: a
   10244  1: a
   10245 
   10246 /A\NB./B
   10247 ------------------------------------------------------------------
   10248         Bra
   10249         A
   10250         Any
   10251         B
   10252         Any
   10253         Ket
   10254         End
   10255 ------------------------------------------------------------------
   10256     ACBD
   10257  0: ACBD
   10258 \= Expect no match
   10259     A\nB
   10260 No match
   10261     ACB\n
   10262 No match
   10263 
   10264 /A\NB./Bs
   10265 ------------------------------------------------------------------
   10266         Bra
   10267         A
   10268         Any
   10269         B
   10270         AllAny
   10271         Ket
   10272         End
   10273 ------------------------------------------------------------------
   10274     ACBD
   10275  0: ACBD
   10276     ACB\n
   10277  0: ACB\x0a
   10278 \= Expect no match
   10279     A\nB
   10280 No match
   10281 
   10282 /A\NB/newline=crlf
   10283     A\nB
   10284  0: A\x0aB
   10285     A\rB
   10286  0: A\x0dB
   10287 \= Expect no match
   10288     A\r\nB
   10289 No match
   10290 
   10291 /\R+b/B
   10292 ------------------------------------------------------------------
   10293         Bra
   10294         \R++
   10295         b
   10296         Ket
   10297         End
   10298 ------------------------------------------------------------------
   10299 
   10300 /\R+\n/B
   10301 ------------------------------------------------------------------
   10302         Bra
   10303         \R+
   10304         \x0a
   10305         Ket
   10306         End
   10307 ------------------------------------------------------------------
   10308 
   10309 /\R+\d/B
   10310 ------------------------------------------------------------------
   10311         Bra
   10312         \R++
   10313         \d
   10314         Ket
   10315         End
   10316 ------------------------------------------------------------------
   10317 
   10318 /\d*\R/B
   10319 ------------------------------------------------------------------
   10320         Bra
   10321         \d*+
   10322         \R
   10323         Ket
   10324         End
   10325 ------------------------------------------------------------------
   10326 
   10327 /\s*\R/B
   10328 ------------------------------------------------------------------
   10329         Bra
   10330         \s*
   10331         \R
   10332         Ket
   10333         End
   10334 ------------------------------------------------------------------
   10335     \x20\x0a
   10336  0:  \x0a
   10337     \x20\x0d
   10338  0:  \x0d
   10339     \x20\x0d\x0a
   10340  0:  \x0d\x0a
   10341 
   10342 /\S*\R/B
   10343 ------------------------------------------------------------------
   10344         Bra
   10345         \S*+
   10346         \R
   10347         Ket
   10348         End
   10349 ------------------------------------------------------------------
   10350     a\x0a
   10351  0: a\x0a
   10352 
   10353 /X\h*\R/B
   10354 ------------------------------------------------------------------
   10355         Bra
   10356         X
   10357         \h*+
   10358         \R
   10359         Ket
   10360         End
   10361 ------------------------------------------------------------------
   10362     X\x20\x0a
   10363  0: X \x0a
   10364 
   10365 /X\H*\R/B
   10366 ------------------------------------------------------------------
   10367         Bra
   10368         X
   10369         \H*
   10370         \R
   10371         Ket
   10372         End
   10373 ------------------------------------------------------------------
   10374     X\x0d\x0a
   10375  0: X\x0d\x0a
   10376 
   10377 /X\H+\R/B
   10378 ------------------------------------------------------------------
   10379         Bra
   10380         X
   10381         \H+
   10382         \R
   10383         Ket
   10384         End
   10385 ------------------------------------------------------------------
   10386     X\x0d\x0a
   10387  0: X\x0d\x0a
   10388 
   10389 /X\H++\R/B
   10390 ------------------------------------------------------------------
   10391         Bra
   10392         X
   10393         \H++
   10394         \R
   10395         Ket
   10396         End
   10397 ------------------------------------------------------------------
   10398 \= Expect no match
   10399     X\x0d\x0a
   10400 No match
   10401 
   10402 /(?<=abc)def/
   10403     abc\=ph
   10404 Partial match: abc
   10405                <<<
   10406 
   10407 /abc$/
   10408     abc
   10409  0: abc
   10410     abc\=ps
   10411  0: abc
   10412     abc\=ph
   10413 Partial match: abc
   10414 
   10415 /abc$/m
   10416     abc
   10417  0: abc
   10418     abc\n
   10419  0: abc
   10420     abc\=ph
   10421 Partial match: abc
   10422     abc\n\=ph
   10423  0: abc
   10424     abc\=ps
   10425  0: abc
   10426     abc\n\=ps
   10427  0: abc
   10428 
   10429 /abc\z/
   10430     abc
   10431  0: abc
   10432     abc\=ps
   10433  0: abc
   10434     abc\=ph
   10435 Partial match: abc
   10436 
   10437 /abc\Z/
   10438     abc
   10439  0: abc
   10440     abc\=ps
   10441  0: abc
   10442     abc\=ph
   10443 Partial match: abc
   10444 
   10445 /abc\b/
   10446     abc
   10447  0: abc
   10448     abc\=ps
   10449  0: abc
   10450     abc\=ph
   10451 Partial match: abc
   10452 
   10453 /abc\B/
   10454     abc\=ps
   10455 Partial match: abc
   10456     abc\=ph
   10457 Partial match: abc
   10458 \= Expect no match
   10459     abc
   10460 No match
   10461 
   10462 /.+/
   10463 \= Bad offsets
   10464     abc\=offset=4
   10465 Failed: error -33: bad offset value
   10466     abc\=offset=-4
   10467 ** Invalid value in 'offset=-4'
   10468 \= Valid data
   10469     abc\=offset=0
   10470  0: abc
   10471     abc\=offset=1
   10472  0: bc
   10473     abc\=offset=2
   10474  0: c
   10475 \= Expect no match
   10476     abc\=offset=3
   10477 No match
   10478 
   10479 /^\c/
   10480 Failed: error 168 at offset 3: \c must be followed by a printable ASCII character
   10481 
   10482 /(?P<abn>(?P=abn)xxx)/B
   10483 ------------------------------------------------------------------
   10484         Bra
   10485         Once
   10486         CBra 1
   10487         \1
   10488         xxx
   10489         Ket
   10490         Ket
   10491         Ket
   10492         End
   10493 ------------------------------------------------------------------
   10494 
   10495 /(a\1z)/B
   10496 ------------------------------------------------------------------
   10497         Bra
   10498         Once
   10499         CBra 1
   10500         a
   10501         \1
   10502         z
   10503         Ket
   10504         Ket
   10505         Ket
   10506         End
   10507 ------------------------------------------------------------------
   10508 
   10509 /(?P<abn>(?P=abn)(?<badstufxxx)/B
   10510 Failed: error 142 at offset 29: syntax error in subpattern name (missing terminator)
   10511 
   10512 /(?P<abn>(?P=axn)xxx)/B
   10513 Failed: error 115 at offset 12: reference to non-existent subpattern
   10514 
   10515 /(?P<abn>(?P=axn)xxx)(?<axn>yy)/B
   10516 ------------------------------------------------------------------
   10517         Bra
   10518         CBra 1
   10519         \2
   10520         xxx
   10521         Ket
   10522         CBra 2
   10523         yy
   10524         Ket
   10525         Ket
   10526         End
   10527 ------------------------------------------------------------------
   10528 
   10529 # These tests are here because Perl gets the first one wrong.
   10530 
   10531 /(\R*)(.)/s
   10532     \r\n
   10533  0: \x0d
   10534  1: 
   10535  2: \x0d
   10536     \r\r\n\n\r
   10537  0: \x0d\x0d\x0a\x0a\x0d
   10538  1: \x0d\x0d\x0a\x0a
   10539  2: \x0d
   10540     \r\r\n\n\r\n
   10541  0: \x0d\x0d\x0a\x0a\x0d
   10542  1: \x0d\x0d\x0a\x0a
   10543  2: \x0d
   10544 
   10545 /(\R)*(.)/s
   10546     \r\n
   10547  0: \x0d
   10548  1: <unset>
   10549  2: \x0d
   10550     \r\r\n\n\r
   10551  0: \x0d\x0d\x0a\x0a\x0d
   10552  1: \x0a
   10553  2: \x0d
   10554     \r\r\n\n\r\n
   10555  0: \x0d\x0d\x0a\x0a\x0d
   10556  1: \x0a
   10557  2: \x0d
   10558 
   10559 /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
   10560     \r\n
   10561  0: \x0d
   10562  1: 
   10563  2: \x0d
   10564     \r\r\n\n\r
   10565  0: \x0d\x0d\x0a\x0a\x0d
   10566  1: \x0d\x0d\x0a\x0a
   10567  2: \x0d
   10568     \r\r\n\n\r\n
   10569  0: \x0d\x0d\x0a\x0a\x0d
   10570  1: \x0d\x0d\x0a\x0a
   10571  2: \x0d
   10572 
   10573 # -------------
   10574 
   10575 /^abc$/B
   10576 ------------------------------------------------------------------
   10577         Bra
   10578         ^
   10579         abc
   10580         $
   10581         Ket
   10582         End
   10583 ------------------------------------------------------------------
   10584 
   10585 /^abc$/Bm
   10586 ------------------------------------------------------------------
   10587         Bra
   10588      /m ^
   10589         abc
   10590      /m $
   10591         Ket
   10592         End
   10593 ------------------------------------------------------------------
   10594 
   10595 /^(a)*+(\w)/
   10596     aaaaX
   10597  0: aaaaX
   10598  1: a
   10599  2: X
   10600 \= Expect no match
   10601     aaaa
   10602 No match
   10603 
   10604 /^(?:a)*+(\w)/
   10605     aaaaX
   10606  0: aaaaX
   10607  1: X
   10608 \= Expect no match
   10609     aaaa
   10610 No match
   10611 
   10612 /(a)++1234/IB
   10613 ------------------------------------------------------------------
   10614         Bra
   10615         CBraPos 1
   10616         a
   10617         KetRpos
   10618         1234
   10619         Ket
   10620         End
   10621 ------------------------------------------------------------------
   10622 Capturing subpattern count = 1
   10623 First code unit = 'a'
   10624 Last code unit = '4'
   10625 Subject length lower bound = 5
   10626 
   10627 /([abc])++1234/I
   10628 Capturing subpattern count = 1
   10629 Starting code units: a b c 
   10630 Last code unit = '4'
   10631 Subject length lower bound = 5
   10632 
   10633 /(?<=(abc)+)X/
   10634 Failed: error 125 at offset 0: lookbehind assertion is not fixed length
   10635 
   10636 /(^ab)/I
   10637 Capturing subpattern count = 1
   10638 Compile options: <none>
   10639 Overall options: anchored
   10640 First code unit = 'a'
   10641 Subject length lower bound = 2
   10642 
   10643 /(^ab)++/I
   10644 Capturing subpattern count = 1
   10645 Compile options: <none>
   10646 Overall options: anchored
   10647 First code unit = 'a'
   10648 Subject length lower bound = 2
   10649 
   10650 /(^ab|^)+/I
   10651 Capturing subpattern count = 1
   10652 May match empty string
   10653 Compile options: <none>
   10654 Overall options: anchored
   10655 Subject length lower bound = 0
   10656 
   10657 /(^ab|^)++/I
   10658 Capturing subpattern count = 1
   10659 May match empty string
   10660 Compile options: <none>
   10661 Overall options: anchored
   10662 Subject length lower bound = 0
   10663 
   10664 /(?:^ab)/I
   10665 Capturing subpattern count = 0
   10666 Compile options: <none>
   10667 Overall options: anchored
   10668 First code unit = 'a'
   10669 Subject length lower bound = 2
   10670 
   10671 /(?:^ab)++/I
   10672 Capturing subpattern count = 0
   10673 Compile options: <none>
   10674 Overall options: anchored
   10675 First code unit = 'a'
   10676 Subject length lower bound = 2
   10677 
   10678 /(?:^ab|^)+/I
   10679 Capturing subpattern count = 0
   10680 May match empty string
   10681 Compile options: <none>
   10682 Overall options: anchored
   10683 Subject length lower bound = 0
   10684 
   10685 /(?:^ab|^)++/I
   10686 Capturing subpattern count = 0
   10687 May match empty string
   10688 Compile options: <none>
   10689 Overall options: anchored
   10690 Subject length lower bound = 0
   10691 
   10692 /(.*ab)/I
   10693 Capturing subpattern count = 1
   10694 First code unit at start or follows newline
   10695 Last code unit = 'b'
   10696 Subject length lower bound = 2
   10697 
   10698 /(.*ab)++/I
   10699 Capturing subpattern count = 1
   10700 First code unit at start or follows newline
   10701 Last code unit = 'b'
   10702 Subject length lower bound = 2
   10703 
   10704 /(.*ab|.*)+/I
   10705 Capturing subpattern count = 1
   10706 May match empty string
   10707 First code unit at start or follows newline
   10708 Subject length lower bound = 0
   10709 
   10710 /(.*ab|.*)++/I
   10711 Capturing subpattern count = 1
   10712 May match empty string
   10713 First code unit at start or follows newline
   10714 Subject length lower bound = 0
   10715 
   10716 /(?:.*ab)/I
   10717 Capturing subpattern count = 0
   10718 First code unit at start or follows newline
   10719 Last code unit = 'b'
   10720 Subject length lower bound = 2
   10721 
   10722 /(?:.*ab)++/I
   10723 Capturing subpattern count = 0
   10724 First code unit at start or follows newline
   10725 Last code unit = 'b'
   10726 Subject length lower bound = 2
   10727 
   10728 /(?:.*ab|.*)+/I
   10729 Capturing subpattern count = 0
   10730 May match empty string
   10731 First code unit at start or follows newline
   10732 Subject length lower bound = 0
   10733 
   10734 /(?:.*ab|.*)++/I
   10735 Capturing subpattern count = 0
   10736 May match empty string
   10737 First code unit at start or follows newline
   10738 Subject length lower bound = 0
   10739 
   10740 /(?=a)[bcd]/I
   10741 Capturing subpattern count = 0
   10742 First code unit = 'a'
   10743 Subject length lower bound = 1
   10744 
   10745 /((?=a))[bcd]/I
   10746 Capturing subpattern count = 1
   10747 First code unit = 'a'
   10748 Subject length lower bound = 1
   10749 
   10750 /((?=a))+[bcd]/I
   10751 Capturing subpattern count = 1
   10752 First code unit = 'a'
   10753 Subject length lower bound = 1
   10754 
   10755 /((?=a))++[bcd]/I
   10756 Capturing subpattern count = 1
   10757 First code unit = 'a'
   10758 Subject length lower bound = 1
   10759 
   10760 /(?=a+)[bcd]/Ii
   10761 Capturing subpattern count = 0
   10762 Options: caseless
   10763 First code unit = 'a' (caseless)
   10764 Subject length lower bound = 1
   10765 
   10766 /(?=a+?)[bcd]/Ii
   10767 Capturing subpattern count = 0
   10768 Options: caseless
   10769 First code unit = 'a' (caseless)
   10770 Subject length lower bound = 1
   10771 
   10772 /(?=a++)[bcd]/Ii
   10773 Capturing subpattern count = 0
   10774 Options: caseless
   10775 First code unit = 'a' (caseless)
   10776 Subject length lower bound = 1
   10777 
   10778 /(?=a{3})[bcd]/Ii
   10779 Capturing subpattern count = 0
   10780 Options: caseless
   10781 First code unit = 'a' (caseless)
   10782 Last code unit = 'a' (caseless)
   10783 Subject length lower bound = 1
   10784 
   10785 /(abc)\1+/
   10786 
   10787 # Perl doesn't get these right IMO (the 3rd is PCRE2-specific)
   10788 
   10789 /(?1)(?:(b(*ACCEPT))){0}/
   10790     b
   10791  0: b
   10792 
   10793 /(?1)(?:(b(*ACCEPT))){0}c/
   10794     bc
   10795  0: bc
   10796 \= Expect no match
   10797     b
   10798 No match
   10799 
   10800 /(?1)(?:((*ACCEPT))){0}c/
   10801     c
   10802  0: c
   10803     c\=notempty
   10804  0: c
   10805 
   10806 /^.*?(?(?=a)a|b(*THEN)c)/
   10807 \= Expect no match
   10808     ba
   10809 No match
   10810 
   10811 /^.*?(?(?=a)a|bc)/
   10812     ba
   10813  0: ba
   10814 
   10815 /^.*?(?(?=a)a(*THEN)b|c)/
   10816 \= Expect no match
   10817     ac
   10818 No match
   10819 
   10820 /^.*?(?(?=a)a(*THEN)b)c/
   10821 \= Expect no match
   10822     ac
   10823 No match
   10824 
   10825 /^.*?(a(*THEN)b)c/
   10826 \= Expect no match
   10827     aabc
   10828 No match
   10829 
   10830 /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
   10831     aabc
   10832  0: aabc
   10833 
   10834 /^.*?(a(*THEN)b|z)c/
   10835     aabc
   10836  0: aabc
   10837  1: ab
   10838 
   10839 /^.*?(z|a(*THEN)b)c/
   10840     aabc
   10841  0: aabc
   10842  1: ab
   10843 
   10844 # These are here because they are not Perl-compatible; the studying means the
   10845 # mark is not seen.
   10846 
   10847 /(*MARK:A)(*SKIP:B)(C|X)/mark
   10848     C
   10849  0: C
   10850  1: C
   10851 MK: A
   10852 \= Expect no match
   10853     D
   10854 No match, mark = A
   10855 
   10856 /(*:A)A+(*SKIP:A)(B|Z)/mark
   10857 \= Expect no match
   10858     AAAC
   10859 No match, mark = A
   10860 
   10861 # ----------------------------
   10862 
   10863 "(?=a*(*ACCEPT)b)c"
   10864     c
   10865  0: c
   10866     c\=notempty
   10867  0: c
   10868 
   10869 /(?1)c(?(DEFINE)((*ACCEPT)b))/
   10870     c
   10871  0: c
   10872     c\=notempty
   10873  0: c
   10874 
   10875 /(?>(*ACCEPT)b)c/
   10876     c
   10877  0: 
   10878 \= Expect no match
   10879     c\=notempty
   10880 No match
   10881 
   10882 /(?:(?>(a)))+a%/allaftertext
   10883     %aa%
   10884  0: aa%
   10885  0+ 
   10886  1: a
   10887  1+ a%
   10888 
   10889 /(a)b|ac/allaftertext
   10890     ac\=ovector=1
   10891  0: ac
   10892  0+ 
   10893 
   10894 /(a)(b)x|abc/allaftertext
   10895      abc\=ovector=2
   10896  0: abc
   10897  0+ 
   10898 
   10899 /(a)bc|(a)(b)\2/
   10900     abc\=ovector=1
   10901 Matched, but too many substrings
   10902  0: abc
   10903     abc\=ovector=2
   10904  0: abc
   10905  1: a
   10906     aba\=ovector=1
   10907 Matched, but too many substrings
   10908  0: aba
   10909     aba\=ovector=2
   10910 Matched, but too many substrings
   10911  0: aba
   10912  1: <unset>
   10913     aba\=ovector=3
   10914 Matched, but too many substrings
   10915  0: aba
   10916  1: <unset>
   10917  2: a
   10918     aba\=ovector=4
   10919  0: aba
   10920  1: <unset>
   10921  2: a
   10922  3: b
   10923 
   10924 /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/I
   10925 Capturing subpattern count = 2
   10926 May match empty string
   10927 Subject length lower bound = 0
   10928 
   10929 /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/I
   10930 Capturing subpattern count = 2
   10931 Starting code units: a b 
   10932 Subject length lower bound = 3
   10933 
   10934 /(a(?2)|b)(b(?1)|a)(?1)(?2)/I
   10935 Capturing subpattern count = 2
   10936 Starting code units: a b 
   10937 Subject length lower bound = 4
   10938 
   10939 /(abc)(?1)/I
   10940 Capturing subpattern count = 1
   10941 First code unit = 'a'
   10942 Last code unit = 'c'
   10943 Subject length lower bound = 6
   10944 
   10945 /(?:(foo)|(bar)|(baz))X/allcaptures
   10946     bazfooX
   10947  0: fooX
   10948  1: foo
   10949  2: <unset>
   10950  3: <unset>
   10951     foobazbarX
   10952  0: barX
   10953  1: <unset>
   10954  2: bar
   10955  3: <unset>
   10956     barfooX
   10957  0: fooX
   10958  1: foo
   10959  2: <unset>
   10960  3: <unset>
   10961     bazX
   10962  0: bazX
   10963  1: <unset>
   10964  2: <unset>
   10965  3: baz
   10966     foobarbazX
   10967  0: bazX
   10968  1: <unset>
   10969  2: <unset>
   10970  3: baz
   10971     bazfooX\=ovector=0
   10972  0: fooX
   10973  1: foo
   10974  2: <unset>
   10975  3: <unset>
   10976     bazfooX\=ovector=1
   10977 Matched, but too many substrings
   10978  0: fooX
   10979     bazfooX\=ovector=2
   10980  0: fooX
   10981  1: foo
   10982     bazfooX\=ovector=3
   10983  0: fooX
   10984  1: foo
   10985  2: <unset>
   10986 
   10987 /(?=abc){3}abc/B
   10988 ------------------------------------------------------------------
   10989         Bra
   10990         Assert
   10991         abc
   10992         Ket
   10993         abc
   10994         Ket
   10995         End
   10996 ------------------------------------------------------------------
   10997 
   10998 /(?=abc)+abc/B
   10999 ------------------------------------------------------------------
   11000         Bra
   11001         Assert
   11002         abc
   11003         Ket
   11004         abc
   11005         Ket
   11006         End
   11007 ------------------------------------------------------------------
   11008 
   11009 /(?=abc)++abc/B
   11010 ------------------------------------------------------------------
   11011         Bra
   11012         Assert
   11013         abc
   11014         Ket
   11015         abc
   11016         Ket
   11017         End
   11018 ------------------------------------------------------------------
   11019 
   11020 /(?=abc){0}xyz/B
   11021 ------------------------------------------------------------------
   11022         Bra
   11023         Skip zero
   11024         Assert
   11025         abc
   11026         Ket
   11027         xyz
   11028         Ket
   11029         End
   11030 ------------------------------------------------------------------
   11031 
   11032 /(?=(a))?./B
   11033 ------------------------------------------------------------------
   11034         Bra
   11035         Brazero
   11036         Assert
   11037         CBra 1
   11038         a
   11039         Ket
   11040         Ket
   11041         Any
   11042         Ket
   11043         End
   11044 ------------------------------------------------------------------
   11045 
   11046 /(?=(a))??./B
   11047 ------------------------------------------------------------------
   11048         Bra
   11049         Braminzero
   11050         Assert
   11051         CBra 1
   11052         a
   11053         Ket
   11054         Ket
   11055         Any
   11056         Ket
   11057         End
   11058 ------------------------------------------------------------------
   11059 
   11060 /^(?=(a)){0}b(?1)/B
   11061 ------------------------------------------------------------------
   11062         Bra
   11063         ^
   11064         Skip zero
   11065         Assert
   11066         CBra 1
   11067         a
   11068         Ket
   11069         Ket
   11070         b
   11071         Recurse
   11072         Ket
   11073         End
   11074 ------------------------------------------------------------------
   11075 
   11076 /(?(DEFINE)(a))?b(?1)/B
   11077 ------------------------------------------------------------------
   11078         Bra
   11079         Cond
   11080         Cond false
   11081         CBra 1
   11082         a
   11083         Ket
   11084         Ket
   11085         b
   11086         Recurse
   11087         Ket
   11088         End
   11089 ------------------------------------------------------------------
   11090 
   11091 /^(?=(?1))?[az]([abc])d/B
   11092 ------------------------------------------------------------------
   11093         Bra
   11094         ^
   11095         Brazero
   11096         Assert
   11097         Recurse
   11098         Ket
   11099         [az]
   11100         CBra 1
   11101         [a-c]
   11102         Ket
   11103         d
   11104         Ket
   11105         End
   11106 ------------------------------------------------------------------
   11107 
   11108 /^(?!a){0}\w+/B
   11109 ------------------------------------------------------------------
   11110         Bra
   11111         ^
   11112         Skip zero
   11113         Assert not
   11114         a
   11115         Ket
   11116         \w++
   11117         Ket
   11118         End
   11119 ------------------------------------------------------------------
   11120 
   11121 /(?<=(abc))?xyz/B
   11122 ------------------------------------------------------------------
   11123         Bra
   11124         Brazero
   11125         AssertB
   11126         Reverse
   11127         CBra 1
   11128         abc
   11129         Ket
   11130         Ket
   11131         xyz
   11132         Ket
   11133         End
   11134 ------------------------------------------------------------------
   11135 
   11136 /[:a[:abc]b:]/B
   11137 ------------------------------------------------------------------
   11138         Bra
   11139         [:[a-c]
   11140         b:]
   11141         Ket
   11142         End
   11143 ------------------------------------------------------------------
   11144 
   11145 /^(a(*:A)(d|e(*:B))z|aeq)/auto_callout
   11146     adz
   11147 --->adz
   11148  +0 ^       ^
   11149  +1 ^       (
   11150  +2 ^       a
   11151  +3 ^^      (*:A)
   11152  +8 ^^      (
   11153 Latest Mark: A
   11154  +9 ^^      d
   11155 +10 ^ ^     |
   11156 +18 ^ ^     z
   11157 +19 ^  ^    |
   11158 +24 ^  ^    End of pattern
   11159  0: adz
   11160  1: adz
   11161  2: d
   11162     aez
   11163 --->aez
   11164  +0 ^       ^
   11165  +1 ^       (
   11166  +2 ^       a
   11167  +3 ^^      (*:A)
   11168  +8 ^^      (
   11169 Latest Mark: A
   11170  +9 ^^      d
   11171 +11 ^^      e
   11172 +12 ^ ^     (*:B)
   11173 +17 ^ ^     )
   11174 Latest Mark: B
   11175 +18 ^ ^     z
   11176 +19 ^  ^    |
   11177 +24 ^  ^    End of pattern
   11178  0: aez
   11179  1: aez
   11180  2: e
   11181     aeqwerty
   11182 --->aeqwerty
   11183  +0 ^            ^
   11184  +1 ^            (
   11185  +2 ^            a
   11186  +3 ^^           (*:A)
   11187  +8 ^^           (
   11188 Latest Mark: A
   11189  +9 ^^           d
   11190 +11 ^^           e
   11191 +12 ^ ^          (*:B)
   11192 +17 ^ ^          )
   11193 Latest Mark: B
   11194 +18 ^ ^          z
   11195 +20 ^            a
   11196 +21 ^^           e
   11197 +22 ^ ^          q
   11198 +23 ^  ^         )
   11199 +24 ^  ^         End of pattern
   11200  0: aeq
   11201  1: aeq
   11202 
   11203 /.(*F)/
   11204 \= Expect no match
   11205     abc\=ph
   11206 No match
   11207 
   11208 /\btype\b\W*?\btext\b\W*?\bjavascript\b/I
   11209 Capturing subpattern count = 0
   11210 Max lookbehind = 1
   11211 First code unit = 't'
   11212 Last code unit = 't'
   11213 Subject length lower bound = 18
   11214 
   11215 /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/I
   11216 Capturing subpattern count = 0
   11217 Max lookbehind = 1
   11218 Starting code units: < o t u 
   11219 Subject length lower bound = 8
   11220 
   11221 /a(*SKIP)c|b(*ACCEPT)|/I,aftertext
   11222 Capturing subpattern count = 0
   11223 May match empty string
   11224 Subject length lower bound = 0
   11225     a
   11226  0: 
   11227  0+ 
   11228 
   11229 /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/I
   11230 Capturing subpattern count = 0
   11231 Starting code units: a b x 
   11232 Subject length lower bound = 0
   11233     ax
   11234  0: x
   11235 
   11236 'a*(*ACCEPT)b'aftertext
   11237     abc\=notempty_atstart
   11238  0: a
   11239  0+ bc
   11240     bbb\=notempty_atstart
   11241  0: 
   11242  0+ bb
   11243 \= Expect no match
   11244     \=notempty_atstart
   11245 No match
   11246 
   11247 /(*ACCEPT)a/I,aftertext
   11248 Capturing subpattern count = 0
   11249 Subject length lower bound = 0
   11250     bax
   11251  0: 
   11252  0+ bax
   11253 
   11254 /z(*ACCEPT)a/I,aftertext
   11255 Capturing subpattern count = 0
   11256 First code unit = 'z'
   11257 Subject length lower bound = 0
   11258     baxzbx
   11259  0: z
   11260  0+ bx
   11261 
   11262 /^(?>a+)(?>(z+))\w/B
   11263 ------------------------------------------------------------------
   11264         Bra
   11265         ^
   11266         Once
   11267         a++
   11268         Ket
   11269         Once
   11270         CBra 1
   11271         z++
   11272         Ket
   11273         Ket
   11274         \w
   11275         Ket
   11276         End
   11277 ------------------------------------------------------------------
   11278     aaaazzzzb
   11279  0: aaaazzzzb
   11280  1: zzzz
   11281 \= Expect no match
   11282     aazz
   11283 No match
   11284 
   11285 /(.)(\1|a(?2))/
   11286     bab
   11287  0: bab
   11288  1: b
   11289  2: ab
   11290 
   11291 /\1|(.)(?R)\1/
   11292     cbbbc
   11293  0: cbbbc
   11294  1: c
   11295 
   11296 /(.)((?(1)c|a)|a(?2))/
   11297 \= Expect no match
   11298     baa
   11299 No match
   11300 
   11301 /(?P<abn>(?P=abn)xxx)/B
   11302 ------------------------------------------------------------------
   11303         Bra
   11304         Once
   11305         CBra 1
   11306         \1
   11307         xxx
   11308         Ket
   11309         Ket
   11310         Ket
   11311         End
   11312 ------------------------------------------------------------------
   11313 
   11314 /(a\1z)/B
   11315 ------------------------------------------------------------------
   11316         Bra
   11317         Once
   11318         CBra 1
   11319         a
   11320         \1
   11321         z
   11322         Ket
   11323         Ket
   11324         Ket
   11325         End
   11326 ------------------------------------------------------------------
   11327 
   11328 /^a\x41z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
   11329     aAz
   11330  0: aAz
   11331 \= Expect no match
   11332     ax41z
   11333 No match
   11334 
   11335 /^a[m\x41]z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
   11336     aAz
   11337  0: aAz
   11338 
   11339 /^a\x1z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
   11340     ax1z
   11341  0: ax1z
   11342 
   11343 /^a\u0041z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
   11344     aAz
   11345  0: aAz
   11346 \= Expect no match
   11347     au0041z
   11348 No match
   11349 
   11350 /^a[m\u0041]z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
   11351     aAz
   11352  0: aAz
   11353 
   11354 /^a\u041z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
   11355     au041z
   11356  0: au041z
   11357 \= Expect no match
   11358     aAz
   11359 No match
   11360 
   11361 /^a\U0041z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
   11362     aU0041z
   11363  0: aU0041z
   11364 \= Expect no match
   11365     aAz
   11366 No match
   11367 
   11368 /(?(?=c)c|d)++Y/B
   11369 ------------------------------------------------------------------
   11370         Bra
   11371         BraPos
   11372         Cond
   11373         Assert
   11374         c
   11375         Ket
   11376         c
   11377         Alt
   11378         d
   11379         Ket
   11380         KetRpos
   11381         Y
   11382         Ket
   11383         End
   11384 ------------------------------------------------------------------
   11385 
   11386 /(?(?=c)c|d)*+Y/B
   11387 ------------------------------------------------------------------
   11388         Bra
   11389         Braposzero
   11390         BraPos
   11391         Cond
   11392         Assert
   11393         c
   11394         Ket
   11395         c
   11396         Alt
   11397         d
   11398         Ket
   11399         KetRpos
   11400         Y
   11401         Ket
   11402         End
   11403 ------------------------------------------------------------------
   11404 
   11405 /a[\NB]c/
   11406 Failed: error 171 at offset 4: \N is not supported in a class
   11407     aNc
   11408 
   11409 /a[B-\Nc]/
   11410 Failed: error 150 at offset 6: invalid range in character class
   11411 
   11412 /a[B\Nc]/
   11413 Failed: error 171 at offset 5: \N is not supported in a class
   11414 
   11415 /(a)(?2){0,1999}?(b)/
   11416 
   11417 /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
   11418 
   11419 # This test, with something more complicated than individual letters, causes
   11420 # different behaviour in Perl. Perhaps it disables some optimization; no tag is
   11421 # passed back for the failures, whereas in PCRE2 there is a tag.
   11422 
   11423 /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/x,mark
   11424     AABC
   11425  0: AB
   11426  1: A
   11427  2: B
   11428 MK: A
   11429     XXYZ
   11430  0: XXY
   11431  1: <unset>
   11432  2: <unset>
   11433  3: X
   11434  4: X
   11435  5: Y
   11436 MK: B
   11437 \= Expect no match
   11438     XAQQ
   11439 No match, mark = A
   11440     XAQQXZZ
   11441 No match, mark = A
   11442     AXQQQ
   11443 No match, mark = A
   11444     AXXQQQ
   11445 No match, mark = B
   11446 
   11447 # Perl doesn't give marks for these, though it does if the alternatives are
   11448 # replaced by single letters.
   11449 
   11450 /(b|q)(*:m)f|a(*:n)w/mark
   11451     aw
   11452  0: aw
   11453 MK: n
   11454 \= Expect no match
   11455     abc
   11456 No match, mark = m
   11457 
   11458 /(q|b)(*:m)f|a(*:n)w/mark
   11459     aw
   11460  0: aw
   11461 MK: n
   11462 \= Expect no match
   11463     abc
   11464 No match, mark = m
   11465 
   11466 # After a partial match, the behaviour is as for a failure.
   11467 
   11468 /^a(*:X)bcde/mark
   11469    abc\=ps
   11470 Partial match, mark=X: abc
   11471 
   11472 # These are here because Perl doesn't return a mark, except for the first.
   11473 
   11474 /(?=(*:x))(q|)/aftertext,mark
   11475     abc
   11476  0: 
   11477  0+ abc
   11478  1: 
   11479 MK: x
   11480 
   11481 /(?=(*:x))((*:y)q|)/aftertext,mark
   11482     abc
   11483  0: 
   11484  0+ abc
   11485  1: 
   11486 MK: x
   11487 
   11488 /(?=(*:x))(?:(*:y)q|)/aftertext,mark
   11489     abc
   11490  0: 
   11491  0+ abc
   11492 MK: x
   11493 
   11494 /(?=(*:x))(?>(*:y)q|)/aftertext,mark
   11495     abc
   11496  0: 
   11497  0+ abc
   11498 MK: x
   11499 
   11500 /(?=a(*:x))(?!a(*:y)c)/aftertext,mark
   11501     ab
   11502  0: 
   11503  0+ ab
   11504 MK: x
   11505 
   11506 /(?=a(*:x))(?=a(*:y)c|)/aftertext,mark
   11507     ab
   11508  0: 
   11509  0+ ab
   11510 MK: x
   11511 
   11512 /(..)\1/
   11513     ab\=ps
   11514 Partial match: ab
   11515     aba\=ps
   11516 Partial match: aba
   11517     abab\=ps
   11518  0: abab
   11519  1: ab
   11520 
   11521 /(..)\1/i
   11522     ab\=ps
   11523 Partial match: ab
   11524     abA\=ps
   11525 Partial match: abA
   11526     aBAb\=ps
   11527  0: aBAb
   11528  1: aB
   11529 
   11530 /(..)\1{2,}/
   11531     ab\=ps
   11532 Partial match: ab
   11533     aba\=ps
   11534 Partial match: aba
   11535     abab\=ps
   11536 Partial match: abab
   11537     ababa\=ps
   11538 Partial match: ababa
   11539     ababab\=ps
   11540  0: ababab
   11541  1: ab
   11542     ababab\=ph
   11543 Partial match: ababab
   11544     abababa\=ps
   11545  0: ababab
   11546  1: ab
   11547     abababa\=ph
   11548 Partial match: abababa
   11549 
   11550 /(..)\1{2,}/i
   11551     ab\=ps
   11552 Partial match: ab
   11553     aBa\=ps
   11554 Partial match: aBa
   11555     aBAb\=ps
   11556 Partial match: aBAb
   11557     AbaBA\=ps
   11558 Partial match: AbaBA
   11559     abABAb\=ps
   11560  0: abABAb
   11561  1: ab
   11562     aBAbaB\=ph
   11563 Partial match: aBAbaB
   11564     abABabA\=ps
   11565  0: abABab
   11566  1: ab
   11567     abaBABa\=ph
   11568 Partial match: abaBABa
   11569 
   11570 /(..)\1{2,}?x/i
   11571     ab\=ps
   11572 Partial match: ab
   11573     abA\=ps
   11574 Partial match: abA
   11575     aBAb\=ps
   11576 Partial match: aBAb
   11577     abaBA\=ps
   11578 Partial match: abaBA
   11579     abAbaB\=ps
   11580 Partial match: abAbaB
   11581     abaBabA\=ps
   11582 Partial match: abaBabA
   11583     abAbABaBx\=ps
   11584  0: abAbABaBx
   11585  1: ab
   11586 
   11587 /^(..)\1/
   11588     aba\=ps
   11589 Partial match: aba
   11590 
   11591 /^(..)\1{2,3}x/
   11592     aba\=ps
   11593 Partial match: aba
   11594     ababa\=ps
   11595 Partial match: ababa
   11596     ababa\=ph
   11597 Partial match: ababa
   11598     abababx
   11599  0: abababx
   11600  1: ab
   11601     ababababx
   11602  0: ababababx
   11603  1: ab
   11604 
   11605 /^(..)\1{2,3}?x/
   11606     aba\=ps
   11607 Partial match: aba
   11608     ababa\=ps
   11609 Partial match: ababa
   11610     ababa\=ph
   11611 Partial match: ababa
   11612     abababx
   11613  0: abababx
   11614  1: ab
   11615     ababababx
   11616  0: ababababx
   11617  1: ab
   11618 
   11619 /^(..)(\1{2,3})ab/
   11620     abababab
   11621  0: abababab
   11622  1: ab
   11623  2: abab
   11624 
   11625 /^\R/
   11626     \r\=ps
   11627  0: \x0d
   11628     \r\=ph
   11629 Partial match: \x0d
   11630 
   11631 /^\R{2,3}x/
   11632     \r\=ps
   11633 Partial match: \x0d
   11634     \r\=ph
   11635 Partial match: \x0d
   11636     \r\r\=ps
   11637 Partial match: \x0d\x0d
   11638     \r\r\=ph
   11639 Partial match: \x0d\x0d
   11640     \r\r\r\=ps
   11641 Partial match: \x0d\x0d\x0d
   11642     \r\r\r\=ph
   11643 Partial match: \x0d\x0d\x0d
   11644     \r\rx
   11645  0: \x0d\x0dx
   11646     \r\r\rx
   11647  0: \x0d\x0d\x0dx
   11648 
   11649 /^\R{2,3}?x/
   11650     \r\=ps
   11651 Partial match: \x0d
   11652     \r\=ph
   11653 Partial match: \x0d
   11654     \r\r\=ps
   11655 Partial match: \x0d\x0d
   11656     \r\r\=ph
   11657 Partial match: \x0d\x0d
   11658     \r\r\r\=ps
   11659 Partial match: \x0d\x0d\x0d
   11660     \r\r\r\=ph
   11661 Partial match: \x0d\x0d\x0d
   11662     \r\rx
   11663  0: \x0d\x0dx
   11664     \r\r\rx
   11665  0: \x0d\x0d\x0dx
   11666 
   11667 /^\R?x/
   11668     \r\=ps
   11669 Partial match: \x0d
   11670     \r\=ph
   11671 Partial match: \x0d
   11672     x
   11673  0: x
   11674     \rx
   11675  0: \x0dx
   11676 
   11677 /^\R+x/
   11678     \r\=ps
   11679 Partial match: \x0d
   11680     \r\=ph
   11681 Partial match: \x0d
   11682     \r\n\=ps
   11683 Partial match: \x0d\x0a
   11684     \r\n\=ph
   11685 Partial match: \x0d\x0a
   11686     \rx
   11687  0: \x0dx
   11688 
   11689 /^a$/newline=crlf
   11690     a\r\=ps
   11691 Partial match: a\x0d
   11692     a\r\=ph
   11693 Partial match: a\x0d
   11694 
   11695 /^a$/m,newline=crlf
   11696     a\r\=ps
   11697 Partial match: a\x0d
   11698     a\r\=ph
   11699 Partial match: a\x0d
   11700 
   11701 /^(a$|a\r)/newline=crlf
   11702     a\r\=ps
   11703  0: a\x0d
   11704  1: a\x0d
   11705     a\r\=ph
   11706 Partial match: a\x0d
   11707 
   11708 /^(a$|a\r)/m,newline=crlf
   11709     a\r\=ps
   11710  0: a\x0d
   11711  1: a\x0d
   11712     a\r\=ph
   11713 Partial match: a\x0d
   11714 
   11715 /./newline=crlf
   11716     \r\=ps
   11717  0: \x0d
   11718     \r\=ph
   11719 Partial match: \x0d
   11720 
   11721 /.{2,3}/newline=crlf
   11722     \r\=ps
   11723 Partial match: \x0d
   11724     \r\=ph
   11725 Partial match: \x0d
   11726     \r\r\=ps
   11727  0: \x0d\x0d
   11728     \r\r\=ph
   11729 Partial match: \x0d\x0d
   11730     \r\r\r\=ps
   11731  0: \x0d\x0d\x0d
   11732     \r\r\r\=ph
   11733 Partial match: \x0d\x0d\x0d
   11734 
   11735 /.{2,3}?/newline=crlf
   11736     \r\=ps
   11737 Partial match: \x0d
   11738     \r\=ph
   11739 Partial match: \x0d
   11740     \r\r\=ps
   11741  0: \x0d\x0d
   11742     \r\r\=ph
   11743 Partial match: \x0d\x0d
   11744     \r\r\r\=ps
   11745  0: \x0d\x0d
   11746     \r\r\r\=ph
   11747  0: \x0d\x0d
   11748 
   11749 "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
   11750     ABCDGHI\=ovector=01
   11751 Matched, but too many substrings
   11752  0: ABCD
   11753 
   11754 # These are all run as real matches in test 1; here we are just checking the
   11755 # settings of the anchored and startline bits.
   11756 
   11757 /(?>.*?a)(?<=ba)/I
   11758 Capturing subpattern count = 0
   11759 Max lookbehind = 2
   11760 Last code unit = 'a'
   11761 Subject length lower bound = 1
   11762 
   11763 /(?:.*?a)(?<=ba)/I
   11764 Capturing subpattern count = 0
   11765 Max lookbehind = 2
   11766 First code unit at start or follows newline
   11767 Last code unit = 'a'
   11768 Subject length lower bound = 1
   11769 
   11770 /.*?a(*PRUNE)b/I
   11771 Capturing subpattern count = 0
   11772 Last code unit = 'b'
   11773 Subject length lower bound = 2
   11774 
   11775 /.*?a(*PRUNE)b/Is
   11776 Capturing subpattern count = 0
   11777 Options: dotall
   11778 Last code unit = 'b'
   11779 Subject length lower bound = 2
   11780 
   11781 /^a(*PRUNE)b/Is
   11782 Capturing subpattern count = 0
   11783 Compile options: dotall
   11784 Overall options: anchored dotall
   11785 First code unit = 'a'
   11786 Subject length lower bound = 2
   11787 
   11788 /.*?a(*SKIP)b/I
   11789 Capturing subpattern count = 0
   11790 Last code unit = 'b'
   11791 Subject length lower bound = 2
   11792 
   11793 /(?>.*?a)b/Is
   11794 Capturing subpattern count = 0
   11795 Options: dotall
   11796 Last code unit = 'b'
   11797 Subject length lower bound = 2
   11798 
   11799 /(?>.*?a)b/I
   11800 Capturing subpattern count = 0
   11801 Last code unit = 'b'
   11802 Subject length lower bound = 2
   11803 
   11804 /(?>^a)b/Is
   11805 Capturing subpattern count = 0
   11806 Compile options: dotall
   11807 Overall options: anchored dotall
   11808 First code unit = 'a'
   11809 Subject length lower bound = 2
   11810 
   11811 /(?>.*?)(?<=(abcd)|(wxyz))/I
   11812 Capturing subpattern count = 2
   11813 Max lookbehind = 4
   11814 May match empty string
   11815 Subject length lower bound = 0
   11816 
   11817 /(?>.*)(?<=(abcd)|(wxyz))/I
   11818 Capturing subpattern count = 2
   11819 Max lookbehind = 4
   11820 May match empty string
   11821 Subject length lower bound = 0
   11822 
   11823 "(?>.*)foo"I
   11824 Capturing subpattern count = 0
   11825 Last code unit = 'o'
   11826 Subject length lower bound = 3
   11827 
   11828 "(?>.*?)foo"I
   11829 Capturing subpattern count = 0
   11830 Last code unit = 'o'
   11831 Subject length lower bound = 3
   11832 
   11833 /(?>^abc)/Im
   11834 Capturing subpattern count = 0
   11835 Options: multiline
   11836 First code unit at start or follows newline
   11837 Last code unit = 'c'
   11838 Subject length lower bound = 3
   11839 
   11840 /(?>.*abc)/Im
   11841 Capturing subpattern count = 0
   11842 Options: multiline
   11843 Last code unit = 'c'
   11844 Subject length lower bound = 3
   11845 
   11846 /(?:.*abc)/Im
   11847 Capturing subpattern count = 0
   11848 Options: multiline
   11849 First code unit at start or follows newline
   11850 Last code unit = 'c'
   11851 Subject length lower bound = 3
   11852 
   11853 /(?:(a)+(?C1)bb|aa(?C2)b)/
   11854     aab\=callout_capture
   11855 Callout 1: last capture = 1
   11856  1: a
   11857 --->aab
   11858     ^ ^     b
   11859 Callout 1: last capture = 1
   11860  1: a
   11861 --->aab
   11862     ^^      b
   11863 Callout 2: last capture = 0
   11864 --->aab
   11865     ^ ^     b
   11866  0: aab
   11867 
   11868 /(?:(a)++(?C1)bb|aa(?C2)b)/
   11869     aab\=callout_capture
   11870 Callout 1: last capture = 1
   11871  1: a
   11872 --->aab
   11873     ^ ^     b
   11874 Callout 2: last capture = 0
   11875 --->aab
   11876     ^ ^     b
   11877  0: aab
   11878 
   11879 /(?:(?>(a))(?C1)bb|aa(?C2)b)/
   11880     aab\=callout_capture
   11881 Callout 1: last capture = 1
   11882  1: a
   11883 --->aab
   11884     ^^      b
   11885 Callout 2: last capture = 0
   11886 --->aab
   11887     ^ ^     b
   11888  0: aab
   11889 
   11890 /(?:(?1)(?C1)x|ab(?C2))((a)){0}/
   11891     aab\=callout_capture
   11892 Callout 1: last capture = 0
   11893 --->aab
   11894     ^^      x
   11895 Callout 1: last capture = 0
   11896 --->aab
   11897      ^^     x
   11898 Callout 2: last capture = 0
   11899 --->aab
   11900      ^ ^    )
   11901  0: ab
   11902 
   11903 /(?1)(?C1)((a)(?C2)){0}/
   11904     aab\=callout_capture
   11905 Callout 2: last capture = 2
   11906  1: <unset>
   11907  2: a
   11908 --->aab
   11909     ^^      ){0}
   11910 Callout 1: last capture = 0
   11911 --->aab
   11912     ^^      (
   11913  0: a
   11914 
   11915 /(?:(a)+(?C1)bb|aa(?C2)b)++/
   11916     aab\=callout_capture
   11917 Callout 1: last capture = 1
   11918  1: a
   11919 --->aab
   11920     ^ ^     b
   11921 Callout 1: last capture = 1
   11922  1: a
   11923 --->aab
   11924     ^^      b
   11925 Callout 2: last capture = 0
   11926 --->aab
   11927     ^ ^     b
   11928  0: aab
   11929     aab\=callout_capture,ovector=1
   11930 Callout 1: last capture = 1
   11931  1: a
   11932 --->aab
   11933     ^ ^     b
   11934 Callout 1: last capture = 1
   11935  1: a
   11936 --->aab
   11937     ^^      b
   11938 Callout 2: last capture = 0
   11939 --->aab
   11940     ^ ^     b
   11941  0: aab
   11942 
   11943 /(ab)x|ab/
   11944     ab\=ovector=0
   11945  0: ab
   11946     ab\=ovector=1
   11947  0: ab
   11948 
   11949 /(?<=123)(*MARK:xx)abc/mark
   11950     xxxx123a\=ph
   11951 Partial match, mark=xx: 123a
   11952                         <<<
   11953     xxxx123a\=ps
   11954 Partial match, mark=xx: 123a
   11955                         <<<
   11956 
   11957 /123\Kabc/startchar
   11958     xxxx123a\=ph
   11959 Partial match: 123a
   11960     xxxx123a\=ps
   11961 Partial match: 123a
   11962 
   11963 /^(?(?=a)aa|bb)/auto_callout
   11964     bb
   11965 --->bb
   11966  +0 ^      ^
   11967  +1 ^      (?
   11968  +3 ^      (?=
   11969  +6 ^      a
   11970 +11 ^      b
   11971 +12 ^^     b
   11972 +13 ^ ^    )
   11973 +14 ^ ^    End of pattern
   11974  0: bb
   11975 
   11976 /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
   11977     bb
   11978 --->bb
   11979   1 ^      ^
   11980   2 ^      (?
   11981  99 ^      (?=
   11982   3 ^      a
   11983   8 ^      b
   11984   9 ^^     b
   11985  10 ^ ^    )
   11986  11 ^ ^    End of pattern
   11987  0: bb
   11988 
   11989 # Perl seems to have a bug with this one.
   11990 
   11991 /aaaaa(*COMMIT)(*PRUNE)b|a+c/
   11992     aaaaaac
   11993  0: aaaac
   11994 
   11995 # Here are some that Perl treats differently because of the way it handles
   11996 # backtracking verbs.
   11997 
   11998 /(?!a(*COMMIT)b)ac|ad/
   11999      ac
   12000  0: ac
   12001      ad
   12002  0: ad
   12003 
   12004 /^(?!a(*THEN)b|ac)../
   12005      ad
   12006  0: ad
   12007 \= Expect no match
   12008      ac
   12009 No match
   12010 
   12011 /^(?=a(*THEN)b|ac)/
   12012     ac
   12013  0: 
   12014 
   12015 /\A.*?(?:a|b(*THEN)c)/
   12016     ba
   12017  0: ba
   12018 
   12019 /\A.*?(?:a|b(*THEN)c)++/
   12020     ba
   12021  0: ba
   12022 
   12023 /\A.*?(?:a|b(*THEN)c|d)/
   12024     ba
   12025  0: ba
   12026 
   12027 /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
   12028     aac
   12029  0: aac
   12030 
   12031 /\A.*?(a|b(*THEN)c)/
   12032     ba
   12033  0: ba
   12034  1: a
   12035 
   12036 /^(A(*THEN)B|A(*THEN)D)/
   12037     AD
   12038  0: AD
   12039  1: AD
   12040 
   12041 /(?!b(*THEN)a)bn|bnn/
   12042     bnn
   12043  0: bn
   12044 
   12045 /(?(?=b(*SKIP)a)bn|bnn)/
   12046     bnn
   12047  0: bnn
   12048 
   12049 /(?=b(*THEN)a|)bn|bnn/
   12050     bnn
   12051  0: bn
   12052 
   12053 # This test causes a segfault with Perl 5.18.0
   12054 
   12055 /^(?=(a)){0}b(?1)/
   12056     backgammon
   12057  0: ba
   12058 
   12059 /(?|(?<n>f)|(?<n>b))/I,dupnames
   12060 Capturing subpattern count = 1
   12061 Named capturing subpatterns:
   12062   n   1
   12063 Options: dupnames
   12064 Starting code units: b f 
   12065 Subject length lower bound = 1
   12066 
   12067 /(?<a>abc)(?<a>z)\k<a>()/IB,dupnames
   12068 ------------------------------------------------------------------
   12069         Bra
   12070         CBra 1
   12071         abc
   12072         Ket
   12073         CBra 2
   12074         z
   12075         Ket
   12076         \k<a>2
   12077         CBra 3
   12078         Ket
   12079         Ket
   12080         End
   12081 ------------------------------------------------------------------
   12082 Capturing subpattern count = 3
   12083 Max back reference = 2
   12084 Named capturing subpatterns:
   12085   a   1
   12086   a   2
   12087 Options: dupnames
   12088 First code unit = 'a'
   12089 Last code unit = 'z'
   12090 Subject length lower bound = 5
   12091 
   12092 /a*[bcd]/B
   12093 ------------------------------------------------------------------
   12094         Bra
   12095         a*+
   12096         [b-d]
   12097         Ket
   12098         End
   12099 ------------------------------------------------------------------
   12100 
   12101 /[bcd]*a/B
   12102 ------------------------------------------------------------------
   12103         Bra
   12104         [b-d]*+
   12105         a
   12106         Ket
   12107         End
   12108 ------------------------------------------------------------------
   12109 
   12110 # A complete set of tests for auto-possessification of character types, but
   12111 # omitting \C because it might be disabled (it has its own tests).
   12112 
   12113 /\D+\D \D+\d \D+\S \D+\s \D+\W \D+\w \D+. \D+\R \D+\H \D+\h \D+\V \D+\v \D+\Z \D+\z \D+$/Bx
   12114 ------------------------------------------------------------------
   12115         Bra
   12116         \D+
   12117         \D
   12118         \D++
   12119         \d
   12120         \D+
   12121         \S
   12122         \D+
   12123         \s
   12124         \D+
   12125         \W
   12126         \D+
   12127         \w
   12128         \D+
   12129         Any
   12130         \D+
   12131         \R
   12132         \D+
   12133         \H
   12134         \D+
   12135         \h
   12136         \D+
   12137         \V
   12138         \D+
   12139         \v
   12140         \D+
   12141         \Z
   12142         \D++
   12143         \z
   12144         \D+
   12145         $
   12146         Ket
   12147         End
   12148 ------------------------------------------------------------------
   12149 
   12150 /\d+\D \d+\d \d+\S \d+\s \d+\W \d+\w \d+. \d+\R \d+\H \d+\h \d+\V \d+\v \d+\Z \d+\z \d+$/Bx
   12151 ------------------------------------------------------------------
   12152         Bra
   12153         \d++
   12154         \D
   12155         \d+
   12156         \d
   12157         \d+
   12158         \S
   12159         \d++
   12160         \s
   12161         \d++
   12162         \W
   12163         \d+
   12164         \w
   12165         \d+
   12166         Any
   12167         \d++
   12168         \R
   12169         \d+
   12170         \H
   12171         \d++
   12172         \h
   12173         \d+
   12174         \V
   12175         \d++
   12176         \v
   12177         \d++
   12178         \Z
   12179         \d++
   12180         \z
   12181         \d++
   12182         $
   12183         Ket
   12184         End
   12185 ------------------------------------------------------------------
   12186 
   12187 /\S+\D \S+\d \S+\S \S+\s \S+\W \S+\w \S+. \S+\R \S+\H \S+\h \S+\V \S+\v \S+\Z \S+\z \S+$/Bx
   12188 ------------------------------------------------------------------
   12189         Bra
   12190         \S+
   12191         \D
   12192         \S+
   12193         \d
   12194         \S+
   12195         \S
   12196         \S++
   12197         \s
   12198         \S+
   12199         \W
   12200         \S+
   12201         \w
   12202         \S+
   12203         Any
   12204         \S++
   12205         \R
   12206         \S+
   12207         \H
   12208         \S++
   12209         \h
   12210         \S+
   12211         \V
   12212         \S++
   12213         \v
   12214         \S++
   12215         \Z
   12216         \S++
   12217         \z
   12218         \S++
   12219         $
   12220         Ket
   12221         End
   12222 ------------------------------------------------------------------
   12223 
   12224 /\s+\D \s+\d \s+\S \s+\s \s+\W \s+\w \s+. \s+\R \s+\H \s+\h \s+\V \s+\v \s+\Z \s+\z \s+$/Bx
   12225 ------------------------------------------------------------------
   12226         Bra
   12227         \s+
   12228         \D
   12229         \s++
   12230         \d
   12231         \s++
   12232         \S
   12233         \s+
   12234         \s
   12235         \s+
   12236         \W
   12237         \s++
   12238         \w
   12239         \s+
   12240         Any
   12241         \s+
   12242         \R
   12243         \s+
   12244         \H
   12245         \s+
   12246         \h
   12247         \s+
   12248         \V
   12249         \s+
   12250         \v
   12251         \s+
   12252         \Z
   12253         \s++
   12254         \z
   12255         \s+
   12256         $
   12257         Ket
   12258         End
   12259 ------------------------------------------------------------------
   12260 
   12261 /\W+\D \W+\d \W+\S \W+\s \W+\W \W+\w \W+. \W+\R \W+\H \W+\h \W+\V \W+\v \W+\Z \W+\z \W+$/Bx
   12262 ------------------------------------------------------------------
   12263         Bra
   12264         \W+
   12265         \D
   12266         \W++
   12267         \d
   12268         \W+
   12269         \S
   12270         \W+
   12271         \s
   12272         \W+
   12273         \W
   12274         \W++
   12275         \w
   12276         \W+
   12277         Any
   12278         \W+
   12279         \R
   12280         \W+
   12281         \H
   12282         \W+
   12283         \h
   12284         \W+
   12285         \V
   12286         \W+
   12287         \v
   12288         \W+
   12289         \Z
   12290         \W++
   12291         \z
   12292         \W+
   12293         $
   12294         Ket
   12295         End
   12296 ------------------------------------------------------------------
   12297 
   12298 /\w+\D \w+\d \w+\S \w+\s \w+\W \w+\w \w+. \w+\R \w+\H \w+\h \w+\V \w+\v \w+\Z \w+\z \w+$/Bx
   12299 ------------------------------------------------------------------
   12300         Bra
   12301         \w+
   12302         \D
   12303         \w+
   12304         \d
   12305         \w+
   12306         \S
   12307         \w++
   12308         \s
   12309         \w++
   12310         \W
   12311         \w+
   12312         \w
   12313         \w+
   12314         Any
   12315         \w++
   12316         \R
   12317         \w+
   12318         \H
   12319         \w++
   12320         \h
   12321         \w+
   12322         \V
   12323         \w++
   12324         \v
   12325         \w++
   12326         \Z
   12327         \w++
   12328         \z
   12329         \w++
   12330         $
   12331         Ket
   12332         End
   12333 ------------------------------------------------------------------
   12334 
   12335 /\R+\D \R+\d \R+\S \R+\s \R+\W \R+\w \R+. \R+\R \R+\H \R+\h \R+\V \R+\v \R+\Z \R+\z \R+$/Bx
   12336 ------------------------------------------------------------------
   12337         Bra
   12338         \R+
   12339         \D
   12340         \R++
   12341         \d
   12342         \R+
   12343         \S
   12344         \R++
   12345         \s
   12346         \R+
   12347         \W
   12348         \R++
   12349         \w
   12350         \R++
   12351         Any
   12352         \R+
   12353         \R
   12354         \R+
   12355         \H
   12356         \R++
   12357         \h
   12358         \R+
   12359         \V
   12360         \R+
   12361         \v
   12362         \R+
   12363         \Z
   12364         \R++
   12365         \z
   12366         \R+
   12367         $
   12368         Ket
   12369         End
   12370 ------------------------------------------------------------------
   12371 
   12372 /\H+\D \H+\d \H+\S \H+\s \H+\W \H+\w \H+. \H+\R \H+\H \H+\h \H+\V \H+\v \H+\Z \H+\z \H+$/Bx
   12373 ------------------------------------------------------------------
   12374         Bra
   12375         \H+
   12376         \D
   12377         \H+
   12378         \d
   12379         \H+
   12380         \S
   12381         \H+
   12382         \s
   12383         \H+
   12384         \W
   12385         \H+
   12386         \w
   12387         \H+
   12388         Any
   12389         \H+
   12390         \R
   12391         \H+
   12392         \H
   12393         \H++
   12394         \h
   12395         \H+
   12396         \V
   12397         \H+
   12398         \v
   12399         \H+
   12400         \Z
   12401         \H++
   12402         \z
   12403         \H+
   12404         $
   12405         Ket
   12406         End
   12407 ------------------------------------------------------------------
   12408 
   12409 /\h+\D \h+\d \h+\S \h+\s \h+\W \h+\w \h+. \h+\R \h+\H \h+\h \h+\V \h+\v \h+\Z \h+\z \h+$/Bx
   12410 ------------------------------------------------------------------
   12411         Bra
   12412         \h+
   12413         \D
   12414         \h++
   12415         \d
   12416         \h++
   12417         \S
   12418         \h+
   12419         \s
   12420         \h+
   12421         \W
   12422         \h++
   12423         \w
   12424         \h+
   12425         Any
   12426         \h++
   12427         \R
   12428         \h++
   12429         \H
   12430         \h+
   12431         \h
   12432         \h+
   12433         \V
   12434         \h++
   12435         \v
   12436         \h+
   12437         \Z
   12438         \h++
   12439         \z
   12440         \h+
   12441         $
   12442         Ket
   12443         End
   12444 ------------------------------------------------------------------
   12445 
   12446 /\V+\D \V+\d \V+\S \V+\s \V+\W \V+\w \V+. \V+\R \V+\H \V+\h \V+\V \V+\v \V+\Z \V+\z \V+$/Bx
   12447 ------------------------------------------------------------------
   12448         Bra
   12449         \V+
   12450         \D
   12451         \V+
   12452         \d
   12453         \V+
   12454         \S
   12455         \V+
   12456         \s
   12457         \V+
   12458         \W
   12459         \V+
   12460         \w
   12461         \V+
   12462         Any
   12463         \V++
   12464         \R
   12465         \V+
   12466         \H
   12467         \V+
   12468         \h
   12469         \V+
   12470         \V
   12471         \V++
   12472         \v
   12473         \V+
   12474         \Z
   12475         \V++
   12476         \z
   12477         \V+
   12478         $
   12479         Ket
   12480         End
   12481 ------------------------------------------------------------------
   12482 
   12483 /\v+\D \v+\d \v+\S \v+\s \v+\W \v+\w \v+. \v+\R \v+\H \v+\h \v+\V \v+\v \v+\Z \v+\z \v+$/Bx
   12484 ------------------------------------------------------------------
   12485         Bra
   12486         \v+
   12487         \D
   12488         \v++
   12489         \d
   12490         \v++
   12491         \S
   12492         \v+
   12493         \s
   12494         \v+
   12495         \W
   12496         \v++
   12497         \w
   12498         \v+
   12499         Any
   12500         \v+
   12501         \R
   12502         \v+
   12503         \H
   12504         \v++
   12505         \h
   12506         \v++
   12507         \V
   12508         \v+
   12509         \v
   12510         \v+
   12511         \Z
   12512         \v++
   12513         \z
   12514         \v+
   12515         $
   12516         Ket
   12517         End
   12518 ------------------------------------------------------------------
   12519 
   12520 / a+\D  a+\d  a+\S  a+\s  a+\W  a+\w  a+.  a+\R  a+\H  a+\h  a+\V  a+\v  a+\Z  a+\z  a+$/Bx
   12521 ------------------------------------------------------------------
   12522         Bra
   12523         a+
   12524         \D
   12525         a++
   12526         \d
   12527         a+
   12528         \S
   12529         a++
   12530         \s
   12531         a++
   12532         \W
   12533         a+
   12534         \w
   12535         a+
   12536         Any
   12537         a++
   12538         \R
   12539         a+
   12540         \H
   12541         a++
   12542         \h
   12543         a+
   12544         \V
   12545         a++
   12546         \v
   12547         a++
   12548         \Z
   12549         a++
   12550         \z
   12551         a++
   12552         $
   12553         Ket
   12554         End
   12555 ------------------------------------------------------------------
   12556 
   12557 /\n+\D \n+\d \n+\S \n+\s \n+\W \n+\w \n+. \n+\R \n+\H \n+\h \n+\V \n+\v \n+\Z \n+\z \n+$/Bx
   12558 ------------------------------------------------------------------
   12559         Bra
   12560         \x0a+
   12561         \D
   12562         \x0a++
   12563         \d
   12564         \x0a++
   12565         \S
   12566         \x0a+
   12567         \s
   12568         \x0a+
   12569         \W
   12570         \x0a++
   12571         \w
   12572         \x0a+
   12573         Any
   12574         \x0a+
   12575         \R
   12576         \x0a+
   12577         \H
   12578         \x0a++
   12579         \h
   12580         \x0a++
   12581         \V
   12582         \x0a+
   12583         \v
   12584         \x0a+
   12585         \Z
   12586         \x0a++
   12587         \z
   12588         \x0a+
   12589         $
   12590         Ket
   12591         End
   12592 ------------------------------------------------------------------
   12593 
   12594 / .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/Bx
   12595 ------------------------------------------------------------------
   12596         Bra
   12597         Any+
   12598         \D
   12599         Any+
   12600         \d
   12601         Any+
   12602         \S
   12603         Any+
   12604         \s
   12605         Any+
   12606         \W
   12607         Any+
   12608         \w
   12609         Any+
   12610         Any
   12611         Any++
   12612         \R
   12613         Any+
   12614         \H
   12615         Any+
   12616         \h
   12617         Any+
   12618         \V
   12619         Any+
   12620         \v
   12621         Any+
   12622         \Z
   12623         Any++
   12624         \z
   12625         Any+
   12626         $
   12627         Ket
   12628         End
   12629 ------------------------------------------------------------------
   12630 
   12631 / .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/Bsx
   12632 ------------------------------------------------------------------
   12633         Bra
   12634         AllAny+
   12635         \D
   12636         AllAny+
   12637         \d
   12638         AllAny+
   12639         \S
   12640         AllAny+
   12641         \s
   12642         AllAny+
   12643         \W
   12644         AllAny+
   12645         \w
   12646         AllAny+
   12647         AllAny
   12648         AllAny+
   12649         \R
   12650         AllAny+
   12651         \H
   12652         AllAny+
   12653         \h
   12654         AllAny+
   12655         \V
   12656         AllAny+
   12657         \v
   12658         AllAny+
   12659         \Z
   12660         AllAny++
   12661         \z
   12662         AllAny+
   12663         $
   12664         Ket
   12665         End
   12666 ------------------------------------------------------------------
   12667 
   12668 / \D+$  \d+$  \S+$  \s+$  \W+$  \w+$  \R+$  \H+$  \h+$  \V+$ \v+$  a+$   \n+$  .+$  .+$/Bmx
   12669 ------------------------------------------------------------------
   12670         Bra
   12671         \D+
   12672      /m $
   12673         \d++
   12674      /m $
   12675         \S++
   12676      /m $
   12677         \s+
   12678      /m $
   12679         \W+
   12680      /m $
   12681         \w++
   12682      /m $
   12683         \R+
   12684      /m $
   12685         \H+
   12686      /m $
   12687         \h+
   12688      /m $
   12689         \V+
   12690      /m $
   12691         \v+
   12692      /m $
   12693         a+
   12694      /m $
   12695         \x0a+
   12696      /m $
   12697         Any+
   12698      /m $
   12699         Any+
   12700      /m $
   12701         Ket
   12702         End
   12703 ------------------------------------------------------------------
   12704 
   12705 /(?=a+)a(a+)++a/B
   12706 ------------------------------------------------------------------
   12707         Bra
   12708         Assert
   12709         a++
   12710         Ket
   12711         a
   12712         CBraPos 1
   12713         a+
   12714         KetRpos
   12715         a
   12716         Ket
   12717         End
   12718 ------------------------------------------------------------------
   12719 
   12720 /a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/B
   12721 ------------------------------------------------------------------
   12722         Bra
   12723         a++
   12724         CBra 1
   12725         bb
   12726         Alt
   12727         cc
   12728         Ket
   12729         a++
   12730         Bra
   12731         bb
   12732         Alt
   12733         cc
   12734         Ket
   12735         a++
   12736         Once
   12737         bb
   12738         Alt
   12739         cc
   12740         Ket
   12741         a++
   12742         Bra
   12743         bb
   12744         Alt
   12745         cc
   12746         KetRmax
   12747         a+
   12748         CBra 2
   12749         aa
   12750         Ket
   12751         a+
   12752         Bra
   12753         bb
   12754         Alt
   12755         aa
   12756         Ket
   12757         Ket
   12758         End
   12759 ------------------------------------------------------------------
   12760 
   12761 /a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/B
   12762 ------------------------------------------------------------------
   12763         Bra
   12764         a++
   12765         Brazero
   12766         CBra 1
   12767         bb
   12768         Alt
   12769         cc
   12770         Ket
   12771         #
   12772         a++
   12773         Braminzero
   12774         Bra
   12775         bb
   12776         Alt
   12777         cc
   12778         Ket
   12779         #
   12780         a++
   12781         Once
   12782         Brazero
   12783         Bra
   12784         bb
   12785         Alt
   12786         cc
   12787         Ket
   12788         Ket
   12789         #
   12790         a++
   12791         Brazero
   12792         Bra
   12793         bb
   12794         Alt
   12795         cc
   12796         KetRmax
   12797         #
   12798         a+
   12799         Brazero
   12800         CBra 2
   12801         bb
   12802         Alt
   12803         cc
   12804         Ket
   12805         a#
   12806         a+
   12807         Brazero
   12808         Bra
   12809         aa
   12810         Ket
   12811         Ket
   12812         End
   12813 ------------------------------------------------------------------
   12814 
   12815 /a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/B
   12816 ------------------------------------------------------------------
   12817         Bra
   12818         a+
   12819         Brazero
   12820         Bra
   12821         bb
   12822         Ket
   12823         a#
   12824         a++
   12825         Bra
   12826         Alt
   12827         Alt
   12828         Alt
   12829         Ket
   12830         #
   12831         a+
   12832         Bra
   12833         Alt
   12834         b
   12835         Ket
   12836         a#
   12837         a+
   12838         Brazero
   12839         Bra
   12840         Alt
   12841         Alt
   12842         Alt
   12843         Ket
   12844         a
   12845         Ket
   12846         End
   12847 ------------------------------------------------------------------
   12848 
   12849 /[ab]*/B
   12850 ------------------------------------------------------------------
   12851         Bra
   12852         [ab]*+
   12853         Ket
   12854         End
   12855 ------------------------------------------------------------------
   12856     aaaa
   12857  0: aaaa
   12858 
   12859 /[ab]*?/B
   12860 ------------------------------------------------------------------
   12861         Bra
   12862         [ab]*?
   12863         Ket
   12864         End
   12865 ------------------------------------------------------------------
   12866     aaaa
   12867  0: 
   12868 
   12869 /[ab]?/B
   12870 ------------------------------------------------------------------
   12871         Bra
   12872         [ab]?+
   12873         Ket
   12874         End
   12875 ------------------------------------------------------------------
   12876     aaaa
   12877  0: a
   12878 
   12879 /[ab]??/B
   12880 ------------------------------------------------------------------
   12881         Bra
   12882         [ab]??
   12883         Ket
   12884         End
   12885 ------------------------------------------------------------------
   12886     aaaa
   12887  0: 
   12888 
   12889 /[ab]+/B
   12890 ------------------------------------------------------------------
   12891         Bra
   12892         [ab]++
   12893         Ket
   12894         End
   12895 ------------------------------------------------------------------
   12896     aaaa
   12897  0: aaaa
   12898 
   12899 /[ab]+?/B
   12900 ------------------------------------------------------------------
   12901         Bra
   12902         [ab]+?
   12903         Ket
   12904         End
   12905 ------------------------------------------------------------------
   12906     aaaa
   12907  0: a
   12908 
   12909 /[ab]{2,3}/B
   12910 ------------------------------------------------------------------
   12911         Bra
   12912         [ab]{2,3}+
   12913         Ket
   12914         End
   12915 ------------------------------------------------------------------
   12916     aaaa
   12917  0: aaa
   12918 
   12919 /[ab]{2,3}?/B
   12920 ------------------------------------------------------------------
   12921         Bra
   12922         [ab]{2,3}?
   12923         Ket
   12924         End
   12925 ------------------------------------------------------------------
   12926     aaaa
   12927  0: aa
   12928 
   12929 /[ab]{2,}/B
   12930 ------------------------------------------------------------------
   12931         Bra
   12932         [ab]{2,}+
   12933         Ket
   12934         End
   12935 ------------------------------------------------------------------
   12936     aaaa
   12937  0: aaaa
   12938 
   12939 /[ab]{2,}?/B
   12940 ------------------------------------------------------------------
   12941         Bra
   12942         [ab]{2,}?
   12943         Ket
   12944         End
   12945 ------------------------------------------------------------------
   12946     aaaa
   12947  0: aa
   12948 
   12949 /\d+\s{0,5}=\s*\S?=\w{0,4}\W*/B
   12950 ------------------------------------------------------------------
   12951         Bra
   12952         \d++
   12953         \s{0,5}+
   12954         =
   12955         \s*+
   12956         \S?
   12957         =
   12958         \w{0,4}+
   12959         \W*+
   12960         Ket
   12961         End
   12962 ------------------------------------------------------------------
   12963 
   12964 /[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/B
   12965 ------------------------------------------------------------------
   12966         Bra
   12967         [a-d]{5,12}+
   12968         [0-9e-z]*+
   12969         #
   12970         [\x00-`{-\xff] (neg)++
   12971         [b-y]*+
   12972         a
   12973         [2-7]?+
   12974         [\x00-/:-`{-\xff] (neg)++
   12975         Ket
   12976         End
   12977 ------------------------------------------------------------------
   12978 
   12979 /[a-z]*\s#[ \t]?\S#[a-c]*\S#[C-G]+?\d#[4-8]*\D#[4-9,]*\D#[!$]{0,5}\w#[M-Xf-l]+\W#[a-c,]?\W/B
   12980 ------------------------------------------------------------------
   12981         Bra
   12982         [a-z]*+
   12983         \s
   12984         #
   12985         [\x09 ]?+
   12986         \S
   12987         #
   12988         [a-c]*
   12989         \S
   12990         #
   12991         [C-G]++
   12992         \d
   12993         #
   12994         [4-8]*+
   12995         \D
   12996         #
   12997         [,4-9]*
   12998         \D
   12999         #
   13000         [!$]{0,5}+
   13001         \w
   13002         #
   13003         [M-Xf-l]++
   13004         \W
   13005         #
   13006         [,a-c]?
   13007         \W
   13008         Ket
   13009         End
   13010 ------------------------------------------------------------------
   13011 
   13012 /a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/B
   13013 ------------------------------------------------------------------
   13014         Bra
   13015         a+
   13016         Brazero
   13017         CBra 1
   13018         aa
   13019         Alt
   13020         bb
   13021         KetRmax
   13022         c#
   13023         a*
   13024         Brazero
   13025         CBra 2
   13026         bb
   13027         Alt
   13028         cc
   13029         KetRmax
   13030         a#
   13031         a?+
   13032         Brazero
   13033         CBra 3
   13034         bb
   13035         Alt
   13036         cc
   13037         KetRmax
   13038         d#
   13039         [a-f]*
   13040         Brazero
   13041         CBra 4
   13042         g
   13043         Alt
   13044         hh
   13045         KetRmax
   13046         f
   13047         Ket
   13048         End
   13049 ------------------------------------------------------------------
   13050 
   13051 /[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/B
   13052 ------------------------------------------------------------------
   13053         Bra
   13054         [a-f]*+
   13055         Brazero
   13056         CBra 1
   13057         g
   13058         Alt
   13059         hh
   13060         Alt
   13061         i
   13062         KetRmax
   13063         i#
   13064         [a-x]{4,}
   13065         Brazero
   13066         SCBra 2
   13067         y{0,6}
   13068         KetRmax
   13069         y#
   13070         [a-k]++
   13071         CBra 3
   13072         ll
   13073         Alt
   13074         mm
   13075         KetRmax
   13076         n
   13077         Ket
   13078         End
   13079 ------------------------------------------------------------------
   13080 
   13081 /[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/B
   13082 ------------------------------------------------------------------
   13083         Bra
   13084         [a-f]*+
   13085         Once
   13086         gg
   13087         Alt
   13088         hh
   13089         KetRmax
   13090         #
   13091         [a-f]*+
   13092         Brazero
   13093         Once
   13094         gg
   13095         Alt
   13096         hh
   13097         Ket
   13098         #
   13099         [a-f]*
   13100         Brazero
   13101         Once
   13102         gg
   13103         Alt
   13104         hh
   13105         KetRmax
   13106         a#
   13107         [a-f]*+
   13108         Brazero
   13109         Once
   13110         gg
   13111         Alt
   13112         hh
   13113         KetRmax
   13114         h
   13115         Ket
   13116         End
   13117 ------------------------------------------------------------------
   13118 
   13119 /[a-c]*d/IB
   13120 ------------------------------------------------------------------
   13121         Bra
   13122         [a-c]*+
   13123         d
   13124         Ket
   13125         End
   13126 ------------------------------------------------------------------
   13127 Capturing subpattern count = 0
   13128 Starting code units: a b c d 
   13129 Last code unit = 'd'
   13130 Subject length lower bound = 1
   13131 
   13132 /[a-c]+d/IB
   13133 ------------------------------------------------------------------
   13134         Bra
   13135         [a-c]++
   13136         d
   13137         Ket
   13138         End
   13139 ------------------------------------------------------------------
   13140 Capturing subpattern count = 0
   13141 Starting code units: a b c 
   13142 Last code unit = 'd'
   13143 Subject length lower bound = 2
   13144 
   13145 /[a-c]?d/IB
   13146 ------------------------------------------------------------------
   13147         Bra
   13148         [a-c]?+
   13149         d
   13150         Ket
   13151         End
   13152 ------------------------------------------------------------------
   13153 Capturing subpattern count = 0
   13154 Starting code units: a b c d 
   13155 Last code unit = 'd'
   13156 Subject length lower bound = 1
   13157 
   13158 /[a-c]{4,6}d/IB
   13159 ------------------------------------------------------------------
   13160         Bra
   13161         [a-c]{4,6}+
   13162         d
   13163         Ket
   13164         End
   13165 ------------------------------------------------------------------
   13166 Capturing subpattern count = 0
   13167 Starting code units: a b c 
   13168 Last code unit = 'd'
   13169 Subject length lower bound = 5
   13170 
   13171 /[a-c]{0,6}d/IB
   13172 ------------------------------------------------------------------
   13173         Bra
   13174         [a-c]{0,6}+
   13175         d
   13176         Ket
   13177         End
   13178 ------------------------------------------------------------------
   13179 Capturing subpattern count = 0
   13180 Starting code units: a b c d 
   13181 Last code unit = 'd'
   13182 Subject length lower bound = 1
   13183 
   13184 # End of special auto-possessive tests
   13185 
   13186 /^A\o{1239}B/
   13187 Failed: error 164 at offset 8: non-octal character in \o{} (closing brace missing?)
   13188     A\123B
   13189 
   13190 /^A\oB/
   13191 Failed: error 155 at offset 4: missing opening brace after \o
   13192 
   13193 /^A\x{zz}B/
   13194 Failed: error 167 at offset 5: non-hex character in \x{} (closing brace missing?)
   13195 
   13196 /^A\x{12Z/
   13197 Failed: error 167 at offset 7: non-hex character in \x{} (closing brace missing?)
   13198 
   13199 /^A\x{/
   13200 Failed: error 178 at offset 5: digits missing in \x{} or \o{} or \N{U+}
   13201 
   13202 /[ab]++/B,no_auto_possess
   13203 ------------------------------------------------------------------
   13204         Bra
   13205         [ab]++
   13206         Ket
   13207         End
   13208 ------------------------------------------------------------------
   13209 
   13210 /[^ab]*+/B,no_auto_possess
   13211 ------------------------------------------------------------------
   13212         Bra
   13213         [\x00-`c-\xff] (neg)*+
   13214         Ket
   13215         End
   13216 ------------------------------------------------------------------
   13217 
   13218 /a{4}+/B,no_auto_possess
   13219 ------------------------------------------------------------------
   13220         Bra
   13221         a{4}
   13222         Ket
   13223         End
   13224 ------------------------------------------------------------------
   13225 
   13226 /a{4}+/Bi,no_auto_possess
   13227 ------------------------------------------------------------------
   13228         Bra
   13229      /i a{4}
   13230         Ket
   13231         End
   13232 ------------------------------------------------------------------
   13233 
   13234 /[a-[:digit:]]+/
   13235 Failed: error 150 at offset 4: invalid range in character class
   13236 
   13237 /[A-[:digit:]]+/
   13238 Failed: error 150 at offset 4: invalid range in character class
   13239 
   13240 /[a-[.xxx.]]+/
   13241 Failed: error 150 at offset 4: invalid range in character class
   13242 
   13243 /[a-[=xxx=]]+/
   13244 Failed: error 150 at offset 4: invalid range in character class
   13245 
   13246 /[a-[!xxx!]]+/
   13247 Failed: error 108 at offset 3: range out of order in character class
   13248 
   13249 /[A-[!xxx!]]+/
   13250     A]]]
   13251  0: A]]]
   13252 
   13253 /[a-\d]+/
   13254 Failed: error 150 at offset 5: invalid range in character class
   13255 
   13256 /(?<0abc>xx)/
   13257 Failed: error 144 at offset 3: group name must start with a non-digit
   13258 
   13259 /(?&1abc)xx(?<1abc>y)/
   13260 Failed: error 144 at offset 3: group name must start with a non-digit
   13261 
   13262 /(?<ab-cd>xx)/
   13263 Failed: error 142 at offset 5: syntax error in subpattern name (missing terminator)
   13264 
   13265 /(?'0abc'xx)/
   13266 Failed: error 144 at offset 3: group name must start with a non-digit
   13267 
   13268 /(?P<0abc>xx)/
   13269 Failed: error 144 at offset 4: group name must start with a non-digit
   13270 
   13271 /\k<5ghj>/
   13272 Failed: error 144 at offset 3: group name must start with a non-digit
   13273 
   13274 /\k'5ghj'/
   13275 Failed: error 144 at offset 3: group name must start with a non-digit
   13276 
   13277 /\k{2fgh}/
   13278 Failed: error 144 at offset 3: group name must start with a non-digit
   13279 
   13280 /(?P=8yuki)/
   13281 Failed: error 144 at offset 4: group name must start with a non-digit
   13282 
   13283 /\g{4df}/
   13284 Failed: error 157 at offset 2: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number
   13285 
   13286 /(?&1abc)xx(?<1abc>y)/
   13287 Failed: error 144 at offset 3: group name must start with a non-digit
   13288 
   13289 /(?P>1abc)xx(?<1abc>y)/
   13290 Failed: error 144 at offset 4: group name must start with a non-digit
   13291 
   13292 /\g'3gh'/
   13293 Failed: error 157 at offset 2: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number
   13294 
   13295 /\g<5fg>/
   13296 Failed: error 157 at offset 2: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number
   13297 
   13298 /(?(<4gh>)abc)/
   13299 Failed: error 144 at offset 4: group name must start with a non-digit
   13300 
   13301 /(?('4gh')abc)/
   13302 Failed: error 144 at offset 4: group name must start with a non-digit
   13303 
   13304 /(?(4gh)abc)/
   13305 Failed: error 124 at offset 4: missing closing parenthesis for condition
   13306 
   13307 /(?(R&6yh)abc)/
   13308 Failed: error 144 at offset 5: group name must start with a non-digit
   13309 
   13310 /(((a\2)|(a*)\g<-1>))*a?/B
   13311 ------------------------------------------------------------------
   13312         Bra
   13313         Brazero
   13314         SCBra 1
   13315         Once
   13316         CBra 2
   13317         CBra 3
   13318         a
   13319         \2
   13320         Ket
   13321         Alt
   13322         CBra 4
   13323         a*
   13324         Ket
   13325         Recurse
   13326         Ket
   13327         Ket
   13328         KetRmax
   13329         a?+
   13330         Ket
   13331         End
   13332 ------------------------------------------------------------------
   13333 
   13334 # Test the ugly "start or end of word" compatibility syntax.
   13335 
   13336 /[[:<:]]red[[:>:]]/B
   13337 ------------------------------------------------------------------
   13338         Bra
   13339         \b
   13340         Assert
   13341         \w
   13342         Ket
   13343         red
   13344         \b
   13345         AssertB
   13346         Reverse
   13347         \w
   13348         Ket
   13349         Ket
   13350         End
   13351 ------------------------------------------------------------------
   13352     little red riding hood
   13353  0: red
   13354     a /red/ thing
   13355  0: red
   13356     red is a colour
   13357  0: red
   13358     put it all on red
   13359  0: red
   13360 \= Expect no match
   13361     no reduction
   13362 No match
   13363     Alfred Winifred
   13364 No match
   13365 
   13366 /[a[:<:]] should give error/
   13367 Failed: error 130 at offset 4: unknown POSIX class name
   13368 
   13369 /(?=ab\K)/aftertext
   13370     abcd\=startchar
   13371 Start of matched string is beyond its end - displaying from end to start.
   13372  0: ab
   13373  0+ abcd
   13374 
   13375 /abcd/newline=lf,firstline
   13376 \= Expect no match
   13377     xx\nxabcd
   13378 No match
   13379 
   13380 # Test stack guard external calls.
   13381 
   13382 /(((a)))/stackguard=1
   13383 Failed: error 133 at offset 7: parentheses are too deeply nested (stack check)
   13384 
   13385 /(((a)))/stackguard=2
   13386 Failed: error 133 at offset 7: parentheses are too deeply nested (stack check)
   13387 
   13388 /(((a)))/stackguard=3
   13389 
   13390 /(((((a)))))/
   13391 
   13392 # End stack guard tests
   13393 
   13394 /^\w+(?>\s*)(?<=\w)/B
   13395 ------------------------------------------------------------------
   13396         Bra
   13397         ^
   13398         \w+
   13399         Once
   13400         \s*+
   13401         Ket
   13402         AssertB
   13403         Reverse
   13404         \w
   13405         Ket
   13406         Ket
   13407         End
   13408 ------------------------------------------------------------------
   13409 
   13410 /\othing/
   13411 Failed: error 155 at offset 2: missing opening brace after \o
   13412 
   13413 /\o{}/
   13414 Failed: error 178 at offset 3: digits missing in \x{} or \o{} or \N{U+}
   13415 
   13416 /\o{whatever}/
   13417 Failed: error 164 at offset 3: non-octal character in \o{} (closing brace missing?)
   13418 
   13419 /\xthing/
   13420 
   13421 /\x{}/
   13422 Failed: error 178 at offset 3: digits missing in \x{} or \o{} or \N{U+}
   13423 
   13424 /\x{whatever}/
   13425 Failed: error 167 at offset 3: non-hex character in \x{} (closing brace missing?)
   13426 
   13427 /A\8B/
   13428 Failed: error 115 at offset 2: reference to non-existent subpattern
   13429 
   13430 /A\9B/
   13431 Failed: error 115 at offset 2: reference to non-existent subpattern
   13432 
   13433 # This one is here because Perl fails to match "12" for this pattern when the $
   13434 # is present.
   13435 
   13436 /^(?(?=abc)\w{3}:|\d\d)$/
   13437     abc:
   13438  0: abc:
   13439     12
   13440  0: 12
   13441 \= Expect no match
   13442     123
   13443 No match
   13444     xyz
   13445 No match
   13446 
   13447 # Perl gets this one wrong, giving "a" as the after text for ca and failing to
   13448 # match for cd.
   13449 
   13450 /(?(?=ab)ab)/aftertext
   13451     abxxx
   13452  0: ab
   13453  0+ xxx
   13454     ca
   13455  0: 
   13456  0+ ca
   13457     cd
   13458  0: 
   13459  0+ cd
   13460 
   13461 # This should test both paths for processing OP_RECURSE.
   13462 
   13463 /(?(R)a+|(?R)b)/
   13464     aaaabcde
   13465  0: aaaab
   13466     aaaabcde\=ovector=100
   13467  0: aaaab
   13468 
   13469 /a*?b*?/
   13470     ab
   13471  0: 
   13472 
   13473 /(*NOTEMPTY)a*?b*?/
   13474     ab
   13475  0: a
   13476     ba
   13477  0: b
   13478     cb
   13479  0: b
   13480 
   13481 /(*NOTEMPTY_ATSTART)a*?b*?/aftertext
   13482     ab
   13483  0: a
   13484  0+ b
   13485     cdab
   13486  0: 
   13487  0+ dab
   13488 
   13489 /(?(VERSION>=10.0)yes|no)/I
   13490 Capturing subpattern count = 0
   13491 Subject length lower bound = 2
   13492     yesno
   13493  0: yes
   13494 
   13495 /(?(VERSION>=10.04)yes|no)/
   13496     yesno
   13497  0: yes
   13498 
   13499 /(?(VERSION=8)yes){3}/BI,aftertext
   13500 ------------------------------------------------------------------
   13501         Bra
   13502         Cond
   13503         Cond false
   13504         yes
   13505         Ket
   13506         Ket
   13507         End
   13508 ------------------------------------------------------------------
   13509 Capturing subpattern count = 0
   13510 May match empty string
   13511 Subject length lower bound = 0
   13512     yesno
   13513  0: 
   13514  0+ yesno
   13515 
   13516 /(?(VERSION=8)yes|no){3}/I
   13517 Capturing subpattern count = 0
   13518 Subject length lower bound = 6
   13519     yesnononoyes
   13520  0: nonono
   13521 \= Expect no match
   13522     yesno
   13523 No match
   13524 
   13525 /(?:(?<VERSION>abc)|xyz)(?(VERSION)yes|no)/I
   13526 Capturing subpattern count = 1
   13527 Max back reference = 1
   13528 Named capturing subpatterns:
   13529   VERSION   1
   13530 Starting code units: a x 
   13531 Subject length lower bound = 5
   13532     abcyes
   13533  0: abcyes
   13534  1: abc
   13535     xyzno
   13536  0: xyzno
   13537 \= Expect no match
   13538     abcno
   13539 No match
   13540     xyzyes
   13541 No match
   13542 
   13543 /(?(VERSION<10)yes|no)/
   13544 Failed: error 179 at offset 10: syntax error or number too big in (?(VERSION condition
   13545 
   13546 /(?(VERSION>10)yes|no)/
   13547 Failed: error 179 at offset 11: syntax error or number too big in (?(VERSION condition
   13548 
   13549 /(?(VERSION>=10.0.0)yes|no)/
   13550 Failed: error 179 at offset 16: syntax error or number too big in (?(VERSION condition
   13551 
   13552 /(?(VERSION=10.101)yes|no)/
   13553 Failed: error 179 at offset 16: syntax error or number too big in (?(VERSION condition
   13554 
   13555 /abcd/I
   13556 Capturing subpattern count = 0
   13557 First code unit = 'a'
   13558 Last code unit = 'd'
   13559 Subject length lower bound = 4
   13560 
   13561 /abcd/I,no_start_optimize
   13562 Capturing subpattern count = 0
   13563 Options: no_start_optimize
   13564 Subject length lower bound = 0
   13565 
   13566 /(|ab)*?d/I
   13567 Capturing subpattern count = 1
   13568 Starting code units: a d 
   13569 Last code unit = 'd'
   13570 Subject length lower bound = 1
   13571    abd
   13572  0: abd
   13573  1: ab
   13574    xyd
   13575  0: d
   13576 
   13577 /(|ab)*?d/I,no_start_optimize
   13578 Capturing subpattern count = 1
   13579 Options: no_start_optimize
   13580 Subject length lower bound = 0
   13581    abd
   13582  0: abd
   13583  1: ab
   13584    xyd
   13585  0: d
   13586 
   13587 /\k<A>*(?<A>aa)(?<A>bb)/match_unset_backref,dupnames
   13588     aabb
   13589  0: aabb
   13590  1: aa
   13591  2: bb
   13592 
   13593 /(((((a)))))/parens_nest_limit=2
   13594 Failed: error 119 at offset 3: parentheses are too deeply nested
   13595 
   13596 /abc/replace=XYZ
   13597     123123
   13598  0: 123123
   13599     123abc123
   13600  1: 123XYZ123
   13601     123abc123abc123
   13602  1: 123XYZ123abc123
   13603     123123\=zero_terminate
   13604  0: 123123
   13605     123abc123\=zero_terminate
   13606  1: 123XYZ123
   13607     123abc123abc123\=zero_terminate
   13608  1: 123XYZ123abc123
   13609 
   13610 /abc/g,replace=XYZ
   13611     123abc123
   13612  1: 123XYZ123
   13613     123abc123abc123
   13614  2: 123XYZ123XYZ123
   13615 
   13616 /abc/replace=X$$Z
   13617     123abc123
   13618  1: 123X$Z123
   13619 
   13620 /abc/g,replace=X$$Z
   13621     123abc123abc123
   13622  2: 123X$Z123X$Z123
   13623 
   13624 /a(b)c(d)e/replace=X$1Y${2}Z
   13625     "abcde"
   13626  1: "XbYdZ"
   13627 
   13628 /a(b)c(d)e/replace=X$1Y${2}Z,global
   13629     "abcde-abcde"
   13630  2: "XbYdZ-XbYdZ"
   13631 
   13632 /a(?<ONE>b)c(?<TWO>d)e/replace=X$ONE+${TWO}Z
   13633     "abcde"
   13634  1: "Xb+dZ"
   13635 
   13636 /a(?<ONE>b)c(?<TWO>d)e/g,replace=X$ONE+${TWO}Z
   13637     "abcde-abcde-"
   13638  2: "Xb+dZ-Xb+dZ-"
   13639 
   13640 /abc/replace=a$++
   13641     123abc
   13642 Failed: error -35 at offset 2 in replacement: invalid replacement string
   13643 
   13644 /abc/replace=a$bad
   13645     123abc
   13646 Failed: error -49 at offset 5 in replacement: unknown substring
   13647 
   13648 /abc/replace=a${A234567890123456789_123456789012}z
   13649     123abc
   13650 Failed: error -49 at offset 36 in replacement: unknown substring
   13651 
   13652 /abc/replace=a${A23456789012345678901234567890123}z
   13653     123abc
   13654 Failed: error -35 at offset 35 in replacement: invalid replacement string
   13655 
   13656 /abc/replace=a${bcd
   13657     123abc
   13658 Failed: error -58 at offset 6 in replacement: expected closing curly bracket in replacement string
   13659 
   13660 /abc/replace=a${b+d}z
   13661     123abc
   13662 Failed: error -58 at offset 4 in replacement: expected closing curly bracket in replacement string
   13663 
   13664 /abc/replace=[10]XYZ
   13665     123abc123
   13666  1: 123XYZ123
   13667 
   13668 /abc/replace=[9]XYZ
   13669     123abc123
   13670 Failed: error -48: no more memory
   13671 
   13672 /abc/replace=xyz
   13673     1abc2\=partial_hard
   13674 Failed: error -34: bad option value
   13675 
   13676 /abc/replace=xyz
   13677     123abc456
   13678  1: 123xyz456
   13679     123abc456\=replace=pqr
   13680  1: 123pqr456
   13681     123abc456abc789
   13682  1: 123xyz456abc789
   13683     123abc456abc789\=g
   13684  2: 123xyz456xyz789
   13685 
   13686 /(?<=abc)(|def)/g,replace=<$0>
   13687     123abcxyzabcdef789abcpqr
   13688  4: 123abc<>xyzabc<><def>789abc<>pqr
   13689 
   13690 /./replace=$0
   13691     a
   13692  1: a
   13693 
   13694 /(.)(.)/replace=$2+$1
   13695     abc
   13696  1: b+ac
   13697 
   13698 /(?<A>.)(?<B>.)/replace=$B+$A
   13699     abc
   13700  1: b+ac
   13701 
   13702 /(.)(.)/g,replace=$2$1
   13703     abcdefgh
   13704  4: badcfehg
   13705 
   13706 /(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=${*MARK}
   13707     apple lemon blackberry
   13708  3: pear orange strawberry
   13709     apple strudel
   13710  1: pear strudel
   13711     fruitless
   13712  0: fruitless
   13713 
   13714 /(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/replace=${*MARK} sauce,
   13715     apple lemon blackberry
   13716  1: pear sauce lemon blackberry
   13717 
   13718 /(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=<$*MARK>
   13719     apple lemon blackberry
   13720  3: <pear> <orange> <strawberry>
   13721     apple strudel
   13722  1: <pear> strudel
   13723     fruitless
   13724  0: fruitless
   13725 
   13726 /(*:pear)apple/g,replace=${*MARKING}
   13727     apple lemon blackberry
   13728 Failed: error -35 at offset 11 in replacement: invalid replacement string
   13729 
   13730 /(*:pear)apple/g,replace=${*MARK-time
   13731     apple lemon blackberry
   13732 Failed: error -58 at offset 7 in replacement: expected closing curly bracket in replacement string
   13733 
   13734 /(*:pear)apple/g,replace=${*mark}
   13735     apple lemon blackberry
   13736 Failed: error -35 at offset 8 in replacement: invalid replacement string
   13737 
   13738 /(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=<$*MARKET>
   13739     apple lemon blackberry
   13740 Failed: error -35 at offset 9 in replacement: invalid replacement string
   13741 
   13742 /(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=[22]${*MARK}
   13743     apple lemon blackberry
   13744 Failed: error -48: no more memory
   13745     apple lemon blackberry\=substitute_overflow_length
   13746 Failed: error -48: no more memory: 23 code units are needed
   13747 
   13748 /(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=[23]${*MARK}
   13749     apple lemon blackberry
   13750  3: pear orange strawberry
   13751 
   13752 /abc/
   13753     123abc123\=replace=[9]XYZ
   13754 Failed: error -48: no more memory
   13755     123abc123\=substitute_overflow_length,replace=[9]XYZ
   13756 Failed: error -48: no more memory: 10 code units are needed
   13757     123abc123\=substitute_overflow_length,replace=[6]XYZ
   13758 Failed: error -48: no more memory: 10 code units are needed
   13759     123abc123\=substitute_overflow_length,replace=[1]XYZ
   13760 Failed: error -48: no more memory: 10 code units are needed
   13761     123abc123\=substitute_overflow_length,replace=[0]XYZ
   13762 Failed: error -48: no more memory: 10 code units are needed
   13763 
   13764 /a(b)c/
   13765     123abc123\=replace=[9]x$1z
   13766 Failed: error -48: no more memory
   13767     123abc123\=substitute_overflow_length,replace=[9]x$1z
   13768 Failed: error -48: no more memory: 10 code units are needed
   13769     123abc123\=substitute_overflow_length,replace=[6]x$1z
   13770 Failed: error -48: no more memory: 10 code units are needed
   13771     123abc123\=substitute_overflow_length,replace=[1]x$1z
   13772 Failed: error -48: no more memory: 10 code units are needed
   13773     123abc123\=substitute_overflow_length,replace=[0]x$1z
   13774 Failed: error -48: no more memory: 10 code units are needed
   13775 
   13776 "((?=(?(?=(?(?=(?(?=()))))))))"
   13777     a
   13778  0: 
   13779  1: 
   13780  2: 
   13781 
   13782 "(?(?=)==)(((((((((?=)))))))))"
   13783 \= Expect no match
   13784     a
   13785 No match
   13786 
   13787 /(a)(b)|(c)/
   13788     XcX\=ovector=2,get=1,get=2,get=3,get=4,getall
   13789 Matched, but too many substrings
   13790  0: c
   13791  1: <unset>
   13792 Get substring 1 failed (-55): requested value is not set
   13793 Get substring 2 failed (-54): requested value is not available
   13794 Get substring 3 failed (-54): requested value is not available
   13795 Get substring 4 failed (-49): unknown substring
   13796  0L c
   13797  1L 
   13798 
   13799 /x(?=ab\K)/
   13800     xab\=get=0
   13801 Start of matched string is beyond its end - displaying from end to start.
   13802  0: ab
   13803  0G  (0)
   13804     xab\=copy=0
   13805 Start of matched string is beyond its end - displaying from end to start.
   13806  0: ab
   13807  0C  (0)
   13808     xab\=getall
   13809 Start of matched string is beyond its end - displaying from end to start.
   13810  0: ab
   13811  0L 
   13812 
   13813 /(?<A>a)|(?<A>b)/dupnames
   13814     a\=ovector=1,copy=A,get=A,get=2
   13815 Matched, but too many substrings
   13816  0: a
   13817 Copy substring 'A' failed (-54): requested value is not available
   13818 Get substring 2 failed (-54): requested value is not available
   13819 Get substring 'A' failed (-54): requested value is not available
   13820     a\=ovector=2,copy=A,get=A,get=2
   13821  0: a
   13822  1: a
   13823   C a (1) A (non-unique)
   13824 Get substring 2 failed (-54): requested value is not available
   13825   G a (1) A (non-unique)
   13826     b\=ovector=2,copy=A,get=A,get=2
   13827 Matched, but too many substrings
   13828  0: b
   13829  1: <unset>
   13830 Copy substring 'A' failed (-55): requested value is not set
   13831 Get substring 2 failed (-54): requested value is not available
   13832 Get substring 'A' failed (-55): requested value is not set
   13833 
   13834 /a(b)c(d)/
   13835     abc\=ph,copy=0,copy=1,getall
   13836 Partial match: abc
   13837  0C abc (3)
   13838 Copy substring 1 failed (-2): partial match
   13839 get substring list failed (-2): partial match
   13840 
   13841 /^abc/info
   13842 Capturing subpattern count = 0
   13843 Compile options: <none>
   13844 Overall options: anchored
   13845 First code unit = 'a'
   13846 Subject length lower bound = 3
   13847 
   13848 /^abc/info,no_dotstar_anchor
   13849 Capturing subpattern count = 0
   13850 Compile options: no_dotstar_anchor
   13851 Overall options: anchored no_dotstar_anchor
   13852 First code unit = 'a'
   13853 Subject length lower bound = 3
   13854 
   13855 /.*\d/info,auto_callout
   13856 Capturing subpattern count = 0
   13857 Options: auto_callout
   13858 First code unit at start or follows newline
   13859 Subject length lower bound = 1
   13860 \= Expect no match
   13861     aaa
   13862 --->aaa
   13863  +0 ^       .*
   13864  +2 ^  ^    \d
   13865  +2 ^ ^     \d
   13866  +2 ^^      \d
   13867  +2 ^       \d
   13868 No match
   13869 
   13870 /.*\d/info,no_dotstar_anchor,auto_callout
   13871 Capturing subpattern count = 0
   13872 Options: auto_callout no_dotstar_anchor
   13873 Subject length lower bound = 1
   13874 \= Expect no match
   13875     aaa
   13876 --->aaa
   13877  +0 ^       .*
   13878  +2 ^  ^    \d
   13879  +2 ^ ^     \d
   13880  +2 ^^      \d
   13881  +2 ^       \d
   13882  +0  ^      .*
   13883  +2  ^ ^    \d
   13884  +2  ^^     \d
   13885  +2  ^      \d
   13886  +0   ^     .*
   13887  +2   ^^    \d
   13888  +2   ^     \d
   13889 No match
   13890 
   13891 /.*\d/dotall,info
   13892 Capturing subpattern count = 0
   13893 Compile options: dotall
   13894 Overall options: anchored dotall
   13895 Subject length lower bound = 1
   13896 
   13897 /.*\d/dotall,no_dotstar_anchor,info
   13898 Capturing subpattern count = 0
   13899 Options: dotall no_dotstar_anchor
   13900 Subject length lower bound = 1
   13901 
   13902 /(*NO_DOTSTAR_ANCHOR)(?s).*\d/info
   13903 Capturing subpattern count = 0
   13904 Compile options: <none>
   13905 Overall options: no_dotstar_anchor
   13906 Subject length lower bound = 1
   13907 
   13908 '^(?:(a)|b)(?(1)A|B)'
   13909     aA123\=ovector=1
   13910 Matched, but too many substrings
   13911  0: aA
   13912     aA123\=ovector=2
   13913  0: aA
   13914  1: a
   13915 
   13916 '^(?:(?<AA>a)|b)(?(<AA>)A|B)'
   13917     aA123\=ovector=1
   13918 Matched, but too many substrings
   13919  0: aA
   13920     aA123\=ovector=2
   13921  0: aA
   13922  1: a
   13923 
   13924 '^(?<AA>)(?:(?<AA>a)|b)(?(<AA>)A|B)'dupnames
   13925     aA123\=ovector=1
   13926 Matched, but too many substrings
   13927  0: aA
   13928     aA123\=ovector=2
   13929 Matched, but too many substrings
   13930  0: aA
   13931  1: 
   13932     aA123\=ovector=3
   13933  0: aA
   13934  1: 
   13935  2: a
   13936 
   13937 '^(?:(?<AA>X)|)(?:(?<AA>a)|b)\k{AA}'dupnames
   13938     aa123\=ovector=1
   13939 Matched, but too many substrings
   13940  0: aa
   13941     aa123\=ovector=2
   13942 Matched, but too many substrings
   13943  0: aa
   13944  1: <unset>
   13945     aa123\=ovector=3
   13946  0: aa
   13947  1: <unset>
   13948  2: a
   13949 
   13950 /(?<N111>(?J)(?<N111>1(111111)11|)1|1|)(?(<N111>)1)/
   13951 
   13952 /(?<N>(?J)(?<N>))(?-J)\k<N>/
   13953 
   13954 # Quantifiers are not allowed on condition assertions, but are otherwise
   13955 # OK in conditions.
   13956 
   13957 /(?(?=0)?)+/
   13958 Failed: error 109 at offset 7: quantifier does not follow a repeatable item
   13959 
   13960 /(?(?=0)(?=00)?00765)/
   13961      00765
   13962  0: 00765
   13963 
   13964 /(?(?=0)(?=00)?00765|(?!3).56)/
   13965      00765
   13966  0: 00765
   13967      456
   13968  0: 456
   13969 \= Expect no match
   13970      356
   13971 No match
   13972 
   13973 '^(a)*+(\w)'
   13974     g
   13975  0: g
   13976  1: <unset>
   13977  2: g
   13978     g\=ovector=1
   13979 Matched, but too many substrings
   13980  0: g
   13981 
   13982 '^(?:a)*+(\w)'
   13983     g
   13984  0: g
   13985  1: g
   13986     g\=ovector=1
   13987 Matched, but too many substrings
   13988  0: g
   13989 
   13990 # These two pattern showeds up compile-time bugs
   13991 
   13992 "((?2){0,1999}())?"
   13993 
   13994 /((?+1)(\1))/B
   13995 ------------------------------------------------------------------
   13996         Bra
   13997         Once
   13998         CBra 1
   13999         Recurse
   14000         CBra 2
   14001         \1
   14002         Ket
   14003         Ket
   14004         Ket
   14005         Ket
   14006         End
   14007 ------------------------------------------------------------------
   14008 
   14009 # Callouts with string arguments
   14010 
   14011 /a(?C"/
   14012 Failed: error 181 at offset 4: missing terminating delimiter for callout with string argument
   14013 
   14014 /a(?C"a/
   14015 Failed: error 181 at offset 4: missing terminating delimiter for callout with string argument
   14016 
   14017 /a(?C"a"/
   14018 Failed: error 139 at offset 7: closing parenthesis for (?C expected
   14019 
   14020 /a(?C"a"bcde(?C"b")xyz/
   14021 Failed: error 139 at offset 7: closing parenthesis for (?C expected
   14022 
   14023 /a(?C"a)b""c")/B
   14024 ------------------------------------------------------------------
   14025         Bra
   14026         a
   14027         CalloutStr "a)b"c" 5 13 0
   14028         Ket
   14029         End
   14030 ------------------------------------------------------------------
   14031 
   14032 /ab(?C" any text with spaces ")cde/B
   14033 ------------------------------------------------------------------
   14034         Bra
   14035         ab
   14036         CalloutStr " any text with spaces " 6 30 1
   14037         cde
   14038         Ket
   14039         End
   14040 ------------------------------------------------------------------
   14041     abcde
   14042 Callout (6): " any text with spaces "
   14043 --->abcde
   14044     ^ ^       c
   14045  0: abcde
   14046     12abcde
   14047 Callout (6): " any text with spaces "
   14048 --->12abcde
   14049       ^ ^       c
   14050  0: abcde
   14051 
   14052 /^a(b)c(?C1)def/
   14053       abcdef
   14054 --->abcdef
   14055   1 ^  ^       d
   14056  0: abcdef
   14057  1: b
   14058 
   14059 /^a(b)c(?C"AB")def/
   14060       abcdef
   14061 Callout (10): "AB"
   14062 --->abcdef
   14063     ^  ^       d
   14064  0: abcdef
   14065  1: b
   14066 
   14067 /^a(b)c(?C1)def/
   14068       abcdef\=callout_capture
   14069 Callout 1: last capture = 1
   14070  1: b
   14071 --->abcdef
   14072     ^  ^       d
   14073  0: abcdef
   14074  1: b
   14075 
   14076 /^a(b)c(?C{AB})def/B
   14077 ------------------------------------------------------------------
   14078         Bra
   14079         ^
   14080         a
   14081         CBra 1
   14082         b
   14083         Ket
   14084         c
   14085         CalloutStr {AB} 10 14 1
   14086         def
   14087         Ket
   14088         End
   14089 ------------------------------------------------------------------
   14090       abcdef\=callout_capture
   14091 Callout (10): {AB} last capture = 1
   14092  1: b
   14093 --->abcdef
   14094     ^  ^       d
   14095  0: abcdef
   14096  1: b
   14097 
   14098 /(?C`a``b`)(?C'a''b')(?C"a""b")(?C^a^^b^)(?C%a%%b%)(?C#a##b#)(?C$a$$b$)(?C{a}}b})/B,callout_info
   14099 ------------------------------------------------------------------
   14100         Bra
   14101         CalloutStr `a`b` 4 10 0
   14102         CalloutStr 'a'b' 14 20 0
   14103         CalloutStr "a"b" 24 30 0
   14104         CalloutStr ^a^b^ 34 40 0
   14105         CalloutStr %a%b% 44 50 0
   14106         CalloutStr #a#b# 54 60 0
   14107         CalloutStr $a$b$ 64 70 0
   14108         CalloutStr {a}b} 74 80 0
   14109         Ket
   14110         End
   14111 ------------------------------------------------------------------
   14112 Callout `a`b`  (
   14113 Callout 'a'b'  (
   14114 Callout "a"b"  (
   14115 Callout ^a^b^  (
   14116 Callout %a%b%  (
   14117 Callout #a#b#  (
   14118 Callout $a$b$  (
   14119 Callout {a}b}  
   14120 
   14121 /(?:a(?C`code`)){3}/B
   14122 ------------------------------------------------------------------
   14123         Bra
   14124         Bra
   14125         a
   14126         CalloutStr `code` 8 14 4
   14127         Ket
   14128         Bra
   14129         a
   14130         CalloutStr `code` 8 14 4
   14131         Ket
   14132         Bra
   14133         a
   14134         CalloutStr `code` 8 14 4
   14135         Ket
   14136         Ket
   14137         End
   14138 ------------------------------------------------------------------
   14139 
   14140 /^(?(?C25)(?=abc)abcd|xyz)/B,callout_info
   14141 ------------------------------------------------------------------
   14142         Bra
   14143         ^
   14144         Cond
   14145         Callout 25 9 3
   14146         Assert
   14147         abc
   14148         Ket
   14149         abcd
   14150         Alt
   14151         xyz
   14152         Ket
   14153         Ket
   14154         End
   14155 ------------------------------------------------------------------
   14156 Callout 25  (?=
   14157     abcdefg
   14158 --->abcdefg
   14159  25 ^           (?=
   14160  0: abcd
   14161     xyz123
   14162 --->xyz123
   14163  25 ^          (?=
   14164  0: xyz
   14165 
   14166 /^(?(?C$abc$)(?=abc)abcd|xyz)/B
   14167 ------------------------------------------------------------------
   14168         Bra
   14169         ^
   14170         Cond
   14171         CalloutStr $abc$ 7 12 3
   14172         Assert
   14173         abc
   14174         Ket
   14175         abcd
   14176         Alt
   14177         xyz
   14178         Ket
   14179         Ket
   14180         End
   14181 ------------------------------------------------------------------
   14182     abcdefg
   14183 Callout (7): $abc$
   14184 --->abcdefg
   14185     ^           (?=
   14186  0: abcd
   14187     xyz123
   14188 Callout (7): $abc$
   14189 --->xyz123
   14190     ^          (?=
   14191  0: xyz
   14192 
   14193 /^ab(?C'first')cd(?C"second")ef/
   14194     abcdefg
   14195 Callout (7): 'first'
   14196 --->abcdefg
   14197     ^ ^         c
   14198 Callout (20): "second"
   14199 --->abcdefg
   14200     ^   ^       e
   14201  0: abcdef
   14202 
   14203 /(?:a(?C`code`)){3}X/
   14204     aaaXY
   14205 Callout (8): `code`
   14206 --->aaaXY
   14207     ^^        ){3}
   14208 Callout (8): `code`
   14209 --->aaaXY
   14210     ^ ^       ){3}
   14211 Callout (8): `code`
   14212 --->aaaXY
   14213     ^  ^      ){3}
   14214  0: aaaX
   14215 
   14216 # Binary zero in callout string
   14217 #  a  (  ?  C  '  x     z  '  )  b
   14218 / 61 28 3f 43 27 78 00 7a 27 29 62/hex,callout_info
   14219 Callout 'x\x00z'  b
   14220     abcdefgh
   14221 Callout (5): 'x\x00z'
   14222 --->abcdefgh
   14223     ^^           b
   14224  0: ab
   14225 
   14226 /(?(?!)^)/
   14227 
   14228 /(?(?!)a|b)/
   14229     bbb
   14230  0: b
   14231 \= Expect no match
   14232     aaa
   14233 No match
   14234 
   14235 # JIT gives a different error message for the infinite recursion
   14236 
   14237 "(*NO_JIT)((?2)+)((?1)){"
   14238     abcd{
   14239 Failed: error -52: nested recursion at the same subject position
   14240 
   14241 # Perl fails to diagnose the absence of an assertion
   14242 
   14243 "(?(?<E>.*!.*)?)"
   14244 Failed: error 128 at offset 2: assertion expected after (?( or (?(?C)
   14245 
   14246 "X((?2)()*+){2}+"B
   14247 ------------------------------------------------------------------
   14248         Bra
   14249         X
   14250         Once
   14251         CBra 1
   14252         Recurse
   14253         Braposzero
   14254         SCBraPos 2
   14255         KetRpos
   14256         Ket
   14257         CBra 1
   14258         Recurse
   14259         Braposzero
   14260         SCBraPos 2
   14261         KetRpos
   14262         Ket
   14263         Ket
   14264         Ket
   14265         End
   14266 ------------------------------------------------------------------
   14267 
   14268 "X((?2)()*+){2}"B
   14269 ------------------------------------------------------------------
   14270         Bra
   14271         X
   14272         CBra 1
   14273         Recurse
   14274         Braposzero
   14275         SCBraPos 2
   14276         KetRpos
   14277         Ket
   14278         CBra 1
   14279         Recurse
   14280         Braposzero
   14281         SCBraPos 2
   14282         KetRpos
   14283         Ket
   14284         Ket
   14285         End
   14286 ------------------------------------------------------------------
   14287 
   14288 /(?<=\bABQ(3(?-7)))/
   14289 Failed: error 115 at offset 15: reference to non-existent subpattern
   14290 
   14291 /(?<=\bABQ(3(?+7)))/
   14292 Failed: error 115 at offset 15: reference to non-existent subpattern
   14293 
   14294 ";(?<=()((?3))((?2)))"
   14295 Failed: error 125 at offset 1: lookbehind assertion is not fixed length
   14296 
   14297 # Perl loops on this (PCRE2 used to!)
   14298 
   14299 /(?<=\Ka)/g,aftertext
   14300     aaaaa
   14301  0: a
   14302  0+ aaaa
   14303  0: a
   14304  0+ aaa
   14305  0: a
   14306  0+ aa
   14307  0: a
   14308  0+ a
   14309  0: a
   14310  0+ 
   14311 
   14312 /(?<=\Ka)/altglobal,aftertext
   14313     aaaaa
   14314  0: a
   14315  0+ aaaa
   14316  0: a
   14317  0+ aaa
   14318  0: a
   14319  0+ aa
   14320  0: a
   14321  0+ a
   14322  0: a
   14323  0+ 
   14324 
   14325 /((?2){73}(?2))((?1))/info
   14326 Capturing subpattern count = 2
   14327 May match empty string
   14328 Subject length lower bound = 0
   14329 
   14330 /abc/
   14331 \= Expect no match
   14332     \[9x!xxx(]{9999}
   14333 No match
   14334 
   14335 /(abc)*/
   14336     \[abc]{5}
   14337  0: abcabcabcabcabc
   14338  1: abc
   14339 
   14340 /^/gm
   14341     \n\n\n
   14342  0: 
   14343  0: 
   14344  0: 
   14345 
   14346 /^/gm,alt_circumflex
   14347     \n\n\n
   14348  0: 
   14349  0: 
   14350  0: 
   14351  0: 
   14352 
   14353 /((((((((x))))))))\81/
   14354 Failed: error 115 at offset 19: reference to non-existent subpattern
   14355     xx1
   14356 
   14357 /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((x))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))\80/
   14358     xx
   14359 Matched, but too many substrings
   14360  0: xx
   14361  1: x
   14362  2: x
   14363  3: x
   14364  4: x
   14365  5: x
   14366  6: x
   14367  7: x
   14368  8: x
   14369  9: x
   14370 10: x
   14371 11: x
   14372 12: x
   14373 13: x
   14374 14: x
   14375 
   14376 /\80/
   14377 Failed: error 115 at offset 2: reference to non-existent subpattern
   14378 
   14379 /A\8B\9C/
   14380 Failed: error 115 at offset 2: reference to non-existent subpattern
   14381     A8B9C
   14382 
   14383 /(?x:((?'a')) # comment (with parentheses) and | vertical
   14384 (?-x:#not a comment (?'b')) # this is a comment ()
   14385 (?'c')) # not a comment (?'d')/info
   14386 Capturing subpattern count = 5
   14387 Named capturing subpatterns:
   14388   a   2
   14389   b   3
   14390   c   4
   14391   d   5
   14392 First code unit = '#'
   14393 Last code unit = ' '
   14394 Subject length lower bound = 32
   14395 
   14396 /(?|(?'a')(2)(?'b')|(?'a')(?'a')(3))/I,dupnames
   14397 Capturing subpattern count = 3
   14398 Named capturing subpatterns:
   14399   a   1
   14400   a   2
   14401   b   3
   14402 Options: dupnames
   14403 Starting code units: 2 3 
   14404 Subject length lower bound = 1
   14405     A23B
   14406  0: 2
   14407  1: 
   14408  2: 2
   14409  3: 
   14410     B32A
   14411  0: 3
   14412  1: 
   14413  2: 
   14414  3: 3
   14415 
   14416 # These are some patterns that used to cause buffer overflows or other errors
   14417 # while compiling.
   14418 
   14419 /.((?2)(?R)|\1|$)()/B
   14420 ------------------------------------------------------------------
   14421         Bra
   14422         Any
   14423         Once
   14424         CBra 1
   14425         Recurse
   14426         Recurse
   14427         Alt
   14428         \1
   14429         Alt
   14430         $
   14431         Ket
   14432         Ket
   14433         CBra 2
   14434         Ket
   14435         Ket
   14436         End
   14437 ------------------------------------------------------------------
   14438 
   14439 /.((?3)(?R)()(?2)|\1|$)()/B
   14440 ------------------------------------------------------------------
   14441         Bra
   14442         Any
   14443         Once
   14444         CBra 1
   14445         Recurse
   14446         Recurse
   14447         CBra 2
   14448         Ket
   14449         Recurse
   14450         Alt
   14451         \1
   14452         Alt
   14453         $
   14454         Ket
   14455         Ket
   14456         CBra 3
   14457         Ket
   14458         Ket
   14459         End
   14460 ------------------------------------------------------------------
   14461 
   14462 /(\9*+(?2);\3++()2|)++{/
   14463 Failed: error 115 at offset 2: reference to non-existent subpattern
   14464 
   14465 /\V\x85\9*+((?2)\3++()2)*:2/
   14466 Failed: error 115 at offset 7: reference to non-existent subpattern
   14467 
   14468 /(((?(R)){0,2}) (?'x'((?'R')((?'R')))))/dupnames
   14469 
   14470 /(((?(X)){0,2}) (?'x'((?'X')((?'X')))))/dupnames
   14471 
   14472 /(((?(R)){0,2}) (?'x'((?'X')((?'R')))))/
   14473 
   14474 "(?J)(?'d'(?'d'\g{d}))"
   14475 
   14476 "(?=!((?2)(?))({8(?<=(?1){29}8bbbb\x16\xd\xc6^($(\xa9H4){4}h}?1)B))\x15')"
   14477 Failed: error 125 at offset 16: lookbehind assertion is not fixed length
   14478 
   14479 /A(?'')Z/
   14480 Failed: error 162 at offset 4: subpattern name expected
   14481 
   14482 "(?J:(?|(?'R')(\k'R')|((?'R'))))"
   14483 
   14484 /(?<=|(\,\$(?73591620449005828816)\xa8.{7}){6}\x09)/
   14485 Failed: error 161 at offset 17: group number is too big
   14486 
   14487 /^(?:(?(1)x|)+)+$()/B
   14488 ------------------------------------------------------------------
   14489         Bra
   14490         ^
   14491         SBra
   14492         SCond
   14493       1 Cond ref
   14494         x
   14495         Alt
   14496         KetRmax
   14497         KetRmax
   14498         $
   14499         CBra 1
   14500         Ket
   14501         Ket
   14502         End
   14503 ------------------------------------------------------------------
   14504 
   14505 /[[:>:]](?<)/
   14506 Failed: error 162 at offset 10: subpattern name expected
   14507 
   14508 /((?x)(*:0))#(?'/
   14509 Failed: error 162 at offset 15: subpattern name expected
   14510 
   14511 /(?C$[$)(?<]/
   14512 Failed: error 162 at offset 10: subpattern name expected
   14513 
   14514 /(?C$)$)(?<]/
   14515 Failed: error 162 at offset 10: subpattern name expected
   14516 
   14517 /(?(R))*+/B
   14518 ------------------------------------------------------------------
   14519         Bra
   14520         Braposzero
   14521         SBraPos
   14522         SCond
   14523         Cond recurse any
   14524         Ket
   14525         KetRpos
   14526         Ket
   14527         End
   14528 ------------------------------------------------------------------
   14529     abcd
   14530  0: 
   14531 
   14532 /((?x)(?#))#(?'/
   14533 Failed: error 162 at offset 14: subpattern name expected
   14534 
   14535 /((?x)(?#))#(?'abc')/I
   14536 Capturing subpattern count = 2
   14537 Named capturing subpatterns:
   14538   abc   2
   14539 First code unit = '#'
   14540 Subject length lower bound = 1
   14541 
   14542 /[[:\\](?<[::]/
   14543 Failed: error 162 at offset 9: subpattern name expected
   14544 
   14545 /[[:\\](?'abc')[a:]/I
   14546 Capturing subpattern count = 1
   14547 Named capturing subpatterns:
   14548   abc   1
   14549 Starting code units: : [ \ 
   14550 Subject length lower bound = 2
   14551 
   14552 "[[[.\xe8Nq\xffq\xff\xe0\x2|||::Nq\xffq\xff\xe0\x6\x2|||::[[[:[::::::[[[[[::::::::[:[[[:[:::[[[[[[[[[[[[:::::::::::::::::[[.\xe8Nq\xffq\xff\xe0\x2|||::Nq\xffq\xff\xe0\x6\x2|||::[[[:[::::::[[[[[::::::::[:[[[:[:::[[[[[[[[[[[[[[:::E[[[:[:[[:[:::[[:::E[[[:[:[[:'[:::::E[[[:[::::::[[[:[[[[[[[::E[[[:[::::::[[[:[[[[[[[[:[[::[::::[[:::::::[[:[[[[[[[:[[::[:[[:[~"
   14553 Failed: error 106 at offset 353: missing terminating ] for character class
   14554 
   14555 /()(?(R)0)*+/B
   14556 ------------------------------------------------------------------
   14557         Bra
   14558         CBra 1
   14559         Ket
   14560         Braposzero
   14561         SBraPos
   14562         SCond
   14563         Cond recurse any
   14564         0
   14565         Ket
   14566         KetRpos
   14567         Ket
   14568         End
   14569 ------------------------------------------------------------------
   14570 
   14571 /(?R-:(?</
   14572 Failed: error 158 at offset 3: (?R (recursive pattern call) must be followed by a closing parenthesis
   14573 
   14574 /(?R-:(?<)/
   14575 Failed: error 158 at offset 3: (?R (recursive pattern call) must be followed by a closing parenthesis
   14576 
   14577 /(?(?C{\Q})(?!(?'/
   14578 Failed: error 162 at offset 16: subpattern name expected
   14579 
   14580 /(?(?C{\Q})(?!(?'abc')))/I
   14581 Capturing subpattern count = 1
   14582 Named capturing subpatterns:
   14583   abc   1
   14584 May match empty string
   14585 Subject length lower bound = 0
   14586 
   14587 /(?1){3918}(((((0(\k'R'))))(?J)(?'R'(?'R'\3){99})))/I
   14588 Capturing subpattern count = 8
   14589 Max back reference = 8
   14590 Named capturing subpatterns:
   14591   R   7
   14592   R   8
   14593 Duplicate name status changes
   14594 Last code unit = '0'
   14595 Subject length lower bound = 65535
   14596 
   14597 /(?|(aaa)|(b))\g{1}/I
   14598 Capturing subpattern count = 1
   14599 Max back reference = 1
   14600 Starting code units: a b 
   14601 Subject length lower bound = 0
   14602 
   14603 /(?|(aaa)|(b))(?1)/I
   14604 Capturing subpattern count = 1
   14605 Starting code units: a b 
   14606 Subject length lower bound = 4
   14607 
   14608 /(?|(aaa)|(b))/I
   14609 Capturing subpattern count = 1
   14610 Starting code units: a b 
   14611 Subject length lower bound = 1
   14612 
   14613 /(?|(?'a'aaa)|(?'a'b))\k'a'/I
   14614 Capturing subpattern count = 1
   14615 Max back reference = 1
   14616 Named capturing subpatterns:
   14617   a   1
   14618 Starting code units: a b 
   14619 Subject length lower bound = 0
   14620 
   14621 /(?|(?'a'aaa)|(?'a'b))(?'a'cccc)\k'a'/I,dupnames
   14622 Capturing subpattern count = 2
   14623 Max back reference = 2
   14624 Named capturing subpatterns:
   14625   a   1
   14626   a   2
   14627 Options: dupnames
   14628 Starting code units: a b 
   14629 Last code unit = 'c'
   14630 Subject length lower bound = 0
   14631 
   14632 /ab{3cd/
   14633     ab{3cd
   14634  0: ab{3cd
   14635 
   14636 /ab{3,cd/
   14637     ab{3,cd
   14638  0: ab{3,cd
   14639 
   14640 /ab{3,4a}cd/
   14641     ab{3,4a}cd
   14642  0: ab{3,4a}cd
   14643 
   14644 /{4,5a}bc/
   14645     {4,5a}bc
   14646  0: {4,5a}bc
   14647 
   14648 /\x0{ab}/
   14649     \0{ab}
   14650  0: \x00{ab}
   14651 
   14652 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/
   14653     ababababbbabZXXXX
   14654  0: ababababbbabZ
   14655  1: ab
   14656  2: b
   14657 
   14658 /.*?a(*PRUNE)b/
   14659     aab
   14660  0: ab
   14661 
   14662 /.*?a(*PRUNE)b/s
   14663     aab
   14664  0: ab
   14665 
   14666 /^a(*PRUNE)b/s
   14667 \= Expect no match
   14668     aab
   14669 No match
   14670 
   14671 /.*?a(*SKIP)b/
   14672     aab
   14673  0: ab
   14674 
   14675 /(?(8000000000/
   14676 Failed: error 161 at offset 8: group number is too big
   14677 
   14678 /((?(R8000000000)))/
   14679 Failed: error 161 at offset 9: group number is too big
   14680 
   14681 /0(?0)|(1)(*THEN)(*SKIP:0)(*FAIL)/
   14682 \= Expect no match
   14683     01
   14684 No match
   14685 
   14686 /(?(1)()\983040\2)/
   14687 Failed: error 161 at offset 14: group number is too big
   14688 
   14689 /(*LIMIT_MATCH=)abc/
   14690 Failed: error 160 at offset 14: (*VERB) not recognized or malformed
   14691 
   14692 /(*CRLF)(*LIMIT_MATCH=)abc/
   14693 Failed: error 160 at offset 21: (*VERB) not recognized or malformed
   14694 
   14695 /(?:ab)?(?:ab)(?:ab)/
   14696     abab
   14697  0: abab
   14698     ababab
   14699  0: ababab
   14700 \= Expect no match
   14701     aba
   14702 No match
   14703 
   14704 /((*MARK:A))++a(*SKIP:B)b/
   14705 \= Expect no match
   14706     aacb
   14707 No match
   14708 
   14709 /(*MARK:a\zb)z/alt_verbnames
   14710 Failed: error 140 at offset 10: invalid escape sequence in (*VERB) name
   14711 
   14712 /(*:ab\t(d\)c)xxx/
   14713 Failed: error 122 at offset 12: unmatched closing parenthesis
   14714 
   14715 /(*:ab\t(d\)c)xxx/alt_verbnames,mark
   14716     cxxxz
   14717  0: xxx
   14718 MK: ab\x09(d)c
   14719 
   14720 /(*:A\Qxx)x\EB)x/alt_verbnames,mark
   14721     x
   14722  0: x
   14723 MK: Axx)xB
   14724 
   14725 /(*:A\ExxxB)x/alt_verbnames,mark
   14726     x
   14727  0: x
   14728 MK: AxxxB
   14729 
   14730 /(*: A \ and #comment
   14731      \ B)x/x,alt_verbnames,mark
   14732     x
   14733  0: x
   14734 MK: A and B
   14735 
   14736 /(*: A \ and #comment
   14737      \ B)x/alt_verbnames,mark
   14738     x
   14739  0: x
   14740 MK:  A  and #comment\x0a      B
   14741 
   14742 /(*: A \ and #comment
   14743      \ B)x/x,mark
   14744     x
   14745  0: x
   14746 MK:  A \ and #comment\x0a     \ B
   14747 
   14748 /(*: A \ and #comment
   14749      \ B)x/mark
   14750     x
   14751  0: x
   14752 MK:  A \ and #comment\x0a     \ B
   14753 
   14754 /(*:A
   14755 B)x/alt_verbnames,mark
   14756     x
   14757  0: x
   14758 MK: A\x0aB
   14759 
   14760 /(*:abc\Qpqr)/alt_verbnames
   14761 Failed: error 160 at offset 12: (*VERB) not recognized or malformed
   14762 
   14763 /abc/use_offset_limit
   14764     1234abcde\=offset_limit=100
   14765  0: abc
   14766     1234abcde\=offset_limit=9
   14767  0: abc
   14768     1234abcde\=offset_limit=4
   14769  0: abc
   14770     1234abcde\=offset_limit=4,offset=4
   14771  0: abc
   14772 \= Expect no match
   14773     1234abcde\=offset_limit=4,offset=5
   14774 No match
   14775     1234abcde\=offset_limit=3
   14776 No match
   14777 
   14778 /(?<=abc)/use_offset_limit
   14779     1234abc\=offset_limit=7
   14780  0: 
   14781 \= Expect no match
   14782     1234abc\=offset_limit=6
   14783 No match
   14784 
   14785 /A/g,replace=-,use_offset_limit
   14786     XAXAXAXAXA\=offset_limit=4
   14787  2: X-X-XAXAXA
   14788 
   14789 /abc/
   14790 \= Expect error
   14791     1234abcde\=offset_limit=4
   14792 Failed: error -56: offset limit set without PCRE2_USE_OFFSET_LIMIT
   14793 
   14794 /^\w/m,use_offset_limit
   14795     \n..\naa\=offset_limit=3
   14796 No match
   14797     \n..\naa\=offset_limit=4
   14798  0: a
   14799 
   14800 /abcd/null_context
   14801     abcd\=null_context
   14802  0: abcd
   14803 \= Expect error
   14804     abcd\=null_context,find_limits
   14805 ** Not allowed together: find_limits null_context
   14806     abcd\=allusedtext,startchar
   14807 ** Not allowed together: allusedtext startchar
   14808 
   14809 /abcd/replace=w\rx\x82y\o{333}z(\Q12\$34$$\x34\E5$$),substitute_extended
   14810     abcd
   14811  1: w\x0dx\x82y\xdbz(12\$34$$\x345$)
   14812 
   14813 /a(bc)(DE)/replace=a\u$1\U$1\E$1\l$2\L$2\Eab\Uab\LYZ\EDone,substitute_extended
   14814     abcDE
   14815  1: aBcBCbcdEdeabAByzDone
   14816 
   14817 /abcd/replace=xy\kz,substitute_extended
   14818     abcd
   14819 Failed: error -57 at offset 4 in replacement: bad escape sequence in replacement string
   14820 
   14821 /a(?:(b)|(c))/substitute_extended,replace=X${1:+1:-1}X${2:+2:-2}
   14822     ab
   14823  1: X1X-2
   14824     ac
   14825  1: X-1X2
   14826     ab\=replace=${1:+$1\:$1:$2}
   14827  1: b:b
   14828     ac\=replace=${1:+$1\:$1:$2}
   14829  1: c
   14830 
   14831 /a(?:(b)|(c))/substitute_extended,replace=X${1:-1:-1}X${2:-2:-2}
   14832     ab
   14833  1: XbX2:-2
   14834     ac
   14835  1: X1:-1Xc
   14836 
   14837 /(a)/substitute_extended,replace=>${1:+\Q$1:{}$$\E+\U$1}<
   14838     a
   14839  1: >$1:{}$$+A<
   14840 
   14841 /X(b)Y/substitute_extended
   14842     XbY\=replace=x${1:+$1\U$1}y
   14843  1: xbBY
   14844     XbY\=replace=\Ux${1:+$1$1}y
   14845  1: XBBY
   14846 
   14847 /a/substitute_extended,replace=${*MARK:+a:b}
   14848     a
   14849 Failed: error -58 at offset 7 in replacement: expected closing curly bracket in replacement string
   14850 
   14851 /(abcd)/replace=${1:+xy\kz},substitute_extended
   14852     abcd
   14853 Failed: error -57 at offset 8 in replacement: bad escape sequence in replacement string
   14854 
   14855 /(abcd)/
   14856     abcd\=replace=${1:+xy\kz},substitute_extended
   14857 Failed: error -57 at offset 8 in replacement: bad escape sequence in replacement string
   14858 
   14859 /abcd/substitute_extended,replace=>$1<
   14860     abcd
   14861 Failed: error -49 at offset 3 in replacement: unknown substring
   14862 
   14863 /abcd/substitute_extended,replace=>xxx${xyz}<<<
   14864     abcd
   14865 Failed: error -49 at offset 10 in replacement: unknown substring
   14866 
   14867 /(?J)(?:(?<A>a)|(?<A>b))/replace=<$A>
   14868     [a]
   14869  1: [<a>]
   14870     [b]
   14871  1: [<b>]
   14872 \= Expect error
   14873     (a)\=ovector=1
   14874 Failed: error -54 at offset 3 in replacement: requested value is not available
   14875 
   14876 /(a)|(b)/replace=<$1>
   14877 \= Expect error
   14878     b
   14879 Failed: error -55 at offset 3 in replacement: requested value is not set
   14880 
   14881 /(aa)(BB)/substitute_extended,replace=\U$1\L$2\E$1..\U$1\l$2$1
   14882     aaBB
   14883  1: AAbbaa..AAbBaa
   14884 
   14885 /^(o(\1{72}{\"{\\{00000059079}\d*){74}}){19}/I
   14886 Capturing subpattern count = 2
   14887 Max back reference = 1
   14888 Compile options: <none>
   14889 Overall options: anchored
   14890 First code unit = 'o'
   14891 Last code unit = '}'
   14892 Subject length lower bound = 65535
   14893 
   14894 /((p(?'K/
   14895 Failed: error 142 at offset 7: syntax error in subpattern name (missing terminator)
   14896 
   14897 /((p(?'K/no_auto_capture
   14898 Failed: error 142 at offset 7: syntax error in subpattern name (missing terminator)
   14899 
   14900 /abc/replace=A$3123456789Z
   14901     abc
   14902 Failed: error -49 at offset 3 in replacement: unknown substring
   14903 
   14904 /(?<!a{65535}a{5})x/I
   14905 Failed: error 187 at offset 0: lookbehind assertion is too long
   14906 
   14907 /(?<!a{65535})x/I
   14908 Capturing subpattern count = 0
   14909 Max lookbehind = 65535
   14910 First code unit = 'x'
   14911 Subject length lower bound = 1
   14912 
   14913 /(?=a\K)/replace=z
   14914     BaCaD
   14915 Failed: error -60: match with end before start or start moved backwards is not supported
   14916     
   14917 /(?<=\K.)/g,replace=-
   14918     ab
   14919 Failed: error -60: match with end before start or start moved backwards is not supported
   14920 
   14921 /(?'abcdefghijklmnopqrstuvwxyzABCDEFG'toolong)/
   14922 Failed: error 148 at offset 36: subpattern name is too long (maximum 32 characters)
   14923 
   14924 /(?'abcdefghijklmnopqrstuvwxyzABCDEF'justright)/
   14925 
   14926 # These two use zero-termination
   14927 /abcd/max_pattern_length=3
   14928 Failed: error 188 at offset 0: pattern string is longer than the limit set by the application
   14929 
   14930 /abc/max_pattern_length=3
   14931 
   14932 # These two, being hex, pass the length
   14933 /abcdefab/hex,max_pattern_length=3
   14934 Failed: error 188 at offset 0: pattern string is longer than the limit set by the application
   14935 
   14936 /abcdef/hex,max_pattern_length=3
   14937 
   14938 # These patterns used to take a long time to compile
   14939 
   14940 "(.*)
   14941 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
   14942 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
   14943 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))"xI
   14944 Capturing subpattern count = 12
   14945 May match empty string
   14946 Options: extended
   14947 First code unit at start or follows newline
   14948 Subject length lower bound = 0
   14949 
   14950 "(?<=a()
   14951 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
   14952 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
   14953 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
   14954 a)"xI
   14955 Capturing subpattern count = 12
   14956 Max lookbehind = 2
   14957 May match empty string
   14958 Options: extended
   14959 Subject length lower bound = 0
   14960 
   14961 "(?|()|())(.*)
   14962 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
   14963 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
   14964 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))"xI
   14965 Capturing subpattern count = 13
   14966 May match empty string
   14967 Options: extended
   14968 Subject length lower bound = 0
   14969 
   14970 "(?|()|())(?<=a()
   14971 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
   14972 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
   14973 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
   14974 a)"xI
   14975 Failed: error 135 at offset 9: lookbehind is too complicated
   14976 
   14977 # Test the use of malloc for caching group information when there are more
   14978 # groups than fit into the on-stack workspace.
   14979 
   14980 /\[()]{1024}/I,expand
   14981 Expanded: ()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()
   14982 Capturing subpattern count = 1024
   14983 May match empty string
   14984 Subject length lower bound = 0
   14985 
   14986 # Test minlength capped at 65535
   14987 
   14988 /(A{65000})\1{65000}/I
   14989 Capturing subpattern count = 1
   14990 Max back reference = 1
   14991 First code unit = 'A'
   14992 Last code unit = 'A'
   14993 Subject length lower bound = 65535
   14994 
   14995 # Test group scans when numbers are not unique
   14996 
   14997 /(?|()+|(a)+)/BI
   14998 ------------------------------------------------------------------
   14999         Bra
   15000         Bra
   15001         SCBra 1
   15002         KetRmax
   15003         Alt
   15004         CBra 1
   15005         a
   15006         KetRmax
   15007         Ket
   15008         Ket
   15009         End
   15010 ------------------------------------------------------------------
   15011 Capturing subpattern count = 1
   15012 May match empty string
   15013 Subject length lower bound = 0
   15014 
   15015 /(?|(a)+|()+)/BI
   15016 ------------------------------------------------------------------
   15017         Bra
   15018         Bra
   15019         CBra 1
   15020         a
   15021         KetRmax
   15022         Alt
   15023         SCBra 1
   15024         KetRmax
   15025         Ket
   15026         Ket
   15027         End
   15028 ------------------------------------------------------------------
   15029 Capturing subpattern count = 1
   15030 May match empty string
   15031 Subject length lower bound = 0
   15032 
   15033 /(?|()|(a))/BI
   15034 ------------------------------------------------------------------
   15035         Bra
   15036         Bra
   15037         CBra 1
   15038         Ket
   15039         Alt
   15040         CBra 1
   15041         a
   15042         Ket
   15043         Ket
   15044         Ket
   15045         End
   15046 ------------------------------------------------------------------
   15047 Capturing subpattern count = 1
   15048 May match empty string
   15049 Subject length lower bound = 0
   15050 
   15051 /(?|(a)|())/BI
   15052 ------------------------------------------------------------------
   15053         Bra
   15054         Bra
   15055         CBra 1
   15056         a
   15057         Ket
   15058         Alt
   15059         CBra 1
   15060         Ket
   15061         Ket
   15062         Ket
   15063         End
   15064 ------------------------------------------------------------------
   15065 Capturing subpattern count = 1
   15066 May match empty string
   15067 Subject length lower bound = 0
   15068 
   15069 # Test CRLF handling in empty string substitutions
   15070 
   15071 /^$/gm,newline=anycrlf,replace=-
   15072     X\r\n\r\nY
   15073  1: X\x0d\x0a-\x0d\x0aY
   15074 
   15075 /^$/gm,newline=crlf,replace=-
   15076     X\r\n\r\nY
   15077  1: X\x0d\x0a-\x0d\x0aY
   15078 
   15079 /^$/gm,newline=any,replace=-
   15080     X\r\n\r\nY
   15081  1: X\x0d\x0a-\x0d\x0aY
   15082 
   15083 "(*ANYCRLF)(?m)^(.*[^0-9\r\n].*|)$"g,replace=NaN
   15084     15\r\nfoo\r\n20\r\nbar\r\nbaz\r\n\r\n20
   15085  4: 15\x0d\x0aNaN\x0d\x0a20\x0d\x0aNaN\x0d\x0aNaN\x0d\x0aNaN\x0d\x0a20
   15086 
   15087 /a[[:punct:]b]/bincode
   15088 ------------------------------------------------------------------
   15089         Bra
   15090         a
   15091         [!-/:-@[-`b{-~]
   15092         Ket
   15093         End
   15094 ------------------------------------------------------------------
   15095 
   15096 /a[b[:punct:]]/bincode
   15097 ------------------------------------------------------------------
   15098         Bra
   15099         a
   15100         [!-/:-@[-`b{-~]
   15101         Ket
   15102         End
   15103 ------------------------------------------------------------------
   15104 
   15105 /L(?#(|++<!(2)?/B
   15106 ------------------------------------------------------------------
   15107         Bra
   15108         L?+
   15109         Ket
   15110         End
   15111 ------------------------------------------------------------------
   15112 
   15113 /L(?#(|++<!(2)?/B,no_auto_possess
   15114 ------------------------------------------------------------------
   15115         Bra
   15116         L?
   15117         Ket
   15118         End
   15119 ------------------------------------------------------------------
   15120 
   15121 /L(?#(|++<!(2)?/B,auto_callout
   15122 ------------------------------------------------------------------
   15123         Bra
   15124         Callout 255 0 14
   15125         L?+
   15126         Callout 255 14 0
   15127         Ket
   15128         End
   15129 ------------------------------------------------------------------
   15130 
   15131 /L(?#(|++<!(2)?/B,no_auto_possess,auto_callout
   15132 ------------------------------------------------------------------
   15133         Bra
   15134         Callout 255 0 14
   15135         L?
   15136         Callout 255 14 0
   15137         Ket
   15138         End
   15139 ------------------------------------------------------------------
   15140 
   15141 /(A*)\E+/B,auto_callout
   15142 ------------------------------------------------------------------
   15143         Bra
   15144         Callout 255 0 1
   15145         SCBra 1
   15146         Callout 255 1 2
   15147         A*
   15148         Callout 255 3 4
   15149         KetRmax
   15150         Callout 255 7 0
   15151         Ket
   15152         End
   15153 ------------------------------------------------------------------
   15154 
   15155 /()\Q\E*]/B,auto_callout
   15156 ------------------------------------------------------------------
   15157         Bra
   15158         Callout 255 0 1
   15159         Brazero
   15160         SCBra 1
   15161         Callout 255 1 6
   15162         KetRmax
   15163         Callout 255 7 1
   15164         ]
   15165         Callout 255 8 0
   15166         Ket
   15167         End
   15168 ------------------------------------------------------------------
   15169     a[bc]d
   15170 --->a[bc]d
   15171  +0     ^      (
   15172  +1     ^      )\Q\E*
   15173  +7     ^      ]
   15174  +8     ^^     End of pattern
   15175  0: ]
   15176  1: 
   15177 
   15178 /\x8a+f|;T?(*:;.'?`(\xeap ){![^()!y*''C*(?';]{1;(\x08)/B,alt_verbnames,dupnames,extended
   15179 ------------------------------------------------------------------
   15180         Bra
   15181         \x{8a}++
   15182         f
   15183         Alt
   15184         ;
   15185         T?
   15186         *MARK ;.'?`(\x{ea}p
   15187         {!
   15188         [\x00- "-&+-:<->@-BD-xz-\xff] (neg)
   15189         {1;
   15190         CBra 1
   15191         \x08
   15192         Ket
   15193         Ket
   15194         End
   15195 ------------------------------------------------------------------
   15196 
   15197 # Tests for NULL characters in comments and verb "names" and callouts
   15198 
   15199 # /A#B\x00C\x0aZ/
   15200 /41 23 42 00 43 0a 5a/Bx,hex
   15201 ------------------------------------------------------------------
   15202         Bra
   15203         AZ
   15204         Ket
   15205         End
   15206 ------------------------------------------------------------------
   15207 
   15208 # /A+#B\x00C\x0a+/
   15209 /41 2b 23 42 00 43 0a 2b/Bx,hex
   15210 ------------------------------------------------------------------
   15211         Bra
   15212         A++
   15213         Ket
   15214         End
   15215 ------------------------------------------------------------------
   15216 
   15217 # /A(*:B\x00W#X\00Y\x0aC)Z/
   15218 /41 28 2a 3a 42 00 57 23 58 00 59 0a 43 29 5a/Bx,hex,alt_verbnames
   15219 ------------------------------------------------------------------
   15220         Bra
   15221         A
   15222         *MARK B\x{0}WC
   15223         Z
   15224         Ket
   15225         End
   15226 ------------------------------------------------------------------
   15227 
   15228 # /A(*:B\x00W#X\00Y\x0aC)Z/
   15229 /41 28 2a 3a 42 00 57 23 58 00 59 0a 43 29 5a/Bx,hex
   15230 ------------------------------------------------------------------
   15231         Bra
   15232         A
   15233         *MARK B\x{0}W#X\x{0}Y\x{a}C
   15234         Z
   15235         Ket
   15236         End
   15237 ------------------------------------------------------------------
   15238 
   15239 # /A(?C{X\x00Y})B/
   15240 /41 28 3f 43 7b 58 00 59 7d 29 42/B,hex
   15241 ------------------------------------------------------------------
   15242         Bra
   15243         A
   15244         CalloutStr {X\x{0}Y} 5 10 1
   15245         B
   15246         Ket
   15247         End
   15248 ------------------------------------------------------------------
   15249 
   15250 # /A(?#X\x00Y)B/
   15251 /41 28 3f 23 7b 00 7d 29 42/B,hex
   15252 ------------------------------------------------------------------
   15253         Bra
   15254         AB
   15255         Ket
   15256         End
   15257 ------------------------------------------------------------------
   15258 
   15259 # Tests for leading comment in extended patterns
   15260 
   15261 / (?-x):?/extended
   15262 
   15263 /(?-x):?/extended
   15265 
   15266 /0b 28 3f 2d 78 29 3a/hex,extended
   15267 
   15268 /#comment
   15269 (?-x):?/extended
   15270 
   15271 /(8(*:6^\x09x\xa6l\)6!|\xd0:[^:|)\x09d\Z\d{85*m(?'(?<1!)*\W[*\xff]!!h\w]*\xbe;/alt_bsux,alt_verbnames,allow_empty_class,dollar_endonly,extended,multiline,never_utf,no_dotstar_anchor,no_start_optimize
   15272 Failed: error 162 at offset 49: subpattern name expected
   15273 
   15274 /a|(b)c/replace=>$1<,substitute_unset_empty
   15275     cat
   15276  1: c><t
   15277     xbcom
   15278  1: x>b<om
   15279 
   15280 /a|(b)c/
   15281     cat\=replace=>$1<
   15282 Failed: error -55 at offset 3 in replacement: requested value is not set
   15283     cat\=replace=>$1<,substitute_unset_empty
   15284  1: c><t
   15285     xbcom\=replace=>$1<,substitute_unset_empty
   15286  1: x>b<om
   15287 
   15288 /a|(b)c/substitute_extended
   15289     cat\=replace=>${2:-xx}<
   15290 Failed: error -49 at offset 9 in replacement: unknown substring
   15291     cat\=replace=>${2:-xx}<,substitute_unknown_unset
   15292  1: c>xx<t
   15293     cat\=replace=>${X:-xx}<,substitute_unknown_unset
   15294  1: c>xx<t
   15295 
   15296 /a|(?'X'b)c/replace=>$X<,substitute_unset_empty
   15297     cat
   15298  1: c><t
   15299     xbcom
   15300  1: x>b<om
   15301 
   15302 /a|(?'X'b)c/replace=>$Y<,substitute_unset_empty
   15303     cat
   15304 Failed: error -49 at offset 3 in replacement: unknown substring
   15305     cat\=substitute_unknown_unset
   15306  1: c><t
   15307     cat\=substitute_unknown_unset,-substitute_unset_empty
   15308 Failed: error -55 at offset 3 in replacement: requested value is not set
   15309 
   15310 /a|(b)c/replace=>$2<,substitute_unset_empty
   15311     cat
   15312 Failed: error -49 at offset 3 in replacement: unknown substring
   15313     cat\=substitute_unknown_unset
   15314  1: c><t
   15315     cat\=substitute_unknown_unset,-substitute_unset_empty
   15316 Failed: error -55 at offset 3 in replacement: requested value is not set
   15317 
   15318 /()()()/use_offset_limit
   15319     \=ovector=11000000000
   15320 ** Invalid value in 'ovector=11000000000'
   15321     \=callout_fail=11000000000
   15322 ** Invalid value in 'callout_fail=11000000000'
   15323     \=callout_fail=1:11000000000
   15324 ** Invalid value in 'callout_fail=1:11000000000'
   15325     \=callout_data=11000000000
   15326 ** Invalid value in 'callout_data=11000000000'
   15327     \=callout_data=-11000000000
   15328 ** Invalid value in 'callout_data=-11000000000'
   15329     \=offset_limit=1100000000000000000000
   15330 ** Invalid value in 'offset_limit=1100000000000000000000'
   15331     \=copy=11000000000
   15332 ** Invalid value in 'copy=11000000000'
   15333 
   15334 /(*MARK:A\x00b)/mark
   15335     abc
   15336  0: 
   15337 MK: A\x00b
   15338 
   15339 /(*MARK:A\x00b)/mark,alt_verbnames
   15340     abc
   15341  0: 
   15342 MK: A\x00b
   15343 
   15344 /"(*MARK:A" 00 "b)"/mark,hex
   15345     abc
   15346  0: 
   15347 MK: A\x00b
   15348 
   15349 /"(*MARK:A" 00 "b)"/mark,hex,alt_verbnames
   15350     abc
   15351  0: 
   15352 MK: A\x00b
   15353 
   15354 /efg/hex
   15355 ** Unexpected non-hex-digit 'g' at offset 2 in hex pattern: quote missing?
   15356 
   15357 /eff/hex
   15358 ** Odd number of digits in hex pattern
   15359 
   15360 /effg/hex
   15361 ** Unexpected non-hex-digit 'g' at offset 3 in hex pattern: quote missing?
   15362 
   15363 /(?J)(?'a'))(?'a')/
   15364 Failed: error 122 at offset 10: unmatched closing parenthesis
   15365 
   15366 /(?<=((?C)0))/
   15367     9010
   15368 --->9010
   15369   0  ^       0
   15370   0   ^      0
   15371  0: 
   15372  1: 0
   15373 \= Expect no match
   15374     abc
   15375 --->abc
   15376   0  ^      0
   15377   0   ^     0
   15378   0    ^    0
   15379 No match
   15380 
   15381 /aaa/
   15382 \[abc]{10000000000000000000000000000}
   15383 ** Repeat count too large
   15384 \[a]{3}
   15385  0: aaa
   15386 
   15387 /\[AB]{6000000000000000000000}/expand
   15388 ** Pattern repeat count too large
   15389 
   15390 # Hex uses pattern length, not zero-terminated. This tests for overrunning
   15391 # the given length of a pattern.
   15392 
   15393 /'(*U'/hex
   15394 Failed: error 160 at offset 3: (*VERB) not recognized or malformed
   15395 
   15396 /'(*'/hex
   15397 Failed: error 109 at offset 1: quantifier does not follow a repeatable item
   15398 
   15399 /'('/hex
   15400 Failed: error 114 at offset 1: missing closing parenthesis
   15401 
   15402 //hex
   15403 
   15404 # These tests are here because Perl never allows a back reference in a
   15405 # lookbehind. PCRE2 supports some limited cases.
   15406 
   15407 /([ab])...(?<=\1)z/
   15408     a11az
   15409  0: a11az
   15410  1: a
   15411     b11bz
   15412  0: b11bz
   15413  1: b
   15414 \= Expect no match
   15415     b11az
   15416 No match
   15417 
   15418 /(?|([ab]))...(?<=\1)z/
   15419 Failed: error 125 at offset 13: lookbehind assertion is not fixed length
   15420 
   15421 /([ab])(\1)...(?<=\2)z/
   15422     aa11az
   15423  0: aa11az
   15424  1: a
   15425  2: a
   15426 
   15427 /(a\2)(b\1)(?<=\2)/
   15428 Failed: error 125 at offset 10: lookbehind assertion is not fixed length
   15429 
   15430 /(?<A>[ab])...(?<=\k'A')z/
   15431     a11az
   15432  0: a11az
   15433  1: a
   15434     b11bz
   15435  0: b11bz
   15436  1: b
   15437 \= Expect no match
   15438     b11az
   15439 No match
   15440 
   15441 /(?<A>[ab])...(?<=\k'A')(?<A>)z/dupnames
   15442 Failed: error 125 at offset 13: lookbehind assertion is not fixed length
   15443 
   15444 # Perl does not support \g+n
   15445 
   15446 /((\g+1X)?([ab]))+/
   15447     aaXbbXa
   15448  0: aaXbbXa
   15449  1: bXa
   15450  2: bX
   15451  3: a
   15452 
   15453 /ab(?C1)c/auto_callout
   15454     abc
   15455 --->abc
   15456  +0 ^       a
   15457  +1 ^^      b
   15458   1 ^ ^     c
   15459  +8 ^  ^    End of pattern
   15460  0: abc
   15461 
   15462 /'ab(?C1)c'/hex,auto_callout
   15463     abc
   15464 --->abc
   15465  +0 ^       a
   15466  +1 ^^      b
   15467   1 ^ ^     c
   15468  +8 ^  ^    End of pattern
   15469  0: abc
   15470 
   15471 # Perl accepts these, but gives a warning. We can't warn, so give an error.
   15472 
   15473 /[a-[:digit:]]+/
   15474 Failed: error 150 at offset 4: invalid range in character class
   15475     a-a9-a
   15476 
   15477 /[A-[:digit:]]+/
   15478 Failed: error 150 at offset 4: invalid range in character class
   15479     A-A9-A
   15480 
   15481 /[a-\d]+/
   15482 Failed: error 150 at offset 5: invalid range in character class
   15483     a-a9-a
   15484 
   15485 /(?<RA>abc)(?(R)xyz)/B
   15486 ------------------------------------------------------------------
   15487         Bra
   15488         CBra 1
   15489         abc
   15490         Ket
   15491         Cond
   15492         Cond recurse any
   15493         xyz
   15494         Ket
   15495         Ket
   15496         End
   15497 ------------------------------------------------------------------
   15498 
   15499 /(?<R>abc)(?(R)xyz)/B
   15500 ------------------------------------------------------------------
   15501         Bra
   15502         CBra 1
   15503         abc
   15504         Ket
   15505         Cond
   15506       1 Cond ref
   15507         xyz
   15508         Ket
   15509         Ket
   15510         End
   15511 ------------------------------------------------------------------
   15512 
   15513 /(?=.*[A-Z])/I
   15514 Capturing subpattern count = 0
   15515 May match empty string
   15516 Subject length lower bound = 0
   15517 
   15518 /()(?<=(?0))/
   15519 Failed: error 125 at offset 2: lookbehind assertion is not fixed length
   15520 
   15521 /(?<!|!(?<!))/
   15522 
   15523 /(?<!|!|!||||||(?<!)||(?<!)!|!||(?<!)!|!(?<!)!|!|!|!||||!!|<!)!|!||||!|/
   15524 
   15525 /{2,2{2,2/use_length
   15526 
   15527 /.>*?\g'0/use_length
   15528 Failed: error 157 at offset 6: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number
   15529 
   15530 /.>*?\g'0/
   15531 Failed: error 157 at offset 6: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number
   15532 
   15533 /{{'{22{2{{2{'{22{{22{2{'{22{2{{2{{222{{2{'{22{2{22{2{'{22{2{{2{'{22{2{22{2{'{'{22{2{22{2{'{22{2{{2{'{22{2{22{2{'{222{2{'{22{2{{2{'{22{{11{2{'{22{2{{2{{'{22{2{{2{'{22{{22{1{'{22{2{{2{{222{{2{'{22{2{22{2{'{/auto_callout
   15534 
   15535 //
   15536 \=get=i00000000000000000000000000000000
   15537 ** Group name in 'get' is too long
   15538 \=get=i2345678901234567890123456789012,get=i1245678901234567890123456789012
   15539 ** Too many characters in named 'get' modifiers
   15540 
   15541 "(?(?C))"
   15542 Failed: error 128 at offset 6: assertion expected after (?( or (?(?C)
   15543 
   15544 /(?(?(?(?(?(?))))))/
   15545 Failed: error 128 at offset 2: assertion expected after (?( or (?(?C)
   15546 
   15547 /(?<=(?1))((?s))/anchored
   15548 
   15549 /(*:ab)*/
   15550 Failed: error 109 at offset 6: quantifier does not follow a repeatable item
   15551 
   15552 %(*:(:(svvvvvvvvvv:]*[   Z!*;[]*[^[]*!^[+.+{{2,7}'      _\\\\\\\\\\\\\)?.:..    *w////\\\Q\\\\\\\\\\\\\\\T\\\\\+/?/////'+\\\EEE?/////'+/*+/[^K]?]//(w)%never_backslash_c,alt_verbnames,auto_callout
   15553 
   15554 /./newline=crlf
   15555     \=ph
   15556 No match
   15557 
   15558 /(\x0e00\000000\xc)/replace=\P,substitute_extended
   15559     \x0e00\000000\xc
   15560 Failed: error -57 at offset 2 in replacement: bad escape sequence in replacement string
   15561 
   15562 //replace=0
   15563     \=offset=7
   15564 Failed: error -33: bad offset value
   15565 
   15566 /(?<=\G.)/g,replace=+
   15567     abc
   15568  3: a+b+c+
   15569 
   15570 ".+\QX\E+"B,no_auto_possess
   15571 ------------------------------------------------------------------
   15572         Bra
   15573         Any+
   15574         X+
   15575         Ket
   15576         End
   15577 ------------------------------------------------------------------
   15578 
   15579 ".+\QX\E+"B,auto_callout,no_auto_possess
   15580 ------------------------------------------------------------------
   15581         Bra
   15582         Callout 255 0 4
   15583         Any+
   15584         Callout 255 4 4
   15585         X+
   15586         Callout 255 8 0
   15587         Ket
   15588         End
   15589 ------------------------------------------------------------------
   15590 
   15591 # This one is here because Perl gives an 'unmatched )' error which goes away
   15592 # if one of the \) sequences is removed - which is weird. PCRE finds it too
   15593 # complicated to find a minimum matching length.
   15594 
   15595 "()X|((((((((()))))))((((())))))\2())((((((\2\2)))\2)(\22((((\2\2)2))\2)))(2\ZZZ)+:)Z^|91ZiZZnter(ZZ |91Z(ZZ ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z+:)Z|91Z(ZZ ZZ(\r2Z( or#(\Z2(Z\Z((Z*(\2(Z\':))\0)i|||||||||||||||loZ\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z)))int \)\0nte!rnal errpr\2\\21r(2\ZZZ)+:)Z!|91Z(ZZ ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z)))int \)\0(2\ZZZ)+:)Z^|91ZiZZnter(ZZ |91Z(ZZ ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z)))int \)\0(2\ZZZ)+:)Z^)))int \)\0(2\ZZZ)+:)Z^|91ZiZZnter(ZZernZal ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z)))int \))\ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)))\2))))((((((\2\2))))))"I
   15596 Capturing subpattern count = 108
   15597 Max back reference = 22
   15598 Contains explicit CR or LF match
   15599 Subject length lower bound = 1
   15600 
   15601 # This checks that new code for handling groups that may match an empty string
   15602 # works on a very large number of alternatives. This pattern used to provoke a
   15603 # complaint that it was too complicated.
   15604 
   15605 /(?:\[A|B|C|D|E|F|G|H|I|J|]{200}Z)/expand
   15606 
   15607 # This one used to compile rubbish instead of a compile error, and then
   15608 # behave unpredictably at match time.
   15609 
   15610 /.+(?(?C'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'))?!XXXX.=X/
   15611 Failed: error 128 at offset 63: assertion expected after (?( or (?(?C)
   15612     .+(?(?C'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'))?!XXXX.=X
   15613 
   15614 /[:[:alnum:]-[[a:lnum:]+/
   15615 Failed: error 150 at offset 11: invalid range in character class
   15616 
   15617 /((?(?C'')\QX\E(?!((?(?C'')(?!X=X));=)r*X=X));=)/
   15618 Failed: error 128 at offset 11: assertion expected after (?( or (?(?C)
   15619 
   15620 /((?(?C'')\Q\E(?!((?(?C'')(?!X=X));=)r*X=X));=)/
   15621 
   15622 /abcd/auto_callout
   15623     abcd\=callout_error=255:2
   15624 --->abcd
   15625  +0 ^        a
   15626  +1 ^^       b
   15627 Failed: error -37: callout error code
   15628 
   15629 /()(\g+65534)/
   15630 Failed: error 161 at offset 11: group number is too big
   15631 
   15632 /()(\g+65533)/
   15633 Failed: error 115 at offset 10: reference to non-existent subpattern
   15634 
   15635 /\x00\x00\x00(\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\x00k\d+\x00\x00\x00\x00\x00\x00\2*\x00\x00\1*.){36}int^\x00\x00\x00(\1{50779}?)J\w2/I
   15636 Capturing subpattern count = 2
   15637 Max back reference = 2
   15638 First code unit = \xc1
   15639 Last code unit = '2'
   15640 Subject length lower bound = 65535
   15641 
   15642 /(a)(b)\2\1\1\1\1/I
   15643 Capturing subpattern count = 2
   15644 Max back reference = 2
   15645 First code unit = 'a'
   15646 Last code unit = 'b'
   15647 Subject length lower bound = 7
   15648 
   15649 /(?<a>a)(?<b>b)\g{b}\g{a}\g{a}\g{a}\g{a}(?<a>xx)(?<b>zz)/I,dupnames
   15650 Capturing subpattern count = 4
   15651 Max back reference = 4
   15652 Named capturing subpatterns:
   15653   a   1
   15654   a   3
   15655   b   2
   15656   b   4
   15657 Options: dupnames
   15658 First code unit = 'a'
   15659 Last code unit = 'z'
   15660 Subject length lower bound = 11
   15661 
   15662 //
   15663     \=ovector=7777777777
   15664 ** Invalid value in 'ovector=7777777777'
   15665 
   15666 # This is here because Perl matches, even though a COMMIT is encountered
   15667 # outside of the recursion.
   15668 
   15669 /(?1)(A(*COMMIT)|B)D/
   15670     BAXBAD
   15671 No match
   15672 
   15673 "(?1){2}(a)"B
   15674 ------------------------------------------------------------------
   15675         Bra
   15676         Recurse
   15677         Recurse
   15678         CBra 1
   15679         a
   15680         Ket
   15681         Ket
   15682         End
   15683 ------------------------------------------------------------------
   15684 
   15685 "(?1){2,4}(a)"B
   15686 ------------------------------------------------------------------
   15687         Bra
   15688         Recurse
   15689         Recurse
   15690         Brazero
   15691         Bra
   15692         Bra
   15693         Recurse
   15694         Ket
   15695         Brazero
   15696         Bra
   15697         Recurse
   15698         Ket
   15699         Ket
   15700         CBra 1
   15701         a
   15702         Ket
   15703         Ket
   15704         End
   15705 ------------------------------------------------------------------
   15706 
   15707 # This test differs from Perl for the first subject. Perl ends up with
   15708 # $1 set to 'B'; PCRE2 has it unset (which I think is right).
   15709 
   15710 /^(?:
   15711 (?:A| (?:B|B(*ACCEPT)) (?<=(.)) D)
   15712 (Z)
   15713 )+$/x
   15714     AZB
   15715  0: AZB
   15716  1: <unset>
   15717  2: Z
   15718     AZBDZ
   15719  0: AZBDZ
   15720  1: B
   15721  2: Z
   15722 
   15723 # The first of these, when run by Perl, gives the mark 'aa', which is wrong.
   15724 
   15725 '(?>a(*:aa))b|ac' mark
   15726     ac
   15727  0: ac
   15728 
   15729 '(?:a(*:aa))b|ac' mark
   15730     ac
   15731  0: ac
   15732 
   15733 /(R?){65}/
   15734     (R?){65}
   15735  0: 
   15736  1: 
   15737 
   15738 /\[(a)]{60}/expand
   15739     aaaa
   15740 No match
   15741 
   15742 /(?<!\1((?U)1((?U))))(*F)/never_backslash_c,alt_bsux,anchored,extended
   15743 
   15744 /\g{3/
   15745 Failed: error 157 at offset 2: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number
   15746 
   15747 /(a(?C1)(b)(c)d)+/
   15748   abcdabcd\=callout_capture
   15749 Callout 1: last capture = 0
   15750 --->abcdabcd
   15751     ^^           (
   15752 Callout 1: last capture = 1
   15753  1: abcd
   15754  2: b
   15755  3: c
   15756 --->abcdabcd
   15757     ^    ^       (
   15758  0: abcdabcd
   15759  1: abcd
   15760  2: b
   15761  3: c
   15762 
   15763 # Perl matches this one, but PCRE does not because (*ACCEPT) clears out any
   15764 # pending backtracks in the recursion.
   15765 
   15766 /^ (?(DEFINE) (..(*ACCEPT)|...) ) (?1)$/x
   15767 \= Expect no match
   15768     abc
   15769 No match
   15770 
   15771 # Perl gives no match for this one
   15772 
   15773 /(a(*MARK:m)(*ACCEPT)){0}(?1)/mark
   15774     abc
   15775  0: a
   15776 MK: m
   15777 
   15778 /abc/endanchored
   15779     xyzabc
   15780  0: abc
   15781 \= Expect no match
   15782     xyzabcdef
   15783 No match
   15784 \= Expect error
   15785     xyzabc\=ph
   15786 Failed: error -34: bad option value
   15787 
   15788 /abc/
   15789     xyzabc\=endanchored
   15790  0: abc
   15791 \= Expect no match
   15792     xyzabcdef\=endanchored
   15793 No match
   15794 \= Expect error
   15795     xyzabc\=ps,endanchored
   15796 Failed: error -34: bad option value
   15797 
   15798 /abc(*ACCEPT)d/endanchored
   15799     xyzabc
   15800  0: abc
   15801 \= Expect no match
   15802     xyzabcdef
   15803 No match
   15804 
   15805 /abc|bcd/endanchored
   15806     xyzabcd
   15807  0: bcd
   15808 \= Expect no match
   15809     xyzabcdef
   15810 No match
   15811 
   15812 /a(*ACCEPT)x|aa/endanchored
   15813     aaa
   15814  0: a
   15815 
   15816 # Check auto-anchoring when there is a group that is never obeyed at
   15817 # the start of a branch.
   15818 
   15819 /(?(DEFINE)(a))^bc/I
   15820 Capturing subpattern count = 1
   15821 Compile options: <none>
   15822 Overall options: anchored
   15823 First code unit = 'b'
   15824 Subject length lower bound = 2
   15825 
   15826 /(a){0}.*bc/sI
   15827 Capturing subpattern count = 1
   15828 Compile options: dotall
   15829 Overall options: anchored dotall
   15830 Last code unit = 'c'
   15831 Subject length lower bound = 2
   15832 
   15833 # This should be anchored, as the condition is always false and there is
   15834 # no alternative branch.
   15835 
   15836 /(?(VERSION>=999)yes)^bc/I
   15837 Capturing subpattern count = 0
   15838 Compile options: <none>
   15839 Overall options: anchored
   15840 Subject length lower bound = 2
   15841 
   15842 # This should not be anchored.
   15843 
   15844 /(?(VERSION>=999)yes|no)^bc/I
   15845 Capturing subpattern count = 0
   15846 Last code unit = 'c'
   15847 Subject length lower bound = 4
   15848 
   15849 /(*LIMIT_HEAP=0)xxx/I
   15850 Capturing subpattern count = 0
   15851 Heap limit = 0
   15852 First code unit = 'x'
   15853 Last code unit = 'x'
   15854 Subject length lower bound = 3
   15855 
   15856 /\d{0,3}(*:abc)(?C1)xxx/callout_info
   15857 Callout 1  x
   15858 
   15859 # ----------------------------------------------------------------------
   15860 
   15861 # These are a whole pile of tests that touch lines of code that are not
   15862 # used by any other tests (at least when these were created).
   15863 
   15864 /^a+?x/i,no_start_optimize,no_auto_possess
   15865 \= Expect no match
   15866     aaa
   15867 No match
   15868 
   15869 /^[^a]{3,}?x/i,no_start_optimize,no_auto_possess
   15870 \= Expect no match
   15871     bbb
   15872 No match
   15873     cc
   15874 No match
   15875 
   15876 /^X\S/no_start_optimize,no_auto_possess
   15877 \= Expect no match
   15878     X
   15879 No match
   15880 
   15881 /^X\W/no_start_optimize,no_auto_possess
   15882 \= Expect no match
   15883     X
   15884 No match
   15885 
   15886 /^X\H/no_start_optimize,no_auto_possess
   15887 \= Expect no match
   15888     X
   15889 No match
   15890 
   15891 /^X\h/no_start_optimize,no_auto_possess
   15892 \= Expect no match
   15893     X
   15894 No match
   15895 
   15896 /^X\V/no_start_optimize,no_auto_possess
   15897 \= Expect no match
   15898     X
   15899 No match
   15900 
   15901 /^X\v/no_start_optimize,no_auto_possess
   15902 \= Expect no match
   15903     X
   15904 No match
   15905 
   15906 /^X\h/no_start_optimize,no_auto_possess
   15907 \= Expect no match
   15908     XY
   15909 No match
   15910 
   15911 /^X\V/no_start_optimize,no_auto_possess
   15912 \= Expect no match
   15913     X\n
   15914 No match
   15915 
   15916 /^X\v/no_start_optimize,no_auto_possess
   15917 \= Expect no match
   15918     XX
   15919 No match
   15920 
   15921 /^X.+?/s,no_start_optimize,no_auto_possess
   15922 \= Expect no match
   15923     X
   15924 No match
   15925 
   15926 /^X\R+?/no_start_optimize,no_auto_possess
   15927 \= Expect no match
   15928     XX
   15929 No match
   15930 
   15931 /^X\H+?/no_start_optimize,no_auto_possess
   15932 \= Expect no match
   15933     X
   15934 No match
   15935 
   15936 /^X\h+?/no_start_optimize,no_auto_possess
   15937 \= Expect no match
   15938     X
   15939 No match
   15940 
   15941 /^X\V+?/no_start_optimize,no_auto_possess
   15942 \= Expect no match
   15943     X
   15944 No match
   15945     X\n
   15946 No match
   15947 
   15948 /^X\D+?/no_start_optimize,no_auto_possess
   15949 \= Expect no match
   15950     X
   15951 No match
   15952     X9
   15953 No match
   15954 
   15955 /^X\S+?/no_start_optimize,no_auto_possess
   15956 \= Expect no match
   15957     X
   15958 No match
   15959     X\n
   15960 No match
   15961 
   15962 /^X\W+?/no_start_optimize,no_auto_possess
   15963 \= Expect no match
   15964     X
   15965 No match
   15966     XX
   15967 No match
   15968 
   15969 /^X.+?Z/no_start_optimize,no_auto_possess
   15970 \= Expect no match
   15971     XY\n
   15972 No match
   15973 
   15974 /(*CRLF)^X.+?Z/no_start_optimize,no_auto_possess
   15975 \= Expect no match
   15976     XY\r\=ps
   15977 Partial match: XY\x0d
   15978 
   15979 /^X\R+?Z/no_start_optimize,no_auto_possess
   15980 \= Expect no match
   15981     X\nX
   15982 No match
   15983     X\n\r\n
   15984 No match
   15985     X\n\rY
   15986 No match
   15987     X\n\nY
   15988 No match
   15989     X\n\x{0c}Y
   15990 No match
   15991 
   15992 /(*BSR_ANYCRLF)^X\R+?Z/no_start_optimize,no_auto_possess
   15993 \= Expect no match
   15994     X\nX
   15995 No match
   15996     X\n\r\n
   15997 No match
   15998     X\n\rY
   15999 No match
   16000     X\n\nY
   16001 No match
   16002     X\n\x{0c}Y
   16003 No match
   16004 
   16005 /^X\H+?Z/no_start_optimize,no_auto_possess
   16006 \= Expect no match
   16007     XY\t
   16008 No match
   16009     XYY
   16010 No match
   16011 
   16012 /^X\h+?Z/no_start_optimize,no_auto_possess
   16013 \= Expect no match
   16014     X\t\t
   16015 No match
   16016     X\tY
   16017 No match
   16018 
   16019 /^X\V+?Z/no_start_optimize,no_auto_possess
   16020 \= Expect no match
   16021     XY\n
   16022 No match
   16023     XYY
   16024 No match
   16025 
   16026 /^X\v+?Z/no_start_optimize,no_auto_possess
   16027 \= Expect no match
   16028     X\n\n
   16029 No match
   16030     X\nY
   16031 No match
   16032 
   16033 /^X\D+?Z/no_start_optimize,no_auto_possess
   16034 \= Expect no match
   16035     XY9
   16036 No match
   16037     XYY
   16038 No match
   16039 
   16040 /^X\d+?Z/no_start_optimize,no_auto_possess
   16041 \= Expect no match
   16042     X99
   16043 No match
   16044     X9Y
   16045 No match
   16046 
   16047 /^X\S+?Z/no_start_optimize,no_auto_possess
   16048 \= Expect no match
   16049     XY\n
   16050 No match
   16051     XYY
   16052 No match
   16053 
   16054 /^X\s+?Z/no_start_optimize,no_auto_possess
   16055 \= Expect no match
   16056     X\n\n
   16057 No match
   16058     X\nY
   16059 No match
   16060 
   16061 /^X\W+?Z/no_start_optimize,no_auto_possess
   16062 \= Expect no match
   16063     X.A
   16064 No match
   16065     X++
   16066 No match
   16067 
   16068 /^X\w+?Z/no_start_optimize,no_auto_possess
   16069 \= Expect no match
   16070     Xa.
   16071 No match
   16072     Xaa
   16073 No match
   16074 
   16075 /^X.{1,3}Z/s,no_start_optimize,no_auto_possess
   16076 \= Expect no match
   16077     Xa.bd
   16078 No match
   16079 
   16080 /^X\h+Z/no_start_optimize,no_auto_possess
   16081 \= Expect no match
   16082     X\t\t
   16083 No match
   16084     X\tY
   16085 No match
   16086 
   16087 /^X\V+Z/no_start_optimize,no_auto_possess
   16088 \= Expect no match
   16089     XY\n
   16090 No match
   16091     XYY
   16092 No match
   16093 
   16094 /^(X(*THEN)Y|AB){0}(?1)/
   16095     ABX
   16096  0: AB
   16097 \= Expect no match
   16098     XAB
   16099 No match
   16100 
   16101 /^(?!A(?C1)B)C/
   16102     ABC\=callout_error=1,no_jit
   16103 No match
   16104 
   16105 /^(?!A(?C1)B)C/no_start_optimize
   16106     ABC\=callout_error=1
   16107 --->ABC
   16108   1 ^^      B
   16109 Failed: error -37: callout error code
   16110 
   16111 /^(?(?!A(?C1)B)C)/
   16112     ABC\=callout_error=1
   16113 --->ABC
   16114   1 ^^      B
   16115 Failed: error -37: callout error code
   16116 
   16117 # ----------------------------------------------------------------------
   16118 
   16119 /[a b c]/BxxI
   16120 ------------------------------------------------------------------
   16121         Bra
   16122         [a-c]
   16123         Ket
   16124         End
   16125 ------------------------------------------------------------------
   16126 Capturing subpattern count = 0
   16127 Options: extended_more
   16128 Starting code units: a b c 
   16129 Subject length lower bound = 1
   16130 
   16131 /[a b c]/BxxxI
   16132 ------------------------------------------------------------------
   16133         Bra
   16134         [a-c]
   16135         Ket
   16136         End
   16137 ------------------------------------------------------------------
   16138 Capturing subpattern count = 0
   16139 Options: extended extended_more
   16140 Starting code units: a b c 
   16141 Subject length lower bound = 1
   16142 
   16143 /[a b c]/B,extended_more
   16144 ------------------------------------------------------------------
   16145         Bra
   16146         [a-c]
   16147         Ket
   16148         End
   16149 ------------------------------------------------------------------
   16150 
   16151 /[ a b c ]/B,extended_more
   16152 ------------------------------------------------------------------
   16153         Bra
   16154         [a-c]
   16155         Ket
   16156         End
   16157 ------------------------------------------------------------------
   16158 
   16159 /[a b](?xx: [ 12 ] (?-xx:[ 34 ]) )y z/B
   16160 ------------------------------------------------------------------
   16161         Bra
   16162         [ ab]
   16163         Bra
   16164         [12]
   16165         Bra
   16166         [ 34]
   16167         Ket
   16168         Ket
   16169         y z
   16170         Ket
   16171         End
   16172 ------------------------------------------------------------------
   16173 
   16174 # Unsetting /x also unsets /xx
   16175 
   16176 /[a b](?xx: [ 12 ] (?-x:[ 34 ]) )y z/B
   16177 ------------------------------------------------------------------
   16178         Bra
   16179         [ ab]
   16180         Bra
   16181         [12]
   16182         Bra
   16183         [ 34]
   16184         Ket
   16185         Ket
   16186         y z
   16187         Ket
   16188         End
   16189 ------------------------------------------------------------------
   16190 
   16191 /(a)(?-n:(b))(c)/nB
   16192 ------------------------------------------------------------------
   16193         Bra
   16194         Bra
   16195         a
   16196         Ket
   16197         Bra
   16198         CBra 1
   16199         b
   16200         Ket
   16201         Ket
   16202         Bra
   16203         c
   16204         Ket
   16205         Ket
   16206         End
   16207 ------------------------------------------------------------------
   16208 
   16209 # ----------------------------------------------------------------------
   16210 # These test the dangerous PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL option.
   16211 
   16212 /\j\x{z}\o{82}\L\uabcd\u\U\g{\g/B,\bad_escape_is_literal
   16213 ** Unrecognized modifier '\' in '\bad_escape_is_literal'
   16214 
   16215 /\N{\c/IB,bad_escape_is_literal
   16216 ------------------------------------------------------------------
   16217         Bra
   16218         N{c
   16219         Ket
   16220         End
   16221 ------------------------------------------------------------------
   16222 Capturing subpattern count = 0
   16223 Extra options: bad_escape_is_literal
   16224 First code unit = 'N'
   16225 Last code unit = 'c'
   16226 Subject length lower bound = 3
   16227 
   16228 /[\j\x{z}\o\gA-\Nb-\g]/B,bad_escape_is_literal
   16229 ------------------------------------------------------------------
   16230         Bra
   16231         [A-Nb-gjoxz{}]
   16232         Ket
   16233         End
   16234 ------------------------------------------------------------------
   16235 
   16236 /[Q-\N]/B,bad_escape_is_literal
   16237 Failed: error 108 at offset 4: range out of order in character class
   16238 
   16239 # ----------------------------------------------------------------------
   16240 
   16241 /a\b(c/literal
   16242     a\\b(c
   16243  0: a\b(c
   16244 
   16245 /a\b(c/literal,caseless
   16246     a\\b(c
   16247  0: a\b(c
   16248     a\\B(c
   16249  0: a\B(c
   16250 
   16251 /a\b(c/literal,firstline
   16252     XYYa\\b(c
   16253  0: a\b(c
   16254 \= Expect no match
   16255     X\na\\b(c
   16256 No match
   16257 
   16258 /a\b?c/literal,use_offset_limit
   16259     XXXXa\\b?c\=offset_limit=4
   16260  0: a\b?c
   16261 \= Expect no match
   16262     XXXXa\\b?c\=offset_limit=3
   16263 No match
   16264 
   16265 /a\b(c/literal,anchored,endanchored
   16266     a\\b(c
   16267  0: a\b(c
   16268 \= Expect no match
   16269     Xa\\b(c
   16270 No match
   16271     a\\b(cX
   16272 No match
   16273     Xa\\b(cX
   16274 No match
   16275 
   16276 //literal,extended
   16277 Failed: error 192 at offset 0: invalid option bits with PCRE2_LITERAL
   16278 
   16279 /a\b(c/literal,auto_callout,no_start_optimize
   16280     XXXXa\\b(c
   16281 --->XXXXa\b(c
   16282  +0 ^             a
   16283  +0  ^            a
   16284  +0   ^           a
   16285  +0    ^          a
   16286  +0     ^         a
   16287  +1     ^^        \
   16288  +2     ^ ^       b
   16289  +3     ^  ^      (
   16290  +4     ^   ^     c
   16291  +5     ^    ^    End of pattern
   16292  0: a\b(c
   16293 
   16294 /a\b(c/literal,auto_callout
   16295     XXXXa\\b(c
   16296 --->XXXXa\b(c
   16297  +0     ^         a
   16298  +1     ^^        \
   16299  +2     ^ ^       b
   16300  +3     ^  ^      (
   16301  +4     ^   ^     c
   16302  +5     ^    ^    End of pattern
   16303  0: a\b(c
   16304 
   16305 /(*CR)abc/literal
   16306     (*CR)abc
   16307  0: (*CR)abc
   16308 
   16309 /cat|dog/I,match_word
   16310 Capturing subpattern count = 0
   16311 Max lookbehind = 1
   16312 Extra options: match_word
   16313 Starting code units: c d 
   16314 Subject length lower bound = 3
   16315     the cat sat
   16316  0: cat
   16317 \= Expect no match
   16318     caterpillar
   16319 No match
   16320     snowcat
   16321 No match
   16322     syndicate
   16323 No match
   16324 
   16325 /(cat)|dog/I,match_line,literal
   16326 Capturing subpattern count = 0
   16327 Compile options: literal
   16328 Overall options: anchored literal
   16329 Extra options: match_line
   16330 First code unit = '('
   16331 Subject length lower bound = 9
   16332     (cat)|dog
   16333  0: (cat)|dog
   16334 \= Expect no match
   16335     the cat sat
   16336 No match
   16337     caterpillar
   16338 No match
   16339     snowcat
   16340 No match
   16341     syndicate
   16342 No match
   16343 
   16344 /a whole line/match_line,multiline
   16345     Rhubarb \na whole line\n custard
   16346  0: a whole line
   16347 \= Expect no match
   16348     Not a whole line
   16349 No match
   16350 
   16351 # Perl gets this wrong, failing to capture 'b' in group 1.
   16352 
   16353 /^(b+|a){1,2}?bc/
   16354     bbc
   16355  0: bbc
   16356  1: b
   16357     
   16358 # And again here, for the "babc" subject string. 
   16359 
   16360 /^(b*|ba){1,2}?bc/
   16361     babc
   16362  0: babc
   16363  1: ba
   16364     bbabc
   16365  0: bbabc
   16366  1: ba
   16367     bababc
   16368  0: bababc
   16369  1: ba
   16370 \= Expect no match
   16371     bababbc
   16372 No match
   16373     babababc
   16374 No match
   16375 
   16376 /[[:digit:]-a]/
   16377 Failed: error 150 at offset 10: invalid range in character class
   16378 
   16379 /[[:digit:]-[:print:]]/
   16380 Failed: error 150 at offset 10: invalid range in character class
   16381 
   16382 /[\d-a]/
   16383 Failed: error 150 at offset 3: invalid range in character class
   16384 
   16385 /[\H-z]/
   16386 Failed: error 150 at offset 3: invalid range in character class
   16387 
   16388 /[\d-[:print:]]/
   16389 Failed: error 150 at offset 3: invalid range in character class
   16390 
   16391 # Perl gets the second of these wrong, giving no match.
   16392 
   16393 "(?<=(a))\1?b"I
   16394 Capturing subpattern count = 1
   16395 Max back reference = 1
   16396 Max lookbehind = 1
   16397 Last code unit = 'b'
   16398 Subject length lower bound = 1
   16399     ab
   16400  0: b
   16401  1: a
   16402     aaab 
   16403  0: ab
   16404  1: a
   16405 
   16406 "(?=(a))\1?b"I
   16407 Capturing subpattern count = 1
   16408 Max back reference = 1
   16409 First code unit = 'a'
   16410 Last code unit = 'b'
   16411 Subject length lower bound = 1
   16412     ab
   16413  0: ab
   16414  1: a
   16415     aaab
   16416  0: ab
   16417  1: a
   16418     
   16419 # JIT does not support callout_extra  
   16420     
   16421 /(*NO_JIT)(a+)b/auto_callout,no_start_optimize,no_auto_possess
   16422 \= Expect no match
   16423     aac\=callout_extra 
   16424 New match attempt
   16425 --->aac
   16426  +9 ^       (
   16427 +10 ^       a+
   16428 +12 ^ ^     )
   16429 +13 ^ ^     b
   16430 Backtrack
   16431 --->aac
   16432 +12 ^^      )
   16433 +13 ^^      b
   16434 Backtrack
   16435 No other matching paths
   16436 New match attempt
   16437 --->aac
   16438  +9  ^      (
   16439 +10  ^      a+
   16440 +12  ^^     )
   16441 +13  ^^     b
   16442 Backtrack
   16443 No other matching paths
   16444 New match attempt
   16445 --->aac
   16446  +9   ^     (
   16447 +10   ^     a+
   16448 Backtrack
   16449 No other matching paths
   16450 New match attempt
   16451 --->aac
   16452  +9    ^    (
   16453 +10    ^    a+
   16454 No match
   16455     
   16456 /(*NO_JIT)a+(?C'XXX')b/no_start_optimize,no_auto_possess
   16457 \= Expect no match
   16458     aac\=callout_extra 
   16459 New match attempt
   16460 Callout (15): 'XXX'
   16461 --->aac
   16462     ^ ^     b
   16463 Backtrack
   16464 Callout (15): 'XXX'
   16465 --->aac
   16466     ^^      b
   16467 Backtrack
   16468 No other matching paths
   16469 New match attempt
   16470 Callout (15): 'XXX'
   16471 --->aac
   16472      ^^     b
   16473 No match
   16474 
   16475 /\n/firstline
   16476     xyz\nabc
   16477  0: \x0a
   16478 
   16479 /\nabc/firstline
   16480     xyz\nabc
   16481  0: \x0aabc
   16482 
   16483 /\x{0a}abc/firstline,newline=crlf
   16484 \= Expect no match
   16485     xyz\r\nabc
   16486 No match
   16487 
   16488 /[abc]/firstline
   16489 \= Expect no match
   16490     \na
   16491 No match
   16492     
   16493 # These tests are matched in test 1 as they are Perl compatible. Here we are
   16494 # looking at what does and does not get auto-possessified. 
   16495 
   16496 /(?(DEFINE)(?<optional_a>a?))^(?&optional_a)a$/B
   16497 ------------------------------------------------------------------
   16498         Bra
   16499         Cond
   16500         Cond false
   16501         CBra 1
   16502         a?
   16503         Ket
   16504         Ket
   16505         ^
   16506         Recurse
   16507         a
   16508         $
   16509         Ket
   16510         End
   16511 ------------------------------------------------------------------
   16512 
   16513 /(?(DEFINE)(?<optional_a>a?)X)^(?&optional_a)a$/B
   16514 ------------------------------------------------------------------
   16515         Bra
   16516         Cond
   16517         Cond false
   16518         CBra 1
   16519         a?
   16520         Ket
   16521         X
   16522         Ket
   16523         ^
   16524         Recurse
   16525         a
   16526         $
   16527         Ket
   16528         End
   16529 ------------------------------------------------------------------
   16530     
   16531 /^(a?)b(?1)a/B
   16532 ------------------------------------------------------------------
   16533         Bra
   16534         ^
   16535         CBra 1
   16536         a?
   16537         Ket
   16538         b
   16539         Recurse
   16540         a
   16541         Ket
   16542         End
   16543 ------------------------------------------------------------------
   16544 
   16545 /^(a?)+b(?1)a/B
   16546 ------------------------------------------------------------------
   16547         Bra
   16548         ^
   16549         SCBra 1
   16550         a?
   16551         KetRmax
   16552         b
   16553         Recurse
   16554         a
   16555         Ket
   16556         End
   16557 ------------------------------------------------------------------
   16558 
   16559 /^(a?)++b(?1)a/B
   16560 ------------------------------------------------------------------
   16561         Bra
   16562         ^
   16563         SCBraPos 1
   16564         a?
   16565         KetRpos
   16566         b
   16567         Recurse
   16568         a
   16569         Ket
   16570         End
   16571 ------------------------------------------------------------------
   16572 
   16573 /^(a?)+b/B
   16574 ------------------------------------------------------------------
   16575         Bra
   16576         ^
   16577         SCBra 1
   16578         a?
   16579         KetRmax
   16580         b
   16581         Ket
   16582         End
   16583 ------------------------------------------------------------------
   16584 
   16585 /(?=a+)a(a+)++b/B
   16586 ------------------------------------------------------------------
   16587         Bra
   16588         Assert
   16589         a++
   16590         Ket
   16591         a
   16592         CBraPos 1
   16593         a++
   16594         KetRpos
   16595         b
   16596         Ket
   16597         End
   16598 ------------------------------------------------------------------
   16599 
   16600 /(?<=(?=.){4,5}x)/B
   16601 ------------------------------------------------------------------
   16602         Bra
   16603         AssertB
   16604         Reverse
   16605         Assert
   16606         Any
   16607         Ket
   16608         x
   16609         Ket
   16610         Ket
   16611         End
   16612 ------------------------------------------------------------------
   16613 
   16614 # Perl behaves differently with these when optimization is turned off
   16615 
   16616 /a(*PRUNE:X)bc|qq/mark,no_start_optimize
   16617 \= Expect no match
   16618     axy
   16619 No match, mark = X
   16620 
   16621 /a(*THEN:X)bc|qq/mark,no_start_optimize
   16622 \= Expect no match
   16623     axy
   16624 No match, mark = X
   16625 
   16626 /(?^x-i)AB/ 
   16627 Failed: error 194 at offset 4: invalid hyphen in option setting
   16628 
   16629 /(?^-i)AB/ 
   16630 Failed: error 194 at offset 3: invalid hyphen in option setting
   16631 
   16632 /(?x-i-i)/
   16633 Failed: error 194 at offset 5: invalid hyphen in option setting
   16634 
   16635 /(?(?=^))b/I
   16636 Capturing subpattern count = 0
   16637 Last code unit = 'b'
   16638 Subject length lower bound = 1
   16639     abc
   16640  0: b
   16641 
   16642 /(?(?=^)|)b/I
   16643 Capturing subpattern count = 0
   16644 First code unit = 'b'
   16645 Subject length lower bound = 1
   16646     abc
   16647  0: b
   16648 
   16649 /(?(?=^)|^)b/I
   16650 Capturing subpattern count = 0
   16651 Compile options: <none>
   16652 Overall options: anchored
   16653 First code unit = 'b'
   16654 Subject length lower bound = 1
   16655     bbc
   16656  0: b
   16657 \= Expect no match
   16658     abc     
   16659 No match
   16660 
   16661 /(?(1)^|^())/I
   16662 Capturing subpattern count = 1
   16663 Max back reference = 1
   16664 May match empty string
   16665 Compile options: <none>
   16666 Overall options: anchored
   16667 Subject length lower bound = 0
   16668 
   16669 /(?(1)^())b/I
   16670 Capturing subpattern count = 1
   16671 Max back reference = 1
   16672 Last code unit = 'b'
   16673 Subject length lower bound = 1
   16674 
   16675 /(?(1)^())+b/I,aftertext
   16676 Capturing subpattern count = 1
   16677 Max back reference = 1
   16678 Last code unit = 'b'
   16679 Subject length lower bound = 1
   16680     abc
   16681  0: b
   16682  0+ c
   16683 
   16684 /(?(1)^()|^)+b/I,aftertext
   16685 Capturing subpattern count = 1
   16686 Max back reference = 1
   16687 Compile options: <none>
   16688 Overall options: anchored
   16689 First code unit = 'b'
   16690 Subject length lower bound = 1
   16691     bbc 
   16692  0: b
   16693  0+ bc
   16694 \= Expect no match     
   16695     abc
   16696 No match
   16697 
   16698 /(?(1)^()|^)*b/I,aftertext
   16699 Capturing subpattern count = 1
   16700 Max back reference = 1
   16701 First code unit = 'b'
   16702 Subject length lower bound = 1
   16703     bbc 
   16704  0: b
   16705  0+ bc
   16706     abc
   16707  0: b
   16708  0+ c
   16709     xbc 
   16710  0: b
   16711  0+ c
   16712 
   16713 /(?(1)^())+b/I,aftertext
   16714 Capturing subpattern count = 1
   16715 Max back reference = 1
   16716 Last code unit = 'b'
   16717 Subject length lower bound = 1
   16718     abc
   16719  0: b
   16720  0+ c
   16721 
   16722 /(?(1)^a()|^a)+b/I,aftertext
   16723 Capturing subpattern count = 1
   16724 Max back reference = 1
   16725 Compile options: <none>
   16726 Overall options: anchored
   16727 First code unit = 'a'
   16728 Last code unit = 'b'
   16729 Subject length lower bound = 2
   16730     abc 
   16731  0: ab
   16732  0+ c
   16733 \= Expect no match     
   16734     bbc
   16735 No match
   16736 
   16737 /(?(1)^|^(a))+b/I,aftertext
   16738 Capturing subpattern count = 1
   16739 Max back reference = 1
   16740 Compile options: <none>
   16741 Overall options: anchored
   16742 Last code unit = 'b'
   16743 Subject length lower bound = 1
   16744     abc 
   16745  0: ab
   16746  0+ c
   16747  1: a
   16748 \= Expect no match     
   16749     bbc
   16750 No match
   16751 
   16752 /(?(1)^a()|^a)*b/I,aftertext
   16753 Capturing subpattern count = 1
   16754 Max back reference = 1
   16755 Last code unit = 'b'
   16756 Subject length lower bound = 1
   16757     abc 
   16758  0: ab
   16759  0+ c
   16760     bbc
   16761  0: b
   16762  0+ bc
   16763     xbc 
   16764  0: b
   16765  0+ c
   16766 
   16767 # End of testinput2
   16768 Error -70: PCRE2_ERROR_BADDATA (unknown error number)
   16769 Error -62: bad serialized data
   16770 Error -2: partial match
   16771 Error -1: no match
   16772 Error 0: PCRE2_ERROR_BADDATA (unknown error number)
   16773 Error 100: no error
   16774 Error 101: \ at end of pattern
   16775 Error 191: PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES is not allowed in UTF-16 mode
   16776 Error 200: PCRE2_ERROR_BADDATA (unknown error number)
   16777