|
|
# 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 - compiled block : 160 Memory allocation - code portion : 24 ------------------------------------------------------------------ 0 9 Bra 2 5 CBra 1 5 /i b 7 5 Ket 9 9 Ket 11 End ------------------------------------------------------------------
/(?s)(.*X|^B)/ Memory allocation - compiled block : 174 Memory allocation - code portion : 38 ------------------------------------------------------------------ 0 16 Bra 2 7 CBra 1 5 AllAny* 7 X 9 5 Alt 11 ^ 12 B 14 12 Ket 16 16 Ket 18 End ------------------------------------------------------------------
/(?s:.*X|^B)/ Memory allocation - compiled block : 172 Memory allocation - code portion : 36 ------------------------------------------------------------------ 0 15 Bra 2 6 Bra 4 AllAny* 6 X 8 5 Alt 10 ^ 11 B 13 11 Ket 15 15 Ket 17 End ------------------------------------------------------------------
/^[[:alnum:]]/ Memory allocation - compiled block : 182 Memory allocation - code portion : 46 ------------------------------------------------------------------ 0 20 Bra 2 ^ 3 [0-9A-Za-z] 20 20 Ket 22 End ------------------------------------------------------------------
/#/Ix Memory allocation - compiled block : 146 Memory allocation - code portion : 10 ------------------------------------------------------------------ 0 2 Bra 2 2 Ket 4 End ------------------------------------------------------------------ Capture group count = 0 May match empty string Options: extended Subject length lower bound = 0
/a#/Ix Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 a 4 4 Ket 6 End ------------------------------------------------------------------ Capture group count = 0 Options: extended First code unit = 'a' Subject length lower bound = 1
/x?+/ Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 x?+ 4 4 Ket 6 End ------------------------------------------------------------------
/x++/ Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 x++ 4 4 Ket 6 End ------------------------------------------------------------------
/x{1,3}+/ Memory allocation - compiled block : 156 Memory allocation - code portion : 20 ------------------------------------------------------------------ 0 7 Bra 2 x 4 x{0,2}+ 7 7 Ket 9 End ------------------------------------------------------------------
/(x)*+/ Memory allocation - compiled block : 162 Memory allocation - code portion : 26 ------------------------------------------------------------------ 0 10 Bra 2 Braposzero 3 5 CBraPos 1 6 x 8 5 KetRpos 10 10 Ket 12 End ------------------------------------------------------------------
/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ Memory allocation - compiled block : 278 Memory allocation - code portion : 142 ------------------------------------------------------------------ 0 68 Bra 2 ^ 3 63 CBra 1 6 5 CBra 2 9 a+ 11 5 Ket 13 21 CBra 3 16 [ab]+? 34 21 Ket 36 21 CBra 4 39 [bc]+ 57 21 Ket 59 5 CBra 5 62 \w*+ 64 5 Ket 66 63 Ket 68 68 Ket 70 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\<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" Memory allocation - compiled block : 1784 Memory allocation - code portion : 1648 ------------------------------------------------------------------ 0 821 Bra 2 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 820 \b 821 821 Ket 823 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\<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" Memory allocation - compiled block : 1764 Memory allocation - code portion : 1628 ------------------------------------------------------------------ 0 811 Bra 2 $<.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 810 \b 811 811 Ket 813 End ------------------------------------------------------------------
/(a(?1)b)/ Memory allocation - compiled block : 168 Memory allocation - code portion : 32 ------------------------------------------------------------------ 0 13 Bra 2 9 CBra 1 5 a 7 2 Recurse 9 b 11 9 Ket 13 13 Ket 15 End ------------------------------------------------------------------
/(a(?1)+b)/ Memory allocation - compiled block : 176 Memory allocation - code portion : 40 ------------------------------------------------------------------ 0 17 Bra 2 13 CBra 1 5 a 7 4 SBra 9 2 Recurse 11 4 KetRmax 13 b 15 13 Ket 17 17 Ket 19 End ------------------------------------------------------------------
/a(?P<name1>b|c)d(?P<longername2>e)/ Memory allocation - compiled block : 242 Memory allocation - code portion : 54 ------------------------------------------------------------------ 0 24 Bra 2 a 4 5 CBra 1 7 b 9 4 Alt 11 c 13 9 Ket 15 d 17 5 CBra 2 20 e 22 5 Ket 24 24 Ket 26 End ------------------------------------------------------------------
/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/ Memory allocation - compiled block : 218 Memory allocation - code portion : 64 ------------------------------------------------------------------ 0 29 Bra 2 18 Bra 4 a 6 12 CBra 1 9 c 11 5 CBra 2 14 d 16 5 Ket 18 12 Ket 20 18 Ket 22 5 CBra 3 25 a 27 5 Ket 29 29 Ket 31 End ------------------------------------------------------------------
/(?P<a>a)...(?P=a)bbb(?P>a)d/ Memory allocation - compiled block : 196 Memory allocation - code portion : 54 ------------------------------------------------------------------ 0 24 Bra 2 5 CBra 1 5 a 7 5 Ket 9 Any 10 Any 11 Any 12 \1 14 bbb 20 2 Recurse 22 d 24 24 Ket 26 End ------------------------------------------------------------------
/abc(?C255)de(?C)f/ Memory allocation - compiled block : 186 Memory allocation - code portion : 50 ------------------------------------------------------------------ 0 22 Bra 2 abc 8 Callout 255 10 1 12 de 16 Callout 0 16 1 20 f 22 22 Ket 24 End ------------------------------------------------------------------
/abcde/auto_callout Memory allocation - compiled block : 214 Memory allocation - code portion : 78 ------------------------------------------------------------------ 0 36 Bra 2 Callout 255 0 1 6 a 8 Callout 255 1 1 12 b 14 Callout 255 2 1 18 c 20 Callout 255 3 1 24 d 26 Callout 255 4 1 30 e 32 Callout 255 5 0 36 36 Ket 38 End ------------------------------------------------------------------
/\x{100}/utf Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{100} 4 4 Ket 6 End ------------------------------------------------------------------
/\x{1000}/utf Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{1000} 4 4 Ket 6 End ------------------------------------------------------------------
/\x{10000}/utf Memory allocation - compiled block : 152 Memory allocation - code portion : 16 ------------------------------------------------------------------ 0 5 Bra 2 \x{10000} 5 5 Ket 7 End ------------------------------------------------------------------
/\x{100000}/utf Memory allocation - compiled block : 152 Memory allocation - code portion : 16 ------------------------------------------------------------------ 0 5 Bra 2 \x{100000} 5 5 Ket 7 End ------------------------------------------------------------------
/\x{10ffff}/utf Memory allocation - compiled block : 152 Memory allocation - code portion : 16 ------------------------------------------------------------------ 0 5 Bra 2 \x{10ffff} 5 5 Ket 7 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 - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{ff} 4 4 Ket 6 End ------------------------------------------------------------------
/[\x{100}]/utf Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{100} 4 4 Ket 6 End ------------------------------------------------------------------
/\x80/utf Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{80} 4 4 Ket 6 End ------------------------------------------------------------------
/\xff/utf Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{ff} 4 4 Ket 6 End ------------------------------------------------------------------
/\x{0041}\x{2262}\x{0391}\x{002e}/I,utf Memory allocation - compiled block : 162 Memory allocation - code portion : 26 ------------------------------------------------------------------ 0 10 Bra 2 A\x{2262}\x{391}. 10 10 Ket 12 End ------------------------------------------------------------------ Capture group 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 - compiled block : 158 Memory allocation - code portion : 22 ------------------------------------------------------------------ 0 8 Bra 2 \x{d55c}\x{ad6d}\x{c5b4} 8 8 Ket 10 End ------------------------------------------------------------------ Capture group 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 - compiled block : 158 Memory allocation - code portion : 22 ------------------------------------------------------------------ 0 8 Bra 2 \x{65e5}\x{672c}\x{8a9e} 8 8 Ket 10 End ------------------------------------------------------------------ Capture group count = 0 Options: utf First code unit = \x{65e5} Last code unit = \x{8a9e} Subject length lower bound = 3
/[\x{100}]/utf Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{100} 4 4 Ket 6 End ------------------------------------------------------------------
/[Z\x{100}]/utf Memory allocation - compiled block : 190 Memory allocation - code portion : 54 ------------------------------------------------------------------ 0 24 Bra 2 [Z\x{100}] 24 24 Ket 26 End ------------------------------------------------------------------
/^[\x{100}\E-\Q\E\x{150}]/utf Memory allocation - compiled block : 162 Memory allocation - code portion : 26 ------------------------------------------------------------------ 0 10 Bra 2 ^ 3 [\x{100}-\x{150}] 10 10 Ket 12 End ------------------------------------------------------------------
/^[\QĀ\E-\QŐ\E]/utf Memory allocation - compiled block : 162 Memory allocation - code portion : 26 ------------------------------------------------------------------ 0 10 Bra 2 ^ 3 [\x{100}-\x{150}] 10 10 Ket 12 End ------------------------------------------------------------------
/^[\QĀ\E-\QŐ\E/utf Failed: error 106 at offset 13: missing terminating ] for character class
/[\p{L}]/ Memory allocation - compiled block : 160 Memory allocation - code portion : 24 ------------------------------------------------------------------ 0 9 Bra 2 [\p{L}] 9 9 Ket 11 End ------------------------------------------------------------------
/[\p{^L}]/ Memory allocation - compiled block : 160 Memory allocation - code portion : 24 ------------------------------------------------------------------ 0 9 Bra 2 [\P{L}] 9 9 Ket 11 End ------------------------------------------------------------------
/[\P{L}]/ Memory allocation - compiled block : 160 Memory allocation - code portion : 24 ------------------------------------------------------------------ 0 9 Bra 2 [\P{L}] 9 9 Ket 11 End ------------------------------------------------------------------
/[\P{^L}]/ Memory allocation - compiled block : 160 Memory allocation - code portion : 24 ------------------------------------------------------------------ 0 9 Bra 2 [\p{L}] 9 9 Ket 11 End ------------------------------------------------------------------
/[abc\p{L}\x{0660}]/utf Memory allocation - compiled block : 196 Memory allocation - code portion : 60 ------------------------------------------------------------------ 0 27 Bra 2 [a-c\p{L}\x{660}] 27 27 Ket 29 End ------------------------------------------------------------------
/[\p{Nd}]/utf Memory allocation - compiled block : 160 Memory allocation - code portion : 24 ------------------------------------------------------------------ 0 9 Bra 2 [\p{Nd}] 9 9 Ket 11 End ------------------------------------------------------------------
/[\p{Nd}+-]+/utf Memory allocation - compiled block : 194 Memory allocation - code portion : 58 ------------------------------------------------------------------ 0 26 Bra 2 [+\-\p{Nd}]++ 26 26 Ket 28 End ------------------------------------------------------------------
/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf Memory allocation - compiled block : 168 Memory allocation - code portion : 32 ------------------------------------------------------------------ 0 13 Bra 2 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0} 13 13 Ket 15 End ------------------------------------------------------------------
/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf Memory allocation - compiled block : 168 Memory allocation - code portion : 32 ------------------------------------------------------------------ 0 13 Bra 2 A\x{391}\x{10427}\x{ff3a}\x{1fb0} 13 13 Ket 15 End ------------------------------------------------------------------
/[\x{105}-\x{109}]/i,utf Memory allocation - compiled block : 160 Memory allocation - code portion : 24 ------------------------------------------------------------------ 0 9 Bra 2 [\x{104}-\x{109}] 9 9 Ket 11 End ------------------------------------------------------------------
/( ( (?(1)0|) )* )/x Memory allocation - compiled block : 188 Memory allocation - code portion : 52 ------------------------------------------------------------------ 0 23 Bra 2 19 CBra 1 5 Brazero 6 13 SCBra 2 9 6 Cond 11 1 Cond ref 13 0 15 2 Alt 17 8 Ket 19 13 KetRmax 21 19 Ket 23 23 Ket 25 End ------------------------------------------------------------------
/( (?(1)0|)* )/x Memory allocation - compiled block : 178 Memory allocation - code portion : 42 ------------------------------------------------------------------ 0 18 Bra 2 14 CBra 1 5 Brazero 6 6 SCond 8 1 Cond ref 10 0 12 2 Alt 14 8 KetRmax 16 14 Ket 18 18 Ket 20 End ------------------------------------------------------------------
/[a]/ Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 a 4 4 Ket 6 End ------------------------------------------------------------------
/[a]/utf Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 a 4 4 Ket 6 End ------------------------------------------------------------------
/[\xaa]/ Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{aa} 4 4 Ket 6 End ------------------------------------------------------------------
/[\xaa]/utf Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{aa} 4 4 Ket 6 End ------------------------------------------------------------------
/[^a]/ Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 [^a] 4 4 Ket 6 End ------------------------------------------------------------------
/[^a]/utf Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 [^a] 4 4 Ket 6 End ------------------------------------------------------------------
/[^\xaa]/ Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 [^\x{aa}] 4 4 Ket 6 End ------------------------------------------------------------------
/[^\xaa]/utf Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 4 Bra 2 [^\x{aa}] 4 4 Ket 6 End ------------------------------------------------------------------
#pattern -memory
/[^\d]/utf,ucp ------------------------------------------------------------------ 0 9 Bra 2 [^\p{Nd}] 9 9 Ket 11 End ------------------------------------------------------------------
/[[:^alpha:][:^cntrl:]]+/utf,ucp ------------------------------------------------------------------ 0 13 Bra 2 [\P{L}\P{Cc}]++ 13 13 Ket 15 End ------------------------------------------------------------------
/[[:^cntrl:][:^alpha:]]+/utf,ucp ------------------------------------------------------------------ 0 13 Bra 2 [\P{Cc}\P{L}]++ 13 13 Ket 15 End ------------------------------------------------------------------
/[[:alpha:]]+/utf,ucp ------------------------------------------------------------------ 0 10 Bra 2 [\p{L}]++ 10 10 Ket 12 End ------------------------------------------------------------------
/[[:^alpha:]\S]+/utf,ucp ------------------------------------------------------------------ 0 13 Bra 2 [\P{L}\P{Xsp}]++ 13 13 Ket 15 End ------------------------------------------------------------------
/abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/ ------------------------------------------------------------------ 0 60 Bra 2 abc 8 5 CBra 1 11 d 13 4 Alt 15 e 17 9 Ket 19 *THEN 20 x 22 12 CBra 2 25 123 31 *THEN 32 4 34 24 Alt 36 567 42 5 CBra 3 45 b 47 4 Alt 49 q 51 9 Ket 53 *THEN 54 xx 58 36 Ket 60 60 Ket 62 End ------------------------------------------------------------------
/(((a\2)|(a*)\g<-1>))*a?/ ------------------------------------------------------------------ 0 35 Bra 2 Brazero 3 28 SCBra 1 6 12 CBra 2 9 7 CBra 3 12 a 14 \2 16 7 Ket 18 11 Alt 20 5 CBra 4 23 a* 25 5 Ket 27 20 Recurse 29 23 Ket 31 28 KetRmax 33 a?+ 35 35 Ket 37 End ------------------------------------------------------------------
/((?+1)(\1))/ ------------------------------------------------------------------ 0 16 Bra 2 12 CBra 1 5 7 Recurse 7 5 CBra 2 10 \1 12 5 Ket 14 12 Ket 16 16 Ket 18 End ------------------------------------------------------------------
"(?1)(?#?'){2}(a)" ------------------------------------------------------------------ 0 13 Bra 2 6 Recurse 4 6 Recurse 6 5 CBra 1 9 a 11 5 Ket 13 13 Ket 15 End ------------------------------------------------------------------
/.((?2)(?R)|\1|$)()/ ------------------------------------------------------------------ 0 24 Bra 2 Any 3 7 CBra 1 6 19 Recurse 8 0 Recurse 10 4 Alt 12 \1 14 3 Alt 16 $ 17 14 Ket 19 3 CBra 2 22 3 Ket 24 24 Ket 26 End ------------------------------------------------------------------
/.((?3)(?R)()(?2)|\1|$)()/ ------------------------------------------------------------------ 0 31 Bra 2 Any 3 14 CBra 1 6 26 Recurse 8 0 Recurse 10 3 CBra 2 13 3 Ket 15 10 Recurse 17 4 Alt 19 \1 21 3 Alt 23 $ 24 21 Ket 26 3 CBra 3 29 3 Ket 31 31 Ket 33 End ------------------------------------------------------------------
/(?1)()((((((\1++))\x85)+)|))/ ------------------------------------------------------------------ 0 50 Bra 2 4 Recurse 4 3 CBra 1 7 3 Ket 9 39 CBra 2 12 32 CBra 3 15 27 CBra 4 18 22 CBra 5 21 15 CBra 6 24 10 CBra 7 27 5 Once 29 \1+ 32 5 Ket 34 10 Ket 36 15 Ket 38 \x{85} 40 22 KetRmax 42 27 Ket 44 2 Alt 46 34 Ket 48 39 Ket 50 50 Ket 52 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 Failed: error 184 at offset 1129: (?| and/or (?J: or (?x: parentheses are too deeply nested
# 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 79 Bra 2 70 Once 4 6 Cond 6 1 Cond ref 8 74 Recurse 10 6 Ket 12 6 Cond 14 1 Cond ref 16 74 Recurse 18 6 Ket 20 6 Cond 22 1 Cond ref 24 74 Recurse 26 6 Ket 28 6 Cond 30 1 Cond ref 32 74 Recurse 34 6 Ket 36 6 Cond 38 1 Cond ref 40 74 Recurse 42 6 Ket 44 6 Cond 46 1 Cond ref 48 74 Recurse 50 6 Ket 52 6 Cond 54 1 Cond ref 56 74 Recurse 58 6 Ket 60 10 SBraPos 62 6 SCond 64 1 Cond ref 66 74 Recurse 68 6 Ket 70 10 KetRpos 72 70 Ket 74 3 CBra 1 77 3 Ket 79 79 Ket 81 End ------------------------------------------------------------------ Capture group 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 43 Bra 2 34 Once 4 4 Cond 6 1 Cond ref 8 8 Alt 10 a 12 38 Recurse 14 b 16 12 Ket 18 16 SBraPos 20 4 SCond 22 1 Cond ref 24 8 Alt 26 a 28 38 Recurse 30 b 32 12 Ket 34 16 KetRpos 36 34 Ket 38 3 CBra 1 41 3 Ket 43 43 Ket 45 End ------------------------------------------------------------------ Capture group 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 133 Bra 2 41 CBra 1 5 2 Recurse 7 88 Recurse 9 93 Recurse 11 98 Recurse 13 103 Recurse 15 108 Recurse 17 113 Recurse 19 118 Recurse 21 123 Recurse 23 123 Recurse 25 118 Recurse 27 113 Recurse 29 108 Recurse 31 103 Recurse 33 98 Recurse 35 93 Recurse 37 88 Recurse 39 2 Recurse 41 0 Recurse 43 41 Ket 45 41 SCBra 1 48 2 Recurse 50 88 Recurse 52 93 Recurse 54 98 Recurse 56 103 Recurse 58 108 Recurse 60 113 Recurse 62 118 Recurse 64 123 Recurse 66 123 Recurse 68 118 Recurse 70 113 Recurse 72 108 Recurse 74 103 Recurse 76 98 Recurse 78 93 Recurse 80 88 Recurse 82 2 Recurse 84 0 Recurse 86 41 KetRmax 88 3 CBra 2 91 3 Ket 93 3 CBra 3 96 3 Ket 98 3 CBra 4 101 3 Ket 103 3 CBra 5 106 3 Ket 108 3 CBra 6 111 3 Ket 113 3 CBra 7 116 3 Ket 118 3 CBra 8 121 3 Ket 123 3 CBra 9 126 3 Ket 128 3 CBra 10 131 3 Ket 133 133 Ket 135 End ------------------------------------------------------------------ Capture group 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
#pattern -fullbincode
/\[()]{65535}/expand Failed: error 120 at offset 131070: regular expression is too large
# End of testinput8
|