Home | History | Annotate | Download | only in testdata
      1 # There are two sorts of patterns in this test. A number of them are
      2 # representative patterns whose lengths and offsets are checked. This is just a
      3 # doublecheck test to ensure the sizes don't go horribly wrong when something
      4 # is changed. The operation of these patterns is checked in other tests.
      5 #
      6 # This file also contains tests whose output varies with code unit size and/or
      7 # link size. Unicode support is required for these tests. There are separate
      8 # output files for each code unit size and link size.
      9 
     10 #pattern fullbincode,memory
     11 
     12 /((?i)b)/
     13 Memory allocation (code space): 25
     14 ------------------------------------------------------------------
     15   0  19 Bra
     16   5   9 CBra 1
     17  12  /i b
     18  14   9 Ket
     19  19  19 Ket
     20  24     End
     21 ------------------------------------------------------------------
     22 
     23 /(?s)(.*X|^B)/
     24 Memory allocation (code space): 35
     25 ------------------------------------------------------------------
     26   0  29 Bra
     27   5  11 CBra 1
     28  12     AllAny*
     29  14     X
     30  16   8 Alt
     31  21     ^
     32  22     B
     33  24  19 Ket
     34  29  29 Ket
     35  34     End
     36 ------------------------------------------------------------------
     37 
     38 /(?s:.*X|^B)/
     39 Memory allocation (code space): 33
     40 ------------------------------------------------------------------
     41   0  27 Bra
     42   5   9 Bra
     43  10     AllAny*
     44  12     X
     45  14   8 Alt
     46  19     ^
     47  20     B
     48  22  17 Ket
     49  27  27 Ket
     50  32     End
     51 ------------------------------------------------------------------
     52 
     53 /^[[:alnum:]]/
     54 Memory allocation (code space): 45
     55 ------------------------------------------------------------------
     56   0  39 Bra
     57   5     ^
     58   6     [0-9A-Za-z]
     59  39  39 Ket
     60  44     End
     61 ------------------------------------------------------------------
     62 
     63 /#/Ix
     64 Memory allocation (code space): 11
     65 ------------------------------------------------------------------
     66   0   5 Bra
     67   5   5 Ket
     68  10     End
     69 ------------------------------------------------------------------
     70 Capturing subpattern count = 0
     71 May match empty string
     72 Options: extended
     73 Subject length lower bound = 0
     74 
     75 /a#/Ix
     76 Memory allocation (code space): 13
     77 ------------------------------------------------------------------
     78   0   7 Bra
     79   5     a
     80   7   7 Ket
     81  12     End
     82 ------------------------------------------------------------------
     83 Capturing subpattern count = 0
     84 Options: extended
     85 First code unit = 'a'
     86 Subject length lower bound = 1
     87 
     88 /x?+/
     89 Memory allocation (code space): 13
     90 ------------------------------------------------------------------
     91   0   7 Bra
     92   5     x?+
     93   7   7 Ket
     94  12     End
     95 ------------------------------------------------------------------
     96 
     97 /x++/
     98 Memory allocation (code space): 13
     99 ------------------------------------------------------------------
    100   0   7 Bra
    101   5     x++
    102   7   7 Ket
    103  12     End
    104 ------------------------------------------------------------------
    105 
    106 /x{1,3}+/
    107 Memory allocation (code space): 17
    108 ------------------------------------------------------------------
    109   0  11 Bra
    110   5     x
    111   7     x{0,2}+
    112  11  11 Ket
    113  16     End
    114 ------------------------------------------------------------------
    115 
    116 /(x)*+/
    117 Memory allocation (code space): 26
    118 ------------------------------------------------------------------
    119   0  20 Bra
    120   5     Braposzero
    121   6   9 CBraPos 1
    122  13     x
    123  15   9 KetRpos
    124  20  20 Ket
    125  25     End
    126 ------------------------------------------------------------------
    127 
    128 /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
    129 Memory allocation (code space): 144
    130 ------------------------------------------------------------------
    131   0 138 Bra
    132   5     ^
    133   6 127 CBra 1
    134  13   9 CBra 2
    135  20     a+
    136  22   9 Ket
    137  27  41 CBra 3
    138  34     [ab]+?
    139  68  41 Ket
    140  73  41 CBra 4
    141  80     [bc]+
    142 114  41 Ket
    143 119   9 CBra 5
    144 126     \w*+
    145 128   9 Ket
    146 133 127 Ket
    147 138 138 Ket
    148 143     End
    149 ------------------------------------------------------------------
    150 
    151 "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"
    152 Memory allocation (code space): 830
    153 ------------------------------------------------------------------
    154   0 824 Bra
    155   5     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
    156 823     \b
    157 824 824 Ket
    158 829     End
    159 ------------------------------------------------------------------
    160 
    161 "\$\<\.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"
    162 Memory allocation (code space): 820
    163 ------------------------------------------------------------------
    164   0 814 Bra
    165   5     $<.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
    166 813     \b
    167 814 814 Ket
    168 819     End
    169 ------------------------------------------------------------------
    170 
    171 /(a(?1)b)/
    172 Memory allocation (code space): 32
    173 ------------------------------------------------------------------
    174   0  26 Bra
    175   5  16 CBra 1
    176  12     a
    177  14   5 Recurse
    178  19     b
    179  21  16 Ket
    180  26  26 Ket
    181  31     End
    182 ------------------------------------------------------------------
    183 
    184 /(a(?1)+b)/
    185 Memory allocation (code space): 42
    186 ------------------------------------------------------------------
    187   0  36 Bra
    188   5  26 CBra 1
    189  12     a
    190  14  10 Once
    191  19   5 Recurse
    192  24  10 KetRmax
    193  29     b
    194  31  26 Ket
    195  36  36 Ket
    196  41     End
    197 ------------------------------------------------------------------
    198 
    199 /a(?P<name1>b|c)d(?P<longername2>e)/
    200 Memory allocation (code space): 50
    201 ------------------------------------------------------------------
    202   0  44 Bra
    203   5     a
    204   7   9 CBra 1
    205  14     b
    206  16   7 Alt
    207  21     c
    208  23  16 Ket
    209  28     d
    210  30   9 CBra 2
    211  37     e
    212  39   9 Ket
    213  44  44 Ket
    214  49     End
    215 ------------------------------------------------------------------
    216 
    217 /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/
    218 Memory allocation (code space): 65
    219 ------------------------------------------------------------------
    220   0  59 Bra
    221   5  35 Bra
    222  10     a
    223  12  23 CBra 1
    224  19     c
    225  21   9 CBra 2
    226  28     d
    227  30   9 Ket
    228  35  23 Ket
    229  40  35 Ket
    230  45   9 CBra 3
    231  52     a
    232  54   9 Ket
    233  59  59 Ket
    234  64     End
    235 ------------------------------------------------------------------
    236 
    237 /(?P<a>a)...(?P=a)bbb(?P>a)d/
    238 Memory allocation (code space): 44
    239 ------------------------------------------------------------------
    240   0  38 Bra
    241   5   9 CBra 1
    242  12     a
    243  14   9 Ket
    244  19     Any
    245  20     Any
    246  21     Any
    247  22     \1
    248  25     bbb
    249  31   5 Recurse
    250  36     d
    251  38  38 Ket
    252  43     End
    253 ------------------------------------------------------------------
    254 
    255 /abc(?C255)de(?C)f/
    256 Memory allocation (code space): 43
    257 ------------------------------------------------------------------
    258   0  37 Bra
    259   5     abc
    260  11     Callout 255 10 1
    261  21     de
    262  25     Callout 0 16 1
    263  35     f
    264  37  37 Ket
    265  42     End
    266 ------------------------------------------------------------------
    267 
    268 /abcde/auto_callout
    269 Memory allocation (code space): 81
    270 ------------------------------------------------------------------
    271   0  75 Bra
    272   5     Callout 255 0 1
    273  15     a
    274  17     Callout 255 1 1
    275  27     b
    276  29     Callout 255 2 1
    277  39     c
    278  41     Callout 255 3 1
    279  51     d
    280  53     Callout 255 4 1
    281  63     e
    282  65     Callout 255 5 0
    283  75  75 Ket
    284  80     End
    285 ------------------------------------------------------------------
    286 
    287 /\x{100}/utf
    288 Memory allocation (code space): 14
    289 ------------------------------------------------------------------
    290   0   8 Bra
    291   5     \x{100}
    292   8   8 Ket
    293  13     End
    294 ------------------------------------------------------------------
    295 
    296 /\x{1000}/utf
    297 Memory allocation (code space): 15
    298 ------------------------------------------------------------------
    299   0   9 Bra
    300   5     \x{1000}
    301   9   9 Ket
    302  14     End
    303 ------------------------------------------------------------------
    304 
    305 /\x{10000}/utf
    306 Memory allocation (code space): 16
    307 ------------------------------------------------------------------
    308   0  10 Bra
    309   5     \x{10000}
    310  10  10 Ket
    311  15     End
    312 ------------------------------------------------------------------
    313 
    314 /\x{100000}/utf
    315 Memory allocation (code space): 16
    316 ------------------------------------------------------------------
    317   0  10 Bra
    318   5     \x{100000}
    319  10  10 Ket
    320  15     End
    321 ------------------------------------------------------------------
    322 
    323 /\x{10ffff}/utf
    324 Memory allocation (code space): 16
    325 ------------------------------------------------------------------
    326   0  10 Bra
    327   5     \x{10ffff}
    328  10  10 Ket
    329  15     End
    330 ------------------------------------------------------------------
    331 
    332 /\x{110000}/utf
    333 Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
    334 
    335 /[\x{ff}]/utf
    336 Memory allocation (code space): 14
    337 ------------------------------------------------------------------
    338   0   8 Bra
    339   5     \x{ff}
    340   8   8 Ket
    341  13     End
    342 ------------------------------------------------------------------
    343 
    344 /[\x{100}]/utf
    345 Memory allocation (code space): 14
    346 ------------------------------------------------------------------
    347   0   8 Bra
    348   5     \x{100}
    349   8   8 Ket
    350  13     End
    351 ------------------------------------------------------------------
    352 
    353 /\x80/utf
    354 Memory allocation (code space): 14
    355 ------------------------------------------------------------------
    356   0   8 Bra
    357   5     \x{80}
    358   8   8 Ket
    359  13     End
    360 ------------------------------------------------------------------
    361 
    362 /\xff/utf
    363 Memory allocation (code space): 14
    364 ------------------------------------------------------------------
    365   0   8 Bra
    366   5     \x{ff}
    367   8   8 Ket
    368  13     End
    369 ------------------------------------------------------------------
    370 
    371 /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf
    372 Memory allocation (code space): 22
    373 ------------------------------------------------------------------
    374   0  16 Bra
    375   5     A\x{2262}\x{391}.
    376  16  16 Ket
    377  21     End
    378 ------------------------------------------------------------------
    379 Capturing subpattern count = 0
    380 Options: utf
    381 First code unit = 'A'
    382 Last code unit = '.'
    383 Subject length lower bound = 4
    384 
    385 /\x{D55c}\x{ad6d}\x{C5B4}/I,utf
    386 Memory allocation (code space): 23
    387 ------------------------------------------------------------------
    388   0  17 Bra
    389   5     \x{d55c}\x{ad6d}\x{c5b4}
    390  17  17 Ket
    391  22     End
    392 ------------------------------------------------------------------
    393 Capturing subpattern count = 0
    394 Options: utf
    395 First code unit = \xed
    396 Last code unit = \xb4
    397 Subject length lower bound = 3
    398 
    399 /\x{65e5}\x{672c}\x{8a9e}/I,utf
    400 Memory allocation (code space): 23
    401 ------------------------------------------------------------------
    402   0  17 Bra
    403   5     \x{65e5}\x{672c}\x{8a9e}
    404  17  17 Ket
    405  22     End
    406 ------------------------------------------------------------------
    407 Capturing subpattern count = 0
    408 Options: utf
    409 First code unit = \xe6
    410 Last code unit = \x9e
    411 Subject length lower bound = 3
    412 
    413 /[\x{100}]/utf
    414 Memory allocation (code space): 14
    415 ------------------------------------------------------------------
    416   0   8 Bra
    417   5     \x{100}
    418   8   8 Ket
    419  13     End
    420 ------------------------------------------------------------------
    421 
    422 /[Z\x{100}]/utf
    423 Memory allocation (code space): 53
    424 ------------------------------------------------------------------
    425   0  47 Bra
    426   5     [Z\x{100}]
    427  47  47 Ket
    428  52     End
    429 ------------------------------------------------------------------
    430 
    431 /^[\x{100}\E-\Q\E\x{150}]/utf
    432 Memory allocation (code space): 24
    433 ------------------------------------------------------------------
    434   0  18 Bra
    435   5     ^
    436   6     [\x{100}-\x{150}]
    437  18  18 Ket
    438  23     End
    439 ------------------------------------------------------------------
    440 
    441 /^[\Q\E-\Q\E]/utf
    442 Memory allocation (code space): 24
    443 ------------------------------------------------------------------
    444   0  18 Bra
    445   5     ^
    446   6     [\x{100}-\x{150}]
    447  18  18 Ket
    448  23     End
    449 ------------------------------------------------------------------
    450 
    451 /^[\Q\E-\Q\E/utf
    452 Failed: error 106 at offset 15: missing terminating ] for character class
    453 
    454 /[\p{L}]/
    455 Memory allocation (code space): 21
    456 ------------------------------------------------------------------
    457   0  15 Bra
    458   5     [\p{L}]
    459  15  15 Ket
    460  20     End
    461 ------------------------------------------------------------------
    462 
    463 /[\p{^L}]/
    464 Memory allocation (code space): 21
    465 ------------------------------------------------------------------
    466   0  15 Bra
    467   5     [\P{L}]
    468  15  15 Ket
    469  20     End
    470 ------------------------------------------------------------------
    471 
    472 /[\P{L}]/
    473 Memory allocation (code space): 21
    474 ------------------------------------------------------------------
    475   0  15 Bra
    476   5     [\P{L}]
    477  15  15 Ket
    478  20     End
    479 ------------------------------------------------------------------
    480 
    481 /[\P{^L}]/
    482 Memory allocation (code space): 21
    483 ------------------------------------------------------------------
    484   0  15 Bra
    485   5     [\p{L}]
    486  15  15 Ket
    487  20     End
    488 ------------------------------------------------------------------
    489 
    490 /[abc\p{L}\x{0660}]/utf
    491 Memory allocation (code space): 56
    492 ------------------------------------------------------------------
    493   0  50 Bra
    494   5     [a-c\p{L}\x{660}]
    495  50  50 Ket
    496  55     End
    497 ------------------------------------------------------------------
    498 
    499 /[\p{Nd}]/utf
    500 Memory allocation (code space): 21
    501 ------------------------------------------------------------------
    502   0  15 Bra
    503   5     [\p{Nd}]
    504  15  15 Ket
    505  20     End
    506 ------------------------------------------------------------------
    507 
    508 /[\p{Nd}+-]+/utf
    509 Memory allocation (code space): 54
    510 ------------------------------------------------------------------
    511   0  48 Bra
    512   5     [+\-\p{Nd}]++
    513  48  48 Ket
    514  53     End
    515 ------------------------------------------------------------------
    516 
    517 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
    518 Memory allocation (code space): 29
    519 ------------------------------------------------------------------
    520   0  23 Bra
    521   5  /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
    522  23  23 Ket
    523  28     End
    524 ------------------------------------------------------------------
    525 
    526 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
    527 Memory allocation (code space): 29
    528 ------------------------------------------------------------------
    529   0  23 Bra
    530   5     A\x{391}\x{10427}\x{ff3a}\x{1fb0}
    531  23  23 Ket
    532  28     End
    533 ------------------------------------------------------------------
    534 
    535 /[\x{105}-\x{109}]/i,utf
    536 Memory allocation (code space): 23
    537 ------------------------------------------------------------------
    538   0  17 Bra
    539   5     [\x{104}-\x{109}]
    540  17  17 Ket
    541  22     End
    542 ------------------------------------------------------------------
    543 
    544 /( ( (?(1)0|) )*   )/x
    545 Memory allocation (code space): 56
    546 ------------------------------------------------------------------
    547   0  50 Bra
    548   5  40 CBra 1
    549  12     Brazero
    550  13  27 SCBra 2
    551  20  10 Cond
    552  25   1 Cond ref
    553  28     0
    554  30   5 Alt
    555  35  15 Ket
    556  40  27 KetRmax
    557  45  40 Ket
    558  50  50 Ket
    559  55     End
    560 ------------------------------------------------------------------
    561 
    562 /(  (?(1)0|)*   )/x
    563 Memory allocation (code space): 44
    564 ------------------------------------------------------------------
    565   0  38 Bra
    566   5  28 CBra 1
    567  12     Brazero
    568  13  10 SCond
    569  18   1 Cond ref
    570  21     0
    571  23   5 Alt
    572  28  15 KetRmax
    573  33  28 Ket
    574  38  38 Ket
    575  43     End
    576 ------------------------------------------------------------------
    577 
    578 /[a]/
    579 Memory allocation (code space): 13
    580 ------------------------------------------------------------------
    581   0   7 Bra
    582   5     a
    583   7   7 Ket
    584  12     End
    585 ------------------------------------------------------------------
    586 
    587 /[a]/utf
    588 Memory allocation (code space): 13
    589 ------------------------------------------------------------------
    590   0   7 Bra
    591   5     a
    592   7   7 Ket
    593  12     End
    594 ------------------------------------------------------------------
    595 
    596 /[\xaa]/
    597 Memory allocation (code space): 13
    598 ------------------------------------------------------------------
    599   0   7 Bra
    600   5     \x{aa}
    601   7   7 Ket
    602  12     End
    603 ------------------------------------------------------------------
    604 
    605 /[\xaa]/utf
    606 Memory allocation (code space): 14
    607 ------------------------------------------------------------------
    608   0   8 Bra
    609   5     \x{aa}
    610   8   8 Ket
    611  13     End
    612 ------------------------------------------------------------------
    613 
    614 /[^a]/
    615 Memory allocation (code space): 13
    616 ------------------------------------------------------------------
    617   0   7 Bra
    618   5     [^a]
    619   7   7 Ket
    620  12     End
    621 ------------------------------------------------------------------
    622 
    623 /[^a]/utf
    624 Memory allocation (code space): 13
    625 ------------------------------------------------------------------
    626   0   7 Bra
    627   5     [^a]
    628   7   7 Ket
    629  12     End
    630 ------------------------------------------------------------------
    631 
    632 /[^\xaa]/
    633 Memory allocation (code space): 13
    634 ------------------------------------------------------------------
    635   0   7 Bra
    636   5     [^\x{aa}]
    637   7   7 Ket
    638  12     End
    639 ------------------------------------------------------------------
    640 
    641 /[^\xaa]/utf
    642 Memory allocation (code space): 14
    643 ------------------------------------------------------------------
    644   0   8 Bra
    645   5     [^\x{aa}]
    646   8   8 Ket
    647  13     End
    648 ------------------------------------------------------------------
    649 
    650 #pattern -memory
    651 
    652 /[^\d]/utf,ucp
    653 ------------------------------------------------------------------
    654   0  15 Bra
    655   5     [^\p{Nd}]
    656  15  15 Ket
    657  20     End
    658 ------------------------------------------------------------------
    659 
    660 /[[:^alpha:][:^cntrl:]]+/utf,ucp
    661 ------------------------------------------------------------------
    662   0  19 Bra
    663   5     [\P{L}\P{Cc}]++
    664  19  19 Ket
    665  24     End
    666 ------------------------------------------------------------------
    667 
    668 /[[:^cntrl:][:^alpha:]]+/utf,ucp
    669 ------------------------------------------------------------------
    670   0  19 Bra
    671   5     [\P{Cc}\P{L}]++
    672  19  19 Ket
    673  24     End
    674 ------------------------------------------------------------------
    675 
    676 /[[:alpha:]]+/utf,ucp
    677 ------------------------------------------------------------------
    678   0  16 Bra
    679   5     [\p{L}]++
    680  16  16 Ket
    681  21     End
    682 ------------------------------------------------------------------
    683 
    684 /[[:^alpha:]\S]+/utf,ucp
    685 ------------------------------------------------------------------
    686   0  19 Bra
    687   5     [\P{L}\P{Xsp}]++
    688  19  19 Ket
    689  24     End
    690 ------------------------------------------------------------------
    691 
    692 /abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/
    693 ------------------------------------------------------------------
    694   0  93 Bra
    695   5     abc
    696  11   9 CBra 1
    697  18     d
    698  20   7 Alt
    699  25     e
    700  27  16 Ket
    701  32     *THEN
    702  33     x
    703  35  16 CBra 2
    704  42     123
    705  48     *THEN
    706  49     4
    707  51  37 Alt
    708  56     567
    709  62   9 CBra 3
    710  69     b
    711  71   7 Alt
    712  76     q
    713  78  16 Ket
    714  83     *THEN
    715  84     xx
    716  88  53 Ket
    717  93  93 Ket
    718  98     End
    719 ------------------------------------------------------------------
    720 
    721 /(((a\2)|(a*)\g<-1>))*a?/
    722 ------------------------------------------------------------------
    723   0  83 Bra
    724   5     Brazero
    725   6  70 SCBra 1
    726  13  58 Once
    727  18  24 CBra 2
    728  25  12 CBra 3
    729  32     a
    730  34     \2
    731  37  12 Ket
    732  42  24 Alt
    733  47   9 CBra 4
    734  54     a*
    735  56   9 Ket
    736  61  47 Recurse
    737  66  48 Ket
    738  71  58 Ket
    739  76  70 KetRmax
    740  81     a?+
    741  83  83 Ket
    742  88     End
    743 ------------------------------------------------------------------
    744 
    745 /((?+1)(\1))/
    746 ------------------------------------------------------------------
    747   0  47 Bra
    748   5  37 Once
    749  10  27 CBra 1
    750  17  22 Recurse
    751  22  10 CBra 2
    752  29     \1
    753  32  10 Ket
    754  37  27 Ket
    755  42  37 Ket
    756  47  47 Ket
    757  52     End
    758 ------------------------------------------------------------------
    759 
    760 "(?1)(?#?'){2}(a)"
    761 ------------------------------------------------------------------
    762   0  49 Bra
    763   5  10 Once
    764  10  35 Recurse
    765  15  10 Ket
    766  20  10 Once
    767  25  35 Recurse
    768  30  10 Ket
    769  35   9 CBra 1
    770  42     a
    771  44   9 Ket
    772  49  49 Ket
    773  54     End
    774 ------------------------------------------------------------------
    775 
    776 /.((?2)(?R)|\1|$)()/
    777 ------------------------------------------------------------------
    778   0  64 Bra
    779   5     Any
    780   6  41 Once
    781  11  17 CBra 1
    782  18  52 Recurse
    783  23   0 Recurse
    784  28   8 Alt
    785  33     \1
    786  36   6 Alt
    787  41     $
    788  42  31 Ket
    789  47  41 Ket
    790  52   7 CBra 2
    791  59   7 Ket
    792  64  64 Ket
    793  69     End
    794 ------------------------------------------------------------------
    795 
    796 /.((?3)(?R)()(?2)|\1|$)()/
    797 ------------------------------------------------------------------
    798   0  81 Bra
    799   5     Any
    800   6  58 Once
    801  11  34 CBra 1
    802  18  69 Recurse
    803  23   0 Recurse
    804  28   7 CBra 2
    805  35   7 Ket
    806  40  28 Recurse
    807  45   8 Alt
    808  50     \1
    809  53   6 Alt
    810  58     $
    811  59  48 Ket
    812  64  58 Ket
    813  69   7 CBra 3
    814  76   7 Ket
    815  81  81 Ket
    816  86     End
    817 ------------------------------------------------------------------
    818 
    819 /(?1)()((((((\1++))\x85)+)|))/
    820 ------------------------------------------------------------------
    821   0 115 Bra
    822   5  10 Recurse
    823  10   7 CBra 1
    824  17   7 Ket
    825  22  88 CBra 2
    826  29  71 CBra 3
    827  36  59 CBra 4
    828  43  47 CBra 5
    829  50  33 CBra 6
    830  57  21 CBra 7
    831  64   9 Once
    832  69     \1+
    833  73   9 Ket
    834  78  21 Ket
    835  83  33 Ket
    836  88     \x{85}
    837  90  47 KetRmax
    838  95  59 Ket
    839 100   5 Alt
    840 105  76 Ket
    841 110  88 Ket
    842 115 115 Ket
    843 120     End
    844 ------------------------------------------------------------------
    845 
    846 # Check the absolute limit on nesting (?| etc. This varies with code unit
    847 # width because the workspace is a different number of bytes. It will fail
    848 # with link size 2 in 8-bit and 16-bit but not in 32-bit.
    849 
    850 /(?|(?|(?J:(?|(?x:(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|
    851 )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    852 /parens_nest_limit=1000,-fullbincode
    853 
    854 # Use "expand" to create some very long patterns with nested parentheses, in
    855 # order to test workspace overflow. Again, this varies with code unit width,
    856 # and even with it fails in two modes, the error offset differs. It also varies
    857 # with link size - hence multiple tests with different values.
    858 
    859 /(?'ABC'\[[bar](]{105}*THEN:\[A]{255}\[)]{106}/expand,-fullbincode
    860 
    861 /(?'ABC'\[[bar](]{106}*THEN:\[A]{255}\[)]{107}/expand,-fullbincode
    862 
    863 /(?'ABC'\[[bar](]{159}*THEN:\[A]{255}\[)]{160}/expand,-fullbincode
    864 
    865 /(?'ABC'\[[bar](]{199}*THEN:\[A]{255}\[)]{200}/expand,-fullbincode
    866 
    867 /(?'ABC'\[[bar](]{299}*THEN:\[A]{255}\[)]{300}/expand,-fullbincode
    868 Failed: error 186 at offset 1224: regular expression is too complicated
    869 
    870 /(?(1)(?1)){8,}+()/debug
    871 ------------------------------------------------------------------
    872   0 181 Bra
    873   5 159 Once
    874  10  13 Cond
    875  15   1 Cond ref
    876  18 169 Recurse
    877  23  13 Ket
    878  28  13 Cond
    879  33   1 Cond ref
    880  36 169 Recurse
    881  41  13 Ket
    882  46  13 Cond
    883  51   1 Cond ref
    884  54 169 Recurse
    885  59  13 Ket
    886  64  13 Cond
    887  69   1 Cond ref
    888  72 169 Recurse
    889  77  13 Ket
    890  82  13 Cond
    891  87   1 Cond ref
    892  90 169 Recurse
    893  95  13 Ket
    894 100  13 Cond
    895 105   1 Cond ref
    896 108 169 Recurse
    897 113  13 Ket
    898 118  13 Cond
    899 123   1 Cond ref
    900 126 169 Recurse
    901 131  13 Ket
    902 136  23 SBraPos
    903 141  13 SCond
    904 146   1 Cond ref
    905 149 169 Recurse
    906 154  13 Ket
    907 159  23 KetRpos
    908 164 159 Ket
    909 169   7 CBra 1
    910 176   7 Ket
    911 181 181 Ket
    912 186     End
    913 ------------------------------------------------------------------
    914 Capturing subpattern count = 1
    915 Max back reference = 1
    916 May match empty string
    917 Subject length lower bound = 0
    918     abcd
    919  0: 
    920  1: 
    921 
    922 /(?(1)|a(?1)b){2,}+()/debug
    923 ------------------------------------------------------------------
    924   0  91 Bra
    925   5  69 Once
    926  10   8 Cond
    927  15   1 Cond ref
    928  18  14 Alt
    929  23     a
    930  25  79 Recurse
    931  30     b
    932  32  22 Ket
    933  37  32 SBraPos
    934  42   8 SCond
    935  47   1 Cond ref
    936  50  14 Alt
    937  55     a
    938  57  79 Recurse
    939  62     b
    940  64  22 Ket
    941  69  32 KetRpos
    942  74  69 Ket
    943  79   7 CBra 1
    944  86   7 Ket
    945  91  91 Ket
    946  96     End
    947 ------------------------------------------------------------------
    948 Capturing subpattern count = 1
    949 Max back reference = 1
    950 May match empty string
    951 Subject length lower bound = 0
    952     abcde
    953 No match
    954 
    955 /((?1)(?2)(?3)(?4)(?5)(?6)(?7)(?8)(?9)(?9)(?8)(?7)(?6)(?5)(?4)(?3)(?2)(?1)(?0)){2,}()()()()()()()()()/debug
    956 ------------------------------------------------------------------
    957   0 327 Bra
    958   5 102 CBra 1
    959  12   5 Recurse
    960  17 219 Recurse
    961  22 231 Recurse
    962  27 243 Recurse
    963  32 255 Recurse
    964  37 267 Recurse
    965  42 279 Recurse
    966  47 291 Recurse
    967  52 303 Recurse
    968  57 303 Recurse
    969  62 291 Recurse
    970  67 279 Recurse
    971  72 267 Recurse
    972  77 255 Recurse
    973  82 243 Recurse
    974  87 231 Recurse
    975  92 219 Recurse
    976  97   5 Recurse
    977 102   0 Recurse
    978 107 102 Ket
    979 112 102 SCBra 1
    980 119   5 Recurse
    981 124 219 Recurse
    982 129 231 Recurse
    983 134 243 Recurse
    984 139 255 Recurse
    985 144 267 Recurse
    986 149 279 Recurse
    987 154 291 Recurse
    988 159 303 Recurse
    989 164 303 Recurse
    990 169 291 Recurse
    991 174 279 Recurse
    992 179 267 Recurse
    993 184 255 Recurse
    994 189 243 Recurse
    995 194 231 Recurse
    996 199 219 Recurse
    997 204   5 Recurse
    998 209   0 Recurse
    999 214 102 KetRmax
   1000 219   7 CBra 2
   1001 226   7 Ket
   1002 231   7 CBra 3
   1003 238   7 Ket
   1004 243   7 CBra 4
   1005 250   7 Ket
   1006 255   7 CBra 5
   1007 262   7 Ket
   1008 267   7 CBra 6
   1009 274   7 Ket
   1010 279   7 CBra 7
   1011 286   7 Ket
   1012 291   7 CBra 8
   1013 298   7 Ket
   1014 303   7 CBra 9
   1015 310   7 Ket
   1016 315   7 CBra 10
   1017 322   7 Ket
   1018 327 327 Ket
   1019 332     End
   1020 ------------------------------------------------------------------
   1021 Capturing subpattern count = 10
   1022 May match empty string
   1023 Subject length lower bound = 0
   1024 
   1025 /([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/
   1026 Failed: error 114 at offset 509: missing closing parenthesis
   1027 
   1028 /([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/-fullbincode
   1029 
   1030 # End of testinput8
   1031