# 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): 32 ------------------------------------------------------------------ 0 12 Bra 3 6 CBra 1 7 /i b 9 6 Ket 12 12 Ket 15 End ------------------------------------------------------------------ /(?s)(.*X|^B)/ Memory allocation (code space): 48 ------------------------------------------------------------------ 0 20 Bra 3 8 CBra 1 7 AllAny* 9 X 11 6 Alt 14 ^ 15 B 17 14 Ket 20 20 Ket 23 End ------------------------------------------------------------------ /(?s:.*X|^B)/ Memory allocation (code space): 46 ------------------------------------------------------------------ 0 19 Bra 3 7 Bra 6 AllAny* 8 X 10 6 Alt 13 ^ 14 B 16 13 Ket 19 19 Ket 22 End ------------------------------------------------------------------ /^[[:alnum:]]/ Memory allocation (code space): 50 ------------------------------------------------------------------ 0 21 Bra 3 ^ 4 [0-9A-Za-z] 21 21 Ket 24 End ------------------------------------------------------------------ /#/Ix Memory allocation (code space): 14 ------------------------------------------------------------------ 0 3 Bra 3 3 Ket 6 End ------------------------------------------------------------------ Capturing subpattern count = 0 May match empty string Options: extended Subject length lower bound = 0 /a#/Ix Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 a 5 5 Ket 8 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: extended First code unit = 'a' Subject length lower bound = 1 /x?+/ Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 x?+ 5 5 Ket 8 End ------------------------------------------------------------------ /x++/ Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 x++ 5 5 Ket 8 End ------------------------------------------------------------------ /x{1,3}+/ Memory allocation (code space): 24 ------------------------------------------------------------------ 0 8 Bra 3 x 5 x{0,2}+ 8 8 Ket 11 End ------------------------------------------------------------------ /(x)*+/ Memory allocation (code space): 34 ------------------------------------------------------------------ 0 13 Bra 3 Braposzero 4 6 CBraPos 1 8 x 10 6 KetRpos 13 13 Ket 16 End ------------------------------------------------------------------ /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ Memory allocation (code space): 166 ------------------------------------------------------------------ 0 79 Bra 3 ^ 4 72 CBra 1 8 6 CBra 2 12 a+ 14 6 Ket 17 22 CBra 3 21 [ab]+? 39 22 Ket 42 22 CBra 4 46 [bc]+ 64 22 Ket 67 6 CBra 5 71 \w*+ 73 6 Ket 76 72 Ket 79 79 Ket 82 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): 1652 ------------------------------------------------------------------ 0 822 Bra 3 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 821 \b 822 822 Ket 825 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): 1632 ------------------------------------------------------------------ 0 812 Bra 3 $<.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 811 \b 812 812 Ket 815 End ------------------------------------------------------------------ /(a(?1)b)/ Memory allocation (code space): 42 ------------------------------------------------------------------ 0 17 Bra 3 11 CBra 1 7 a 9 3 Recurse 12 b 14 11 Ket 17 17 Ket 20 End ------------------------------------------------------------------ /(a(?1)+b)/ Memory allocation (code space): 54 ------------------------------------------------------------------ 0 23 Bra 3 17 CBra 1 7 a 9 6 SBra 12 3 Recurse 15 6 KetRmax 18 b 20 17 Ket 23 23 Ket 26 End ------------------------------------------------------------------ /a(?Pb|c)d(?Pe)/ Memory allocation (code space): 68 ------------------------------------------------------------------ 0 30 Bra 3 a 5 6 CBra 1 9 b 11 5 Alt 14 c 16 11 Ket 19 d 21 6 CBra 2 25 e 27 6 Ket 30 30 Ket 33 End ------------------------------------------------------------------ /(?:a(?Pc(?Pd)))(?Pa)/ Memory allocation (code space): 84 ------------------------------------------------------------------ 0 38 Bra 3 23 Bra 6 a 8 15 CBra 1 12 c 14 6 CBra 2 18 d 20 6 Ket 23 15 Ket 26 23 Ket 29 6 CBra 3 33 a 35 6 Ket 38 38 Ket 41 End ------------------------------------------------------------------ /(?Pa)...(?P=a)bbb(?P>a)d/ Memory allocation (code space): 64 ------------------------------------------------------------------ 0 28 Bra 3 6 CBra 1 7 a 9 6 Ket 12 Any 13 Any 14 Any 15 \1 17 bbb 23 3 Recurse 26 d 28 28 Ket 31 End ------------------------------------------------------------------ /abc(?C255)de(?C)f/ Memory allocation (code space): 62 ------------------------------------------------------------------ 0 27 Bra 3 abc 9 Callout 255 10 1 15 de 19 Callout 0 16 1 25 f 27 27 Ket 30 End ------------------------------------------------------------------ /abcde/auto_callout Memory allocation (code space): 106 ------------------------------------------------------------------ 0 49 Bra 3 Callout 255 0 1 9 a 11 Callout 255 1 1 17 b 19 Callout 255 2 1 25 c 27 Callout 255 3 1 33 d 35 Callout 255 4 1 41 e 43 Callout 255 5 0 49 49 Ket 52 End ------------------------------------------------------------------ /\x{100}/utf Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{100} 5 5 Ket 8 End ------------------------------------------------------------------ /\x{1000}/utf Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{1000} 5 5 Ket 8 End ------------------------------------------------------------------ /\x{10000}/utf Memory allocation (code space): 20 ------------------------------------------------------------------ 0 6 Bra 3 \x{10000} 6 6 Ket 9 End ------------------------------------------------------------------ /\x{100000}/utf Memory allocation (code space): 20 ------------------------------------------------------------------ 0 6 Bra 3 \x{100000} 6 6 Ket 9 End ------------------------------------------------------------------ /\x{10ffff}/utf Memory allocation (code space): 20 ------------------------------------------------------------------ 0 6 Bra 3 \x{10ffff} 6 6 Ket 9 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): 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{ff} 5 5 Ket 8 End ------------------------------------------------------------------ /[\x{100}]/utf Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{100} 5 5 Ket 8 End ------------------------------------------------------------------ /\x80/utf Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{80} 5 5 Ket 8 End ------------------------------------------------------------------ /\xff/utf Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{ff} 5 5 Ket 8 End ------------------------------------------------------------------ /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf Memory allocation (code space): 30 ------------------------------------------------------------------ 0 11 Bra 3 A\x{2262}\x{391}. 11 11 Ket 14 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): 26 ------------------------------------------------------------------ 0 9 Bra 3 \x{d55c}\x{ad6d}\x{c5b4} 9 9 Ket 12 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First code unit = \x{d55c} Last code unit = \x{c5b4} Subject length lower bound = 3 /\x{65e5}\x{672c}\x{8a9e}/I,utf Memory allocation (code space): 26 ------------------------------------------------------------------ 0 9 Bra 3 \x{65e5}\x{672c}\x{8a9e} 9 9 Ket 12 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf First code unit = \x{65e5} Last code unit = \x{8a9e} Subject length lower bound = 3 /[\x{100}]/utf Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{100} 5 5 Ket 8 End ------------------------------------------------------------------ /[Z\x{100}]/utf Memory allocation (code space): 60 ------------------------------------------------------------------ 0 26 Bra 3 [Z\x{100}] 26 26 Ket 29 End ------------------------------------------------------------------ /^[\x{100}\E-\Q\E\x{150}]/utf Memory allocation (code space): 32 ------------------------------------------------------------------ 0 12 Bra 3 ^ 4 [\x{100}-\x{150}] 12 12 Ket 15 End ------------------------------------------------------------------ /^[\QĀ\E-\QŐ\E]/utf Memory allocation (code space): 32 ------------------------------------------------------------------ 0 12 Bra 3 ^ 4 [\x{100}-\x{150}] 12 12 Ket 15 End ------------------------------------------------------------------ /^[\QĀ\E-\QŐ\E/utf Failed: error 106 at offset 13: missing terminating ] for character class /[\p{L}]/ Memory allocation (code space): 30 ------------------------------------------------------------------ 0 11 Bra 3 [\p{L}] 11 11 Ket 14 End ------------------------------------------------------------------ /[\p{^L}]/ Memory allocation (code space): 30 ------------------------------------------------------------------ 0 11 Bra 3 [\P{L}] 11 11 Ket 14 End ------------------------------------------------------------------ /[\P{L}]/ Memory allocation (code space): 30 ------------------------------------------------------------------ 0 11 Bra 3 [\P{L}] 11 11 Ket 14 End ------------------------------------------------------------------ /[\P{^L}]/ Memory allocation (code space): 30 ------------------------------------------------------------------ 0 11 Bra 3 [\p{L}] 11 11 Ket 14 End ------------------------------------------------------------------ /[abc\p{L}\x{0660}]/utf Memory allocation (code space): 66 ------------------------------------------------------------------ 0 29 Bra 3 [a-c\p{L}\x{660}] 29 29 Ket 32 End ------------------------------------------------------------------ /[\p{Nd}]/utf Memory allocation (code space): 30 ------------------------------------------------------------------ 0 11 Bra 3 [\p{Nd}] 11 11 Ket 14 End ------------------------------------------------------------------ /[\p{Nd}+-]+/utf Memory allocation (code space): 64 ------------------------------------------------------------------ 0 28 Bra 3 [+\-\p{Nd}]++ 28 28 Ket 31 End ------------------------------------------------------------------ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf Memory allocation (code space): 36 ------------------------------------------------------------------ 0 14 Bra 3 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0} 14 14 Ket 17 End ------------------------------------------------------------------ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf Memory allocation (code space): 36 ------------------------------------------------------------------ 0 14 Bra 3 A\x{391}\x{10427}\x{ff3a}\x{1fb0} 14 14 Ket 17 End ------------------------------------------------------------------ /[\x{105}-\x{109}]/i,utf Memory allocation (code space): 30 ------------------------------------------------------------------ 0 11 Bra 3 [\x{104}-\x{109}] 11 11 Ket 14 End ------------------------------------------------------------------ /( ( (?(1)0|) )* )/x Memory allocation (code space): 70 ------------------------------------------------------------------ 0 31 Bra 3 25 CBra 1 7 Brazero 8 17 SCBra 2 12 7 Cond 15 1 Cond ref 17 0 19 3 Alt 22 10 Ket 25 17 KetRmax 28 25 Ket 31 31 Ket 34 End ------------------------------------------------------------------ /( (?(1)0|)* )/x Memory allocation (code space): 56 ------------------------------------------------------------------ 0 24 Bra 3 18 CBra 1 7 Brazero 8 7 SCond 11 1 Cond ref 13 0 15 3 Alt 18 10 KetRmax 21 18 Ket 24 24 Ket 27 End ------------------------------------------------------------------ /[a]/ Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 a 5 5 Ket 8 End ------------------------------------------------------------------ /[a]/utf Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 a 5 5 Ket 8 End ------------------------------------------------------------------ /[\xaa]/ Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{aa} 5 5 Ket 8 End ------------------------------------------------------------------ /[\xaa]/utf Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{aa} 5 5 Ket 8 End ------------------------------------------------------------------ /[^a]/ Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 [^a] 5 5 Ket 8 End ------------------------------------------------------------------ /[^a]/utf Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 [^a] 5 5 Ket 8 End ------------------------------------------------------------------ /[^\xaa]/ Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 [^\x{aa}] 5 5 Ket 8 End ------------------------------------------------------------------ /[^\xaa]/utf Memory allocation (code space): 18 ------------------------------------------------------------------ 0 5 Bra 3 [^\x{aa}] 5 5 Ket 8 End ------------------------------------------------------------------ #pattern -memory /[^\d]/utf,ucp ------------------------------------------------------------------ 0 11 Bra 3 [^\p{Nd}] 11 11 Ket 14 End ------------------------------------------------------------------ /[[:^alpha:][:^cntrl:]]+/utf,ucp ------------------------------------------------------------------ 0 15 Bra 3 [\P{L}\P{Cc}]++ 15 15 Ket 18 End ------------------------------------------------------------------ /[[:^cntrl:][:^alpha:]]+/utf,ucp ------------------------------------------------------------------ 0 15 Bra 3 [\P{Cc}\P{L}]++ 15 15 Ket 18 End ------------------------------------------------------------------ /[[:alpha:]]+/utf,ucp ------------------------------------------------------------------ 0 12 Bra 3 [\p{L}]++ 12 12 Ket 15 End ------------------------------------------------------------------ /[[:^alpha:]\S]+/utf,ucp ------------------------------------------------------------------ 0 15 Bra 3 [\P{L}\P{Xsp}]++ 15 15 Ket 18 End ------------------------------------------------------------------ /abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/ ------------------------------------------------------------------ 0 70 Bra 3 abc 9 6 CBra 1 13 d 15 5 Alt 18 e 20 11 Ket 23 *THEN 24 x 26 13 CBra 2 30 123 36 *THEN 37 4 39 28 Alt 42 567 48 6 CBra 3 52 b 54 5 Alt 57 q 59 11 Ket 62 *THEN 63 xx 67 41 Ket 70 70 Ket 73 End ------------------------------------------------------------------ /(((a\2)|(a*)\g<-1>))*a?/ ------------------------------------------------------------------ 0 52 Bra 3 Brazero 4 43 SCBra 1 8 36 Once 11 15 CBra 2 15 8 CBra 3 19 a 21 \2 23 8 Ket 26 15 Alt 29 6 CBra 4 33 a* 35 6 Ket 38 29 Recurse 41 30 Ket 44 36 Ket 47 43 KetRmax 50 a?+ 52 52 Ket 55 End ------------------------------------------------------------------ /((?+1)(\1))/ ------------------------------------------------------------------ 0 28 Bra 3 22 Once 6 16 CBra 1 10 13 Recurse 13 6 CBra 2 17 \1 19 6 Ket 22 16 Ket 25 22 Ket 28 28 Ket 31 End ------------------------------------------------------------------ "(?1)(?#?'){2}(a)" ------------------------------------------------------------------ 0 18 Bra 3 9 Recurse 6 9 Recurse 9 6 CBra 1 13 a 15 6 Ket 18 18 Ket 21 End ------------------------------------------------------------------ /.((?2)(?R)|\1|$)()/ ------------------------------------------------------------------ 0 39 Bra 3 Any 4 25 Once 7 10 CBra 1 11 32 Recurse 14 0 Recurse 17 5 Alt 20 \1 22 4 Alt 25 $ 26 19 Ket 29 25 Ket 32 4 CBra 2 36 4 Ket 39 39 Ket 42 End ------------------------------------------------------------------ /.((?3)(?R)()(?2)|\1|$)()/ ------------------------------------------------------------------ 0 49 Bra 3 Any 4 35 Once 7 20 CBra 1 11 42 Recurse 14 0 Recurse 17 4 CBra 2 21 4 Ket 24 17 Recurse 27 5 Alt 30 \1 32 4 Alt 35 $ 36 29 Ket 39 35 Ket 42 4 CBra 3 46 4 Ket 49 49 Ket 52 End ------------------------------------------------------------------ /(?1)()((((((\1++))\x85)+)|))/ ------------------------------------------------------------------ 0 69 Bra 3 6 Recurse 6 4 CBra 1 10 4 Ket 13 53 CBra 2 17 43 CBra 3 21 36 CBra 4 25 29 CBra 5 29 20 CBra 6 33 13 CBra 7 37 6 Once 40 \1+ 43 6 Ket 46 13 Ket 49 20 Ket 52 \x{85} 54 29 KetRmax 57 36 Ket 60 3 Alt 63 46 Ket 66 53 Ket 69 69 Ket 72 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 110 Bra 3 97 Once 6 8 Cond 9 1 Cond ref 11 103 Recurse 14 8 Ket 17 8 Cond 20 1 Cond ref 22 103 Recurse 25 8 Ket 28 8 Cond 31 1 Cond ref 33 103 Recurse 36 8 Ket 39 8 Cond 42 1 Cond ref 44 103 Recurse 47 8 Ket 50 8 Cond 53 1 Cond ref 55 103 Recurse 58 8 Ket 61 8 Cond 64 1 Cond ref 66 103 Recurse 69 8 Ket 72 8 Cond 75 1 Cond ref 77 103 Recurse 80 8 Ket 83 14 SBraPos 86 8 SCond 89 1 Cond ref 91 103 Recurse 94 8 Ket 97 14 KetRpos 100 97 Ket 103 4 CBra 1 107 4 Ket 110 110 Ket 113 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 58 Bra 3 45 Once 6 5 Cond 9 1 Cond ref 11 10 Alt 14 a 16 51 Recurse 19 b 21 15 Ket 24 21 SBraPos 27 5 SCond 30 1 Cond ref 32 10 Alt 35 a 37 51 Recurse 40 b 42 15 Ket 45 21 KetRpos 48 45 Ket 51 4 CBra 1 55 4 Ket 58 58 Ket 61 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 194 Bra 3 61 CBra 1 7 3 Recurse 10 131 Recurse 13 138 Recurse 16 145 Recurse 19 152 Recurse 22 159 Recurse 25 166 Recurse 28 173 Recurse 31 180 Recurse 34 180 Recurse 37 173 Recurse 40 166 Recurse 43 159 Recurse 46 152 Recurse 49 145 Recurse 52 138 Recurse 55 131 Recurse 58 3 Recurse 61 0 Recurse 64 61 Ket 67 61 SCBra 1 71 3 Recurse 74 131 Recurse 77 138 Recurse 80 145 Recurse 83 152 Recurse 86 159 Recurse 89 166 Recurse 92 173 Recurse 95 180 Recurse 98 180 Recurse 101 173 Recurse 104 166 Recurse 107 159 Recurse 110 152 Recurse 113 145 Recurse 116 138 Recurse 119 131 Recurse 122 3 Recurse 125 0 Recurse 128 61 KetRmax 131 4 CBra 2 135 4 Ket 138 4 CBra 3 142 4 Ket 145 4 CBra 4 149 4 Ket 152 4 CBra 5 156 4 Ket 159 4 CBra 6 163 4 Ket 166 4 CBra 7 170 4 Ket 173 4 CBra 8 177 4 Ket 180 4 CBra 9 184 4 Ket 187 4 CBra 10 191 4 Ket 194 194 Ket 197 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