|
|
# 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 : 168 Memory allocation - code portion : 32 ------------------------------------------------------------------ 0 12 Bra 3 6 CBra 1 7 /i b 9 6 Ket 12 12 Ket 15 End ------------------------------------------------------------------
/(?s)(.*X|^B)/ Memory allocation - compiled block : 184 Memory allocation - code portion : 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 - compiled block : 182 Memory allocation - code portion : 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 - compiled block : 186 Memory allocation - code portion : 50 ------------------------------------------------------------------ 0 21 Bra 3 ^ 4 [0-9A-Za-z] 21 21 Ket 24 End ------------------------------------------------------------------
/#/Ix Memory allocation - compiled block : 150 Memory allocation - code portion : 14 ------------------------------------------------------------------ 0 3 Bra 3 3 Ket 6 End ------------------------------------------------------------------ Capture group count = 0 May match empty string Options: extended Subject length lower bound = 0
/a#/Ix Memory allocation - compiled block : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 a 5 5 Ket 8 End ------------------------------------------------------------------ Capture group count = 0 Options: extended First code unit = 'a' Subject length lower bound = 1
/x?+/ Memory allocation - compiled block : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 x?+ 5 5 Ket 8 End ------------------------------------------------------------------
/x++/ Memory allocation - compiled block : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 x++ 5 5 Ket 8 End ------------------------------------------------------------------
/x{1,3}+/ Memory allocation - compiled block : 160 Memory allocation - code portion : 24 ------------------------------------------------------------------ 0 8 Bra 3 x 5 x{0,2}+ 8 8 Ket 11 End ------------------------------------------------------------------
/(x)*+/ Memory allocation - compiled block : 170 Memory allocation - code portion : 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 - compiled block : 302 Memory allocation - code portion : 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\<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 : 1788 Memory allocation - code portion : 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[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 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\<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 : 1768 Memory allocation - code portion : 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[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 811 \b 812 812 Ket 815 End ------------------------------------------------------------------
/(a(?1)b)/ Memory allocation - compiled block : 178 Memory allocation - code portion : 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 - compiled block : 190 Memory allocation - code portion : 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(?P<name1>b|c)d(?P<longername2>e)/ Memory allocation - compiled block : 256 Memory allocation - code portion : 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(?P<c>c(?P<d>d)))(?P<a>a)/ Memory allocation - compiled block : 238 Memory allocation - code portion : 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 ------------------------------------------------------------------
/(?P<a>a)...(?P=a)bbb(?P>a)d/ Memory allocation - compiled block : 206 Memory allocation - code portion : 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 - compiled block : 198 Memory allocation - code portion : 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 - compiled block : 242 Memory allocation - code portion : 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 - compiled block : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{100} 5 5 Ket 8 End ------------------------------------------------------------------
/\x{1000}/utf Memory allocation - compiled block : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{1000} 5 5 Ket 8 End ------------------------------------------------------------------
/\x{10000}/utf Memory allocation - compiled block : 156 Memory allocation - code portion : 20 ------------------------------------------------------------------ 0 6 Bra 3 \x{10000} 6 6 Ket 9 End ------------------------------------------------------------------
/\x{100000}/utf Memory allocation - compiled block : 156 Memory allocation - code portion : 20 ------------------------------------------------------------------ 0 6 Bra 3 \x{100000} 6 6 Ket 9 End ------------------------------------------------------------------
/\x{10ffff}/utf Memory allocation - compiled block : 156 Memory allocation - code portion : 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 - compiled block : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{ff} 5 5 Ket 8 End ------------------------------------------------------------------
/[\x{100}]/utf Memory allocation - compiled block : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{100} 5 5 Ket 8 End ------------------------------------------------------------------
/\x80/utf Memory allocation - compiled block : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{80} 5 5 Ket 8 End ------------------------------------------------------------------
/\xff/utf Memory allocation - compiled block : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{ff} 5 5 Ket 8 End ------------------------------------------------------------------
/\x{0041}\x{2262}\x{0391}\x{002e}/I,utf Memory allocation - compiled block : 166 Memory allocation - code portion : 30 ------------------------------------------------------------------ 0 11 Bra 3 A\x{2262}\x{391}. 11 11 Ket 14 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 : 162 Memory allocation - code portion : 26 ------------------------------------------------------------------ 0 9 Bra 3 \x{d55c}\x{ad6d}\x{c5b4} 9 9 Ket 12 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 : 162 Memory allocation - code portion : 26 ------------------------------------------------------------------ 0 9 Bra 3 \x{65e5}\x{672c}\x{8a9e} 9 9 Ket 12 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 : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{100} 5 5 Ket 8 End ------------------------------------------------------------------
/[Z\x{100}]/utf Memory allocation - compiled block : 196 Memory allocation - code portion : 60 ------------------------------------------------------------------ 0 26 Bra 3 [Z\x{100}] 26 26 Ket 29 End ------------------------------------------------------------------
/^[\x{100}\E-\Q\E\x{150}]/utf Memory allocation - compiled block : 168 Memory allocation - code portion : 32 ------------------------------------------------------------------ 0 12 Bra 3 ^ 4 [\x{100}-\x{150}] 12 12 Ket 15 End ------------------------------------------------------------------
/^[\QĀ\E-\QŐ\E]/utf Memory allocation - compiled block : 168 Memory allocation - code portion : 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 - compiled block : 166 Memory allocation - code portion : 30 ------------------------------------------------------------------ 0 11 Bra 3 [\p{L}] 11 11 Ket 14 End ------------------------------------------------------------------
/[\p{^L}]/ Memory allocation - compiled block : 166 Memory allocation - code portion : 30 ------------------------------------------------------------------ 0 11 Bra 3 [\P{L}] 11 11 Ket 14 End ------------------------------------------------------------------
/[\P{L}]/ Memory allocation - compiled block : 166 Memory allocation - code portion : 30 ------------------------------------------------------------------ 0 11 Bra 3 [\P{L}] 11 11 Ket 14 End ------------------------------------------------------------------
/[\P{^L}]/ Memory allocation - compiled block : 166 Memory allocation - code portion : 30 ------------------------------------------------------------------ 0 11 Bra 3 [\p{L}] 11 11 Ket 14 End ------------------------------------------------------------------
/[abc\p{L}\x{0660}]/utf Memory allocation - compiled block : 202 Memory allocation - code portion : 66 ------------------------------------------------------------------ 0 29 Bra 3 [a-c\p{L}\x{660}] 29 29 Ket 32 End ------------------------------------------------------------------
/[\p{Nd}]/utf Memory allocation - compiled block : 166 Memory allocation - code portion : 30 ------------------------------------------------------------------ 0 11 Bra 3 [\p{Nd}] 11 11 Ket 14 End ------------------------------------------------------------------
/[\p{Nd}+-]+/utf Memory allocation - compiled block : 200 Memory allocation - code portion : 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 - compiled block : 172 Memory allocation - code portion : 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 - compiled block : 172 Memory allocation - code portion : 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 - compiled block : 166 Memory allocation - code portion : 30 ------------------------------------------------------------------ 0 11 Bra 3 [\x{104}-\x{109}] 11 11 Ket 14 End ------------------------------------------------------------------
/( ( (?(1)0|) )* )/x Memory allocation - compiled block : 206 Memory allocation - code portion : 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 - compiled block : 192 Memory allocation - code portion : 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 - compiled block : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 a 5 5 Ket 8 End ------------------------------------------------------------------
/[a]/utf Memory allocation - compiled block : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 a 5 5 Ket 8 End ------------------------------------------------------------------
/[\xaa]/ Memory allocation - compiled block : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{aa} 5 5 Ket 8 End ------------------------------------------------------------------
/[\xaa]/utf Memory allocation - compiled block : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 \x{aa} 5 5 Ket 8 End ------------------------------------------------------------------
/[^a]/ Memory allocation - compiled block : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 [^a] 5 5 Ket 8 End ------------------------------------------------------------------
/[^a]/utf Memory allocation - compiled block : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 [^a] 5 5 Ket 8 End ------------------------------------------------------------------
/[^\xaa]/ Memory allocation - compiled block : 154 Memory allocation - code portion : 18 ------------------------------------------------------------------ 0 5 Bra 3 [^\x{aa}] 5 5 Ket 8 End ------------------------------------------------------------------
/[^\xaa]/utf Memory allocation - compiled block : 154 Memory allocation - code portion : 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 46 Bra 3 Brazero 4 37 SCBra 1 8 15 CBra 2 12 8 CBra 3 16 a 18 \2 20 8 Ket 23 15 Alt 26 6 CBra 4 30 a* 32 6 Ket 35 26 Recurse 38 30 Ket 41 37 KetRmax 44 a?+ 46 46 Ket 49 End ------------------------------------------------------------------
/((?+1)(\1))/ ------------------------------------------------------------------ 0 22 Bra 3 16 CBra 1 7 10 Recurse 10 6 CBra 2 14 \1 16 6 Ket 19 16 Ket 22 22 Ket 25 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 33 Bra 3 Any 4 10 CBra 1 8 26 Recurse 11 0 Recurse 14 5 Alt 17 \1 19 4 Alt 22 $ 23 19 Ket 26 4 CBra 2 30 4 Ket 33 33 Ket 36 End ------------------------------------------------------------------
/.((?3)(?R)()(?2)|\1|$)()/ ------------------------------------------------------------------ 0 43 Bra 3 Any 4 20 CBra 1 8 36 Recurse 11 0 Recurse 14 4 CBra 2 18 4 Ket 21 14 Recurse 24 5 Alt 27 \1 29 4 Alt 32 $ 33 29 Ket 36 4 CBra 3 40 4 Ket 43 43 Ket 46 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 ------------------------------------------------------------------ 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 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 ------------------------------------------------------------------ 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 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 ------------------------------------------------------------------ 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
# End of testinput8
|