# 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): 21 ------------------------------------------------------------------ 0 16 Bra 4 8 CBra 1 10 /i b 12 8 Ket 16 16 Ket 20 End ------------------------------------------------------------------ /(?s)(.*X|^B)/ Memory allocation (code space): 30 ------------------------------------------------------------------ 0 25 Bra 4 10 CBra 1 10 AllAny* 12 X 14 7 Alt 18 ^ 19 B 21 17 Ket 25 25 Ket 29 End ------------------------------------------------------------------ /(?s:.*X|^B)/ Memory allocation (code space): 28 ------------------------------------------------------------------ 0 23 Bra 4 8 Bra 8 AllAny* 10 X 12 7 Alt 16 ^ 17 B 19 15 Ket 23 23 Ket 27 End ------------------------------------------------------------------ /^[[:alnum:]]/ Memory allocation (code space): 43 ------------------------------------------------------------------ 0 38 Bra 4 ^ 5 [0-9A-Za-z] 38 38 Ket 42 End ------------------------------------------------------------------ /#/Ix Memory allocation (code space): 9 ------------------------------------------------------------------ 0 4 Bra 4 4 Ket 8 End ------------------------------------------------------------------ Capturing subpattern count = 0 May match empty string Options: extended Subject length lower bound = 0 /a#/Ix Memory allocation (code space): 11 ------------------------------------------------------------------ 0 6 Bra 4 a 6 6 Ket 10 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: extended First code unit = 'a' Subject length lower bound = 1 /x?+/ Memory allocation (code space): 11 ------------------------------------------------------------------ 0 6 Bra 4 x?+ 6 6 Ket 10 End ------------------------------------------------------------------ /x++/ Memory allocation (code space): 11 ------------------------------------------------------------------ 0 6 Bra 4 x++ 6 6 Ket 10 End ------------------------------------------------------------------ /x{1,3}+/ Memory allocation (code space): 15 ------------------------------------------------------------------ 0 10 Bra 4 x 6 x{0,2}+ 10 10 Ket 14 End ------------------------------------------------------------------ /(x)*+/ Memory allocation (code space): 22 ------------------------------------------------------------------ 0 17 Bra 4 Braposzero 5 8 CBraPos 1 11 x 13 8 KetRpos 17 17 Ket 21 End ------------------------------------------------------------------ /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ Memory allocation (code space): 132 ------------------------------------------------------------------ 0 127 Bra 4 ^ 5 118 CBra 1 11 8 CBra 2 17 a+ 19 8 Ket 23 40 CBra 3 29 [ab]+? 63 40 Ket 67 40 CBra 4 73 [bc]+ 107 40 Ket 111 8 CBra 5 117 \w*+ 119 8 Ket 123 118 Ket 127 127 Ket 131 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): 828 ------------------------------------------------------------------ 0 823 Bra 4 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 822 \b 823 823 Ket 827 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): 818 ------------------------------------------------------------------ 0 813 Bra 4 $<.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 812 \b 813 813 Ket 817 End ------------------------------------------------------------------ /(a(?1)b)/ Memory allocation (code space): 27 ------------------------------------------------------------------ 0 22 Bra 4 14 CBra 1 10 a 12 4 Recurse 16 b 18 14 Ket 22 22 Ket 26 End ------------------------------------------------------------------ /(a(?1)+b)/ Memory allocation (code space): 35 ------------------------------------------------------------------ 0 30 Bra 4 22 CBra 1 10 a 12 8 SBra 16 4 Recurse 20 8 KetRmax 24 b 26 22 Ket 30 30 Ket 34 End ------------------------------------------------------------------ /a(?Pb|c)d(?Pe)/ Memory allocation (code space): 43 ------------------------------------------------------------------ 0 38 Bra 4 a 6 8 CBra 1 12 b 14 6 Alt 18 c 20 14 Ket 24 d 26 8 CBra 2 32 e 34 8 Ket 38 38 Ket 42 End ------------------------------------------------------------------ /(?:a(?Pc(?Pd)))(?Pa)/ Memory allocation (code space): 55 ------------------------------------------------------------------ 0 50 Bra 4 30 Bra 8 a 10 20 CBra 1 16 c 18 8 CBra 2 24 d 26 8 Ket 30 20 Ket 34 30 Ket 38 8 CBra 3 44 a 46 8 Ket 50 50 Ket 54 End ------------------------------------------------------------------ /(?Pa)...(?P=a)bbb(?P>a)d/ Memory allocation (code space): 39 ------------------------------------------------------------------ 0 34 Bra 4 8 CBra 1 10 a 12 8 Ket 16 Any 17 Any 18 Any 19 \1 22 bbb 28 4 Recurse 32 d 34 34 Ket 38 End ------------------------------------------------------------------ /abc(?C255)de(?C)f/ Memory allocation (code space): 37 ------------------------------------------------------------------ 0 32 Bra 4 abc 10 Callout 255 10 1 18 de 22 Callout 0 16 1 30 f 32 32 Ket 36 End ------------------------------------------------------------------ /abcde/auto_callout Memory allocation (code space): 67 ------------------------------------------------------------------ 0 62 Bra 4 Callout 255 0 1 12 a 14 Callout 255 1 1 22 b 24 Callout 255 2 1 32 c 34 Callout 255 3 1 42 d 44 Callout 255 4 1 52 e 54 Callout 255 5 0 62 62 Ket 66 End ------------------------------------------------------------------ /\x{100}/utf Memory allocation (code space): 12 ------------------------------------------------------------------ 0 7 Bra 4 \x{100} 7 7 Ket 11 End ------------------------------------------------------------------ /\x{1000}/utf Memory allocation (code space): 13 ------------------------------------------------------------------ 0 8 Bra 4 \x{1000} 8 8 Ket 12 End ------------------------------------------------------------------ /\x{10000}/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 9 Bra 4 \x{10000} 9 9 Ket 13 End ------------------------------------------------------------------ /\x{100000}/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 9 Bra 4 \x{100000} 9 9 Ket 13 End ------------------------------------------------------------------ /\x{10ffff}/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 9 Bra 4 \x{10ffff} 9 9 Ket 13 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): 12 ------------------------------------------------------------------ 0 7 Bra 4 \x{ff} 7 7 Ket 11 End ------------------------------------------------------------------ /[\x{100}]/utf Memory allocation (code space): 12 ------------------------------------------------------------------ 0 7 Bra 4 \x{100} 7 7 Ket 11 End ------------------------------------------------------------------ /\x80/utf Memory allocation (code space): 12 ------------------------------------------------------------------ 0 7 Bra 4 \x{80} 7 7 Ket 11 End ------------------------------------------------------------------ /\xff/utf Memory allocation (code space): 12 ------------------------------------------------------------------ 0 7 Bra 4 \x{ff} 7 7 Ket 11 End ------------------------------------------------------------------ /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf Memory allocation (code space): 20 ------------------------------------------------------------------ 0 15 Bra 4 A\x{2262}\x{391}. 15 15 Ket 19 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): 21 ------------------------------------------------------------------ 0 16 Bra 4 \x{d55c}\x{ad6d}\x{c5b4} 16 16 Ket 20 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): 21 ------------------------------------------------------------------ 0 16 Bra 4 \x{65e5}\x{672c}\x{8a9e} 16 16 Ket 20 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): 12 ------------------------------------------------------------------ 0 7 Bra 4 \x{100} 7 7 Ket 11 End ------------------------------------------------------------------ /[Z\x{100}]/utf Memory allocation (code space): 50 ------------------------------------------------------------------ 0 45 Bra 4 [Z\x{100}] 45 45 Ket 49 End ------------------------------------------------------------------ /^[\x{100}\E-\Q\E\x{150}]/utf Memory allocation (code space): 21 ------------------------------------------------------------------ 0 16 Bra 4 ^ 5 [\x{100}-\x{150}] 16 16 Ket 20 End ------------------------------------------------------------------ /^[\QĀ\E-\QŐ\E]/utf Memory allocation (code space): 21 ------------------------------------------------------------------ 0 16 Bra 4 ^ 5 [\x{100}-\x{150}] 16 16 Ket 20 End ------------------------------------------------------------------ /^[\QĀ\E-\QŐ\E/utf Failed: error 106 at offset 15: missing terminating ] for character class /[\p{L}]/ Memory allocation (code space): 18 ------------------------------------------------------------------ 0 13 Bra 4 [\p{L}] 13 13 Ket 17 End ------------------------------------------------------------------ /[\p{^L}]/ Memory allocation (code space): 18 ------------------------------------------------------------------ 0 13 Bra 4 [\P{L}] 13 13 Ket 17 End ------------------------------------------------------------------ /[\P{L}]/ Memory allocation (code space): 18 ------------------------------------------------------------------ 0 13 Bra 4 [\P{L}] 13 13 Ket 17 End ------------------------------------------------------------------ /[\P{^L}]/ Memory allocation (code space): 18 ------------------------------------------------------------------ 0 13 Bra 4 [\p{L}] 13 13 Ket 17 End ------------------------------------------------------------------ /[abc\p{L}\x{0660}]/utf Memory allocation (code space): 53 ------------------------------------------------------------------ 0 48 Bra 4 [a-c\p{L}\x{660}] 48 48 Ket 52 End ------------------------------------------------------------------ /[\p{Nd}]/utf Memory allocation (code space): 18 ------------------------------------------------------------------ 0 13 Bra 4 [\p{Nd}] 13 13 Ket 17 End ------------------------------------------------------------------ /[\p{Nd}+-]+/utf Memory allocation (code space): 51 ------------------------------------------------------------------ 0 46 Bra 4 [+\-\p{Nd}]++ 46 46 Ket 50 End ------------------------------------------------------------------ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf Memory allocation (code space): 27 ------------------------------------------------------------------ 0 22 Bra 4 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0} 22 22 Ket 26 End ------------------------------------------------------------------ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf Memory allocation (code space): 27 ------------------------------------------------------------------ 0 22 Bra 4 A\x{391}\x{10427}\x{ff3a}\x{1fb0} 22 22 Ket 26 End ------------------------------------------------------------------ /[\x{105}-\x{109}]/i,utf Memory allocation (code space): 20 ------------------------------------------------------------------ 0 15 Bra 4 [\x{104}-\x{109}] 15 15 Ket 19 End ------------------------------------------------------------------ /( ( (?(1)0|) )* )/x Memory allocation (code space): 47 ------------------------------------------------------------------ 0 42 Bra 4 34 CBra 1 10 Brazero 11 23 SCBra 2 17 9 Cond 21 1 Cond ref 24 0 26 4 Alt 30 13 Ket 34 23 KetRmax 38 34 Ket 42 42 Ket 46 End ------------------------------------------------------------------ /( (?(1)0|)* )/x Memory allocation (code space): 37 ------------------------------------------------------------------ 0 32 Bra 4 24 CBra 1 10 Brazero 11 9 SCond 15 1 Cond ref 18 0 20 4 Alt 24 13 KetRmax 28 24 Ket 32 32 Ket 36 End ------------------------------------------------------------------ /[a]/ Memory allocation (code space): 11 ------------------------------------------------------------------ 0 6 Bra 4 a 6 6 Ket 10 End ------------------------------------------------------------------ /[a]/utf Memory allocation (code space): 11 ------------------------------------------------------------------ 0 6 Bra 4 a 6 6 Ket 10 End ------------------------------------------------------------------ /[\xaa]/ Memory allocation (code space): 11 ------------------------------------------------------------------ 0 6 Bra 4 \x{aa} 6 6 Ket 10 End ------------------------------------------------------------------ /[\xaa]/utf Memory allocation (code space): 12 ------------------------------------------------------------------ 0 7 Bra 4 \x{aa} 7 7 Ket 11 End ------------------------------------------------------------------ /[^a]/ Memory allocation (code space): 11 ------------------------------------------------------------------ 0 6 Bra 4 [^a] 6 6 Ket 10 End ------------------------------------------------------------------ /[^a]/utf Memory allocation (code space): 11 ------------------------------------------------------------------ 0 6 Bra 4 [^a] 6 6 Ket 10 End ------------------------------------------------------------------ /[^\xaa]/ Memory allocation (code space): 11 ------------------------------------------------------------------ 0 6 Bra 4 [^\x{aa}] 6 6 Ket 10 End ------------------------------------------------------------------ /[^\xaa]/utf Memory allocation (code space): 12 ------------------------------------------------------------------ 0 7 Bra 4 [^\x{aa}] 7 7 Ket 11 End ------------------------------------------------------------------ #pattern -memory /[^\d]/utf,ucp ------------------------------------------------------------------ 0 13 Bra 4 [^\p{Nd}] 13 13 Ket 17 End ------------------------------------------------------------------ /[[:^alpha:][:^cntrl:]]+/utf,ucp ------------------------------------------------------------------ 0 17 Bra 4 [\P{L}\P{Cc}]++ 17 17 Ket 21 End ------------------------------------------------------------------ /[[:^cntrl:][:^alpha:]]+/utf,ucp ------------------------------------------------------------------ 0 17 Bra 4 [\P{Cc}\P{L}]++ 17 17 Ket 21 End ------------------------------------------------------------------ /[[:alpha:]]+/utf,ucp ------------------------------------------------------------------ 0 14 Bra 4 [\p{L}]++ 14 14 Ket 18 End ------------------------------------------------------------------ /[[:^alpha:]\S]+/utf,ucp ------------------------------------------------------------------ 0 17 Bra 4 [\P{L}\P{Xsp}]++ 17 17 Ket 21 End ------------------------------------------------------------------ /abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/ ------------------------------------------------------------------ 0 83 Bra 4 abc 10 8 CBra 1 16 d 18 6 Alt 22 e 24 14 Ket 28 *THEN 29 x 31 15 CBra 2 37 123 43 *THEN 44 4 46 33 Alt 50 567 56 8 CBra 3 62 b 64 6 Alt 68 q 70 14 Ket 74 *THEN 75 xx 79 48 Ket 83 83 Ket 87 End ------------------------------------------------------------------ /(((a\2)|(a*)\g<-1>))*a?/ ------------------------------------------------------------------ 0 70 Bra 4 Brazero 5 59 SCBra 1 11 49 Once 15 21 CBra 2 21 11 CBra 3 27 a 29 \2 32 11 Ket 36 20 Alt 40 8 CBra 4 46 a* 48 8 Ket 52 40 Recurse 56 41 Ket 60 49 Ket 64 59 KetRmax 68 a?+ 70 70 Ket 74 End ------------------------------------------------------------------ /((?+1)(\1))/ ------------------------------------------------------------------ 0 39 Bra 4 31 Once 8 23 CBra 1 14 18 Recurse 18 9 CBra 2 24 \1 27 9 Ket 31 23 Ket 35 31 Ket 39 39 Ket 43 End ------------------------------------------------------------------ "(?1)(?#?'){2}(a)" ------------------------------------------------------------------ 0 24 Bra 4 12 Recurse 8 12 Recurse 12 8 CBra 1 18 a 20 8 Ket 24 24 Ket 28 End ------------------------------------------------------------------ /.((?2)(?R)|\1|$)()/ ------------------------------------------------------------------ 0 53 Bra 4 Any 5 34 Once 9 14 CBra 1 15 43 Recurse 19 0 Recurse 23 7 Alt 27 \1 30 5 Alt 34 $ 35 26 Ket 39 34 Ket 43 6 CBra 2 49 6 Ket 53 53 Ket 57 End ------------------------------------------------------------------ /.((?3)(?R)()(?2)|\1|$)()/ ------------------------------------------------------------------ 0 67 Bra 4 Any 5 48 Once 9 28 CBra 1 15 57 Recurse 19 0 Recurse 23 6 CBra 2 29 6 Ket 33 23 Recurse 37 7 Alt 41 \1 44 5 Alt 48 $ 49 40 Ket 53 48 Ket 57 6 CBra 3 63 6 Ket 67 67 Ket 71 End ------------------------------------------------------------------ /(?1)()((((((\1++))\x85)+)|))/ ------------------------------------------------------------------ 0 96 Bra 4 8 Recurse 8 6 CBra 1 14 6 Ket 18 74 CBra 2 24 60 CBra 3 30 50 CBra 4 36 40 CBra 5 42 28 CBra 6 48 18 CBra 7 54 8 Once 58 \1+ 62 8 Ket 66 18 Ket 70 28 Ket 74 \x{85} 76 40 KetRmax 80 50 Ket 84 4 Alt 88 64 Ket 92 74 Ket 96 96 Ket 100 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 150 Bra 4 132 Once 8 11 Cond 12 1 Cond ref 15 140 Recurse 19 11 Ket 23 11 Cond 27 1 Cond ref 30 140 Recurse 34 11 Ket 38 11 Cond 42 1 Cond ref 45 140 Recurse 49 11 Ket 53 11 Cond 57 1 Cond ref 60 140 Recurse 64 11 Ket 68 11 Cond 72 1 Cond ref 75 140 Recurse 79 11 Ket 83 11 Cond 87 1 Cond ref 90 140 Recurse 94 11 Ket 98 11 Cond 102 1 Cond ref 105 140 Recurse 109 11 Ket 113 19 SBraPos 117 11 SCond 121 1 Cond ref 124 140 Recurse 128 11 Ket 132 19 KetRpos 136 132 Ket 140 6 CBra 1 146 6 Ket 150 150 Ket 154 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 76 Bra 4 58 Once 8 7 Cond 12 1 Cond ref 15 12 Alt 19 a 21 66 Recurse 25 b 27 19 Ket 31 27 SBraPos 35 7 SCond 39 1 Cond ref 42 12 Alt 46 a 48 66 Recurse 52 b 54 19 Ket 58 27 KetRpos 62 58 Ket 66 6 CBra 1 72 6 Ket 76 76 Ket 80 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 266 Bra 4 82 CBra 1 10 4 Recurse 14 176 Recurse 18 186 Recurse 22 196 Recurse 26 206 Recurse 30 216 Recurse 34 226 Recurse 38 236 Recurse 42 246 Recurse 46 246 Recurse 50 236 Recurse 54 226 Recurse 58 216 Recurse 62 206 Recurse 66 196 Recurse 70 186 Recurse 74 176 Recurse 78 4 Recurse 82 0 Recurse 86 82 Ket 90 82 SCBra 1 96 4 Recurse 100 176 Recurse 104 186 Recurse 108 196 Recurse 112 206 Recurse 116 216 Recurse 120 226 Recurse 124 236 Recurse 128 246 Recurse 132 246 Recurse 136 236 Recurse 140 226 Recurse 144 216 Recurse 148 206 Recurse 152 196 Recurse 156 186 Recurse 160 176 Recurse 164 4 Recurse 168 0 Recurse 172 82 KetRmax 176 6 CBra 2 182 6 Ket 186 6 CBra 3 192 6 Ket 196 6 CBra 4 202 6 Ket 206 6 CBra 5 212 6 Ket 216 6 CBra 6 222 6 Ket 226 6 CBra 7 232 6 Ket 236 6 CBra 8 242 6 Ket 246 6 CBra 9 252 6 Ket 256 6 CBra 10 262 6 Ket 266 266 Ket 270 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