# There are two sorts of patterns in this test. A number of them are # representative patterns whose lengths and offsets are checked. This is just a # doublecheck test to ensure the sizes don't go horribly wrong when something # is changed. The operation of these patterns is checked in other tests. # # This file also contains tests whose output varies with code unit size and/or # link size. Unicode support is required for these tests. There are separate # output files for each code unit size and link size. #pattern fullbincode,memory /((?i)b)/ Memory allocation (code space): 25 ------------------------------------------------------------------ 0 19 Bra 5 9 CBra 1 12 /i b 14 9 Ket 19 19 Ket 24 End ------------------------------------------------------------------ /(?s)(.*X|^B)/ Memory allocation (code space): 35 ------------------------------------------------------------------ 0 29 Bra 5 11 CBra 1 12 AllAny* 14 X 16 8 Alt 21 ^ 22 B 24 19 Ket 29 29 Ket 34 End ------------------------------------------------------------------ /(?s:.*X|^B)/ Memory allocation (code space): 33 ------------------------------------------------------------------ 0 27 Bra 5 9 Bra 10 AllAny* 12 X 14 8 Alt 19 ^ 20 B 22 17 Ket 27 27 Ket 32 End ------------------------------------------------------------------ /^[[:alnum:]]/ Memory allocation (code space): 45 ------------------------------------------------------------------ 0 39 Bra 5 ^ 6 [0-9A-Za-z] 39 39 Ket 44 End ------------------------------------------------------------------ /#/Ix Memory allocation (code space): 11 ------------------------------------------------------------------ 0 5 Bra 5 5 Ket 10 End ------------------------------------------------------------------ Capturing subpattern count = 0 May match empty string Options: extended Subject length lower bound = 0 /a#/Ix Memory allocation (code space): 13 ------------------------------------------------------------------ 0 7 Bra 5 a 7 7 Ket 12 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: extended First code unit = 'a' Subject length lower bound = 1 /x?+/ Memory allocation (code space): 13 ------------------------------------------------------------------ 0 7 Bra 5 x?+ 7 7 Ket 12 End ------------------------------------------------------------------ /x++/ Memory allocation (code space): 13 ------------------------------------------------------------------ 0 7 Bra 5 x++ 7 7 Ket 12 End ------------------------------------------------------------------ /x{1,3}+/ Memory allocation (code space): 17 ------------------------------------------------------------------ 0 11 Bra 5 x 7 x{0,2}+ 11 11 Ket 16 End ------------------------------------------------------------------ /(x)*+/ Memory allocation (code space): 26 ------------------------------------------------------------------ 0 20 Bra 5 Braposzero 6 9 CBraPos 1 13 x 15 9 KetRpos 20 20 Ket 25 End ------------------------------------------------------------------ /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ Memory allocation (code space): 144 ------------------------------------------------------------------ 0 138 Bra 5 ^ 6 127 CBra 1 13 9 CBra 2 20 a+ 22 9 Ket 27 41 CBra 3 34 [ab]+? 68 41 Ket 73 41 CBra 4 80 [bc]+ 114 41 Ket 119 9 CBra 5 126 \w*+ 128 9 Ket 133 127 Ket 138 138 Ket 143 End ------------------------------------------------------------------ "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\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" Memory allocation (code space): 830 ------------------------------------------------------------------ 0 824 Bra 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[KDDqmj;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 823 \b 824 824 Ket 829 End ------------------------------------------------------------------ "\$\<\.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\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" Memory allocation (code space): 820 ------------------------------------------------------------------ 0 814 Bra 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[KDDqmj;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 813 \b 814 814 Ket 819 End ------------------------------------------------------------------ /(a(?1)b)/ Memory allocation (code space): 32 ------------------------------------------------------------------ 0 26 Bra 5 16 CBra 1 12 a 14 5 Recurse 19 b 21 16 Ket 26 26 Ket 31 End ------------------------------------------------------------------ /(a(?1)+b)/ Memory allocation (code space): 42 ------------------------------------------------------------------ 0 36 Bra 5 26 CBra 1 12 a 14 10 SBra 19 5 Recurse 24 10 KetRmax 29 b 31 26 Ket 36 36 Ket 41 End ------------------------------------------------------------------ /a(?Pb|c)d(?Pe)/ Memory allocation (code space): 50 ------------------------------------------------------------------ 0 44 Bra 5 a 7 9 CBra 1 14 b 16 7 Alt 21 c 23 16 Ket 28 d 30 9 CBra 2 37 e 39 9 Ket 44 44 Ket 49 End ------------------------------------------------------------------ /(?:a(?Pc(?Pd)))(?Pa)/ Memory allocation (code space): 65 ------------------------------------------------------------------ 0 59 Bra 5 35 Bra 10 a 12 23 CBra 1 19 c 21 9 CBra 2 28 d 30 9 Ket 35 23 Ket 40 35 Ket 45 9 CBra 3 52 a 54 9 Ket 59 59 Ket 64 End ------------------------------------------------------------------ /(?Pa)...(?P=a)bbb(?P>a)d/ Memory allocation (code space): 44 ------------------------------------------------------------------ 0 38 Bra 5 9 CBra 1 12 a 14 9 Ket 19 Any 20 Any 21 Any 22 \1 25 bbb 31 5 Recurse 36 d 38 38 Ket 43 End ------------------------------------------------------------------ /abc(?C255)de(?C)f/ Memory allocation (code space): 43 ------------------------------------------------------------------ 0 37 Bra 5 abc 11 Callout 255 10 1 21 de 25 Callout 0 16 1 35 f 37 37 Ket 42 End ------------------------------------------------------------------ /abcde/auto_callout Memory allocation (code space): 81 ------------------------------------------------------------------ 0 75 Bra 5 Callout 255 0 1 15 a 17 Callout 255 1 1 27 b 29 Callout 255 2 1 39 c 41 Callout 255 3 1 51 d 53 Callout 255 4 1 63 e 65 Callout 255 5 0 75 75 Ket 80 End ------------------------------------------------------------------ /\x{100}/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 8 Bra 5 \x{100} 8 8 Ket 13 End ------------------------------------------------------------------ /\x{1000}/utf Memory allocation (code space): 15 ------------------------------------------------------------------ 0 9 Bra 5 \x{1000} 9 9 Ket 14 End ------------------------------------------------------------------ /\x{10000}/utf Memory allocation (code space): 16 ------------------------------------------------------------------ 0 10 Bra 5 \x{10000} 10 10 Ket 15 End ------------------------------------------------------------------ /\x{100000}/utf Memory allocation (code space): 16 ------------------------------------------------------------------ 0 10 Bra 5 \x{100000} 10 10 Ket 15 End ------------------------------------------------------------------ /\x{10ffff}/utf Memory allocation (code space): 16 ------------------------------------------------------------------ 0 10 Bra 5 \x{10ffff} 10 10 Ket 15 End ------------------------------------------------------------------ /\x{110000}/utf Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large /[\x{ff}]/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 8 Bra 5 \x{ff} 8 8 Ket 13 End ------------------------------------------------------------------ /[\x{100}]/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 8 Bra 5 \x{100} 8 8 Ket 13 End ------------------------------------------------------------------ /\x80/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 8 Bra 5 \x{80} 8 8 Ket 13 End ------------------------------------------------------------------ /\xff/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 8 Bra 5 \x{ff} 8 8 Ket 13 End ------------------------------------------------------------------ /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf Memory allocation (code space): 22 ------------------------------------------------------------------ 0 16 Bra 5 A\x{2262}\x{391}. 16 16 Ket 21 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First code unit = 'A' Last code unit = '.' Subject length lower bound = 4 /\x{D55c}\x{ad6d}\x{C5B4}/I,utf Memory allocation (code space): 23 ------------------------------------------------------------------ 0 17 Bra 5 \x{d55c}\x{ad6d}\x{c5b4} 17 17 Ket 22 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First code unit = \xed Last code unit = \xb4 Subject length lower bound = 3 /\x{65e5}\x{672c}\x{8a9e}/I,utf Memory allocation (code space): 23 ------------------------------------------------------------------ 0 17 Bra 5 \x{65e5}\x{672c}\x{8a9e} 17 17 Ket 22 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First code unit = \xe6 Last code unit = \x9e Subject length lower bound = 3 /[\x{100}]/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 8 Bra 5 \x{100} 8 8 Ket 13 End ------------------------------------------------------------------ /[Z\x{100}]/utf Memory allocation (code space): 53 ------------------------------------------------------------------ 0 47 Bra 5 [Z\x{100}] 47 47 Ket 52 End ------------------------------------------------------------------ /^[\x{100}\E-\Q\E\x{150}]/utf Memory allocation (code space): 24 ------------------------------------------------------------------ 0 18 Bra 5 ^ 6 [\x{100}-\x{150}] 18 18 Ket 23 End ------------------------------------------------------------------ /^[\QĀ\E-\QŐ\E]/utf Memory allocation (code space): 24 ------------------------------------------------------------------ 0 18 Bra 5 ^ 6 [\x{100}-\x{150}] 18 18 Ket 23 End ------------------------------------------------------------------ /^[\QĀ\E-\QŐ\E/utf Failed: error 106 at offset 15: missing terminating ] for character class /[\p{L}]/ Memory allocation (code space): 21 ------------------------------------------------------------------ 0 15 Bra 5 [\p{L}] 15 15 Ket 20 End ------------------------------------------------------------------ /[\p{^L}]/ Memory allocation (code space): 21 ------------------------------------------------------------------ 0 15 Bra 5 [\P{L}] 15 15 Ket 20 End ------------------------------------------------------------------ /[\P{L}]/ Memory allocation (code space): 21 ------------------------------------------------------------------ 0 15 Bra 5 [\P{L}] 15 15 Ket 20 End ------------------------------------------------------------------ /[\P{^L}]/ Memory allocation (code space): 21 ------------------------------------------------------------------ 0 15 Bra 5 [\p{L}] 15 15 Ket 20 End ------------------------------------------------------------------ /[abc\p{L}\x{0660}]/utf Memory allocation (code space): 56 ------------------------------------------------------------------ 0 50 Bra 5 [a-c\p{L}\x{660}] 50 50 Ket 55 End ------------------------------------------------------------------ /[\p{Nd}]/utf Memory allocation (code space): 21 ------------------------------------------------------------------ 0 15 Bra 5 [\p{Nd}] 15 15 Ket 20 End ------------------------------------------------------------------ /[\p{Nd}+-]+/utf Memory allocation (code space): 54 ------------------------------------------------------------------ 0 48 Bra 5 [+\-\p{Nd}]++ 48 48 Ket 53 End ------------------------------------------------------------------ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf Memory allocation (code space): 29 ------------------------------------------------------------------ 0 23 Bra 5 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0} 23 23 Ket 28 End ------------------------------------------------------------------ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf Memory allocation (code space): 29 ------------------------------------------------------------------ 0 23 Bra 5 A\x{391}\x{10427}\x{ff3a}\x{1fb0} 23 23 Ket 28 End ------------------------------------------------------------------ /[\x{105}-\x{109}]/i,utf Memory allocation (code space): 23 ------------------------------------------------------------------ 0 17 Bra 5 [\x{104}-\x{109}] 17 17 Ket 22 End ------------------------------------------------------------------ /( ( (?(1)0|) )* )/x Memory allocation (code space): 56 ------------------------------------------------------------------ 0 50 Bra 5 40 CBra 1 12 Brazero 13 27 SCBra 2 20 10 Cond 25 1 Cond ref 28 0 30 5 Alt 35 15 Ket 40 27 KetRmax 45 40 Ket 50 50 Ket 55 End ------------------------------------------------------------------ /( (?(1)0|)* )/x Memory allocation (code space): 44 ------------------------------------------------------------------ 0 38 Bra 5 28 CBra 1 12 Brazero 13 10 SCond 18 1 Cond ref 21 0 23 5 Alt 28 15 KetRmax 33 28 Ket 38 38 Ket 43 End ------------------------------------------------------------------ /[a]/ Memory allocation (code space): 13 ------------------------------------------------------------------ 0 7 Bra 5 a 7 7 Ket 12 End ------------------------------------------------------------------ /[a]/utf Memory allocation (code space): 13 ------------------------------------------------------------------ 0 7 Bra 5 a 7 7 Ket 12 End ------------------------------------------------------------------ /[\xaa]/ Memory allocation (code space): 13 ------------------------------------------------------------------ 0 7 Bra 5 \x{aa} 7 7 Ket 12 End ------------------------------------------------------------------ /[\xaa]/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 8 Bra 5 \x{aa} 8 8 Ket 13 End ------------------------------------------------------------------ /[^a]/ Memory allocation (code space): 13 ------------------------------------------------------------------ 0 7 Bra 5 [^a] 7 7 Ket 12 End ------------------------------------------------------------------ /[^a]/utf Memory allocation (code space): 13 ------------------------------------------------------------------ 0 7 Bra 5 [^a] 7 7 Ket 12 End ------------------------------------------------------------------ /[^\xaa]/ Memory allocation (code space): 13 ------------------------------------------------------------------ 0 7 Bra 5 [^\x{aa}] 7 7 Ket 12 End ------------------------------------------------------------------ /[^\xaa]/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 8 Bra 5 [^\x{aa}] 8 8 Ket 13 End ------------------------------------------------------------------ #pattern -memory /[^\d]/utf,ucp ------------------------------------------------------------------ 0 15 Bra 5 [^\p{Nd}] 15 15 Ket 20 End ------------------------------------------------------------------ /[[:^alpha:][:^cntrl:]]+/utf,ucp ------------------------------------------------------------------ 0 19 Bra 5 [\P{L}\P{Cc}]++ 19 19 Ket 24 End ------------------------------------------------------------------ /[[:^cntrl:][:^alpha:]]+/utf,ucp ------------------------------------------------------------------ 0 19 Bra 5 [\P{Cc}\P{L}]++ 19 19 Ket 24 End ------------------------------------------------------------------ /[[:alpha:]]+/utf,ucp ------------------------------------------------------------------ 0 16 Bra 5 [\p{L}]++ 16 16 Ket 21 End ------------------------------------------------------------------ /[[:^alpha:]\S]+/utf,ucp ------------------------------------------------------------------ 0 19 Bra 5 [\P{L}\P{Xsp}]++ 19 19 Ket 24 End ------------------------------------------------------------------ /abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/ ------------------------------------------------------------------ 0 93 Bra 5 abc 11 9 CBra 1 18 d 20 7 Alt 25 e 27 16 Ket 32 *THEN 33 x 35 16 CBra 2 42 123 48 *THEN 49 4 51 37 Alt 56 567 62 9 CBra 3 69 b 71 7 Alt 76 q 78 16 Ket 83 *THEN 84 xx 88 53 Ket 93 93 Ket 98 End ------------------------------------------------------------------ /(((a\2)|(a*)\g<-1>))*a?/ ------------------------------------------------------------------ 0 83 Bra 5 Brazero 6 70 SCBra 1 13 58 Once 18 24 CBra 2 25 12 CBra 3 32 a 34 \2 37 12 Ket 42 24 Alt 47 9 CBra 4 54 a* 56 9 Ket 61 47 Recurse 66 48 Ket 71 58 Ket 76 70 KetRmax 81 a?+ 83 83 Ket 88 End ------------------------------------------------------------------ /((?+1)(\1))/ ------------------------------------------------------------------ 0 47 Bra 5 37 Once 10 27 CBra 1 17 22 Recurse 22 10 CBra 2 29 \1 32 10 Ket 37 27 Ket 42 37 Ket 47 47 Ket 52 End ------------------------------------------------------------------ "(?1)(?#?'){2}(a)" ------------------------------------------------------------------ 0 29 Bra 5 15 Recurse 10 15 Recurse 15 9 CBra 1 22 a 24 9 Ket 29 29 Ket 34 End ------------------------------------------------------------------ /.((?2)(?R)|\1|$)()/ ------------------------------------------------------------------ 0 64 Bra 5 Any 6 41 Once 11 17 CBra 1 18 52 Recurse 23 0 Recurse 28 8 Alt 33 \1 36 6 Alt 41 $ 42 31 Ket 47 41 Ket 52 7 CBra 2 59 7 Ket 64 64 Ket 69 End ------------------------------------------------------------------ /.((?3)(?R)()(?2)|\1|$)()/ ------------------------------------------------------------------ 0 81 Bra 5 Any 6 58 Once 11 34 CBra 1 18 69 Recurse 23 0 Recurse 28 7 CBra 2 35 7 Ket 40 28 Recurse 45 8 Alt 50 \1 53 6 Alt 58 $ 59 48 Ket 64 58 Ket 69 7 CBra 3 76 7 Ket 81 81 Ket 86 End ------------------------------------------------------------------ /(?1)()((((((\1++))\x85)+)|))/ ------------------------------------------------------------------ 0 115 Bra 5 10 Recurse 10 7 CBra 1 17 7 Ket 22 88 CBra 2 29 71 CBra 3 36 59 CBra 4 43 47 CBra 5 50 33 CBra 6 57 21 CBra 7 64 9 Once 69 \1+ 73 9 Ket 78 21 Ket 83 33 Ket 88 \x{85} 90 47 KetRmax 95 59 Ket 100 5 Alt 105 76 Ket 110 88 Ket 115 115 Ket 120 End ------------------------------------------------------------------ # Check the absolute limit on nesting (?| etc. This varies with code unit # width because the workspace is a different number of bytes. It will fail # with link size 2 in 8-bit and 16-bit but not in 32-bit. /(?|(?|(?J:(?|(?x:(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?| ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) /parens_nest_limit=1000,-fullbincode # Use "expand" to create some very long patterns with nested parentheses, in # order to test workspace overflow. Again, this varies with code unit width, # and even when it fails in two modes, the error offset differs. It also varies # with link size - hence multiple tests with different values. /(?'ABC'\[[bar](]{792}*THEN:\[A]{255}\[)]{793}/expand,-fullbincode,parens_nest_limit=1000 /(?'ABC'\[[bar](]{793}*THEN:\[A]{255}\[)]{794}/expand,-fullbincode,parens_nest_limit=1000 /(?'ABC'\[[bar](]{1793}*THEN:\[A]{255}\[)]{1794}/expand,-fullbincode,parens_nest_limit=2000 Failed: error 186 at offset 12820: regular expression is too complicated /(?(1)(?1)){8,}+()/debug ------------------------------------------------------------------ 0 181 Bra 5 159 Once 10 13 Cond 15 1 Cond ref 18 169 Recurse 23 13 Ket 28 13 Cond 33 1 Cond ref 36 169 Recurse 41 13 Ket 46 13 Cond 51 1 Cond ref 54 169 Recurse 59 13 Ket 64 13 Cond 69 1 Cond ref 72 169 Recurse 77 13 Ket 82 13 Cond 87 1 Cond ref 90 169 Recurse 95 13 Ket 100 13 Cond 105 1 Cond ref 108 169 Recurse 113 13 Ket 118 13 Cond 123 1 Cond ref 126 169 Recurse 131 13 Ket 136 23 SBraPos 141 13 SCond 146 1 Cond ref 149 169 Recurse 154 13 Ket 159 23 KetRpos 164 159 Ket 169 7 CBra 1 176 7 Ket 181 181 Ket 186 End ------------------------------------------------------------------ Capturing subpattern count = 1 Max back reference = 1 May match empty string Subject length lower bound = 0 abcd 0: 1: /(?(1)|a(?1)b){2,}+()/debug ------------------------------------------------------------------ 0 91 Bra 5 69 Once 10 8 Cond 15 1 Cond ref 18 14 Alt 23 a 25 79 Recurse 30 b 32 22 Ket 37 32 SBraPos 42 8 SCond 47 1 Cond ref 50 14 Alt 55 a 57 79 Recurse 62 b 64 22 Ket 69 32 KetRpos 74 69 Ket 79 7 CBra 1 86 7 Ket 91 91 Ket 96 End ------------------------------------------------------------------ Capturing subpattern count = 1 Max back reference = 1 May match empty string Subject length lower bound = 0 abcde No match /((?1)(?2)(?3)(?4)(?5)(?6)(?7)(?8)(?9)(?9)(?8)(?7)(?6)(?5)(?4)(?3)(?2)(?1)(?0)){2,}()()()()()()()()()/debug ------------------------------------------------------------------ 0 327 Bra 5 102 CBra 1 12 5 Recurse 17 219 Recurse 22 231 Recurse 27 243 Recurse 32 255 Recurse 37 267 Recurse 42 279 Recurse 47 291 Recurse 52 303 Recurse 57 303 Recurse 62 291 Recurse 67 279 Recurse 72 267 Recurse 77 255 Recurse 82 243 Recurse 87 231 Recurse 92 219 Recurse 97 5 Recurse 102 0 Recurse 107 102 Ket 112 102 SCBra 1 119 5 Recurse 124 219 Recurse 129 231 Recurse 134 243 Recurse 139 255 Recurse 144 267 Recurse 149 279 Recurse 154 291 Recurse 159 303 Recurse 164 303 Recurse 169 291 Recurse 174 279 Recurse 179 267 Recurse 184 255 Recurse 189 243 Recurse 194 231 Recurse 199 219 Recurse 204 5 Recurse 209 0 Recurse 214 102 KetRmax 219 7 CBra 2 226 7 Ket 231 7 CBra 3 238 7 Ket 243 7 CBra 4 250 7 Ket 255 7 CBra 5 262 7 Ket 267 7 CBra 6 274 7 Ket 279 7 CBra 7 286 7 Ket 291 7 CBra 8 298 7 Ket 303 7 CBra 9 310 7 Ket 315 7 CBra 10 322 7 Ket 327 327 Ket 332 End ------------------------------------------------------------------ Capturing subpattern count = 10 May match empty string Subject length lower bound = 0 /([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)/ Failed: error 114 at offset 509: missing closing parenthesis /([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 # End of testinput8