# These are a few representative patterns whose lengths and offsets are to be # shown when the link size is 2. This is just a doublecheck test to ensure the # sizes don't go horribly wrong when something is changed. The pattern contents # are all themselves checked in other tests. Unicode, including property # support, is required for these tests. #pattern fullbincode,memory /((?i)b)/ Memory allocation (code space): 24 ------------------------------------------------------------------ 0 9 Bra 2 5 CBra 1 5 /i b 7 5 Ket 9 9 Ket 11 End ------------------------------------------------------------------ /(?s)(.*X|^B)/ Memory allocation (code space): 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 (code space): 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 (code space): 46 ------------------------------------------------------------------ 0 20 Bra 2 ^ 3 [0-9A-Za-z] 20 20 Ket 22 End ------------------------------------------------------------------ /#/Ix Memory allocation (code space): 10 ------------------------------------------------------------------ 0 2 Bra 2 2 Ket 4 End ------------------------------------------------------------------ Capturing subpattern count = 0 May match empty string Options: extended Subject length lower bound = 0 /a#/Ix Memory allocation (code space): 14 ------------------------------------------------------------------ 0 4 Bra 2 a 4 4 Ket 6 End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: extended First code unit = 'a' Subject length lower bound = 1 /x?+/ Memory allocation (code space): 14 ------------------------------------------------------------------ 0 4 Bra 2 x?+ 4 4 Ket 6 End ------------------------------------------------------------------ /x++/ Memory allocation (code space): 14 ------------------------------------------------------------------ 0 4 Bra 2 x++ 4 4 Ket 6 End ------------------------------------------------------------------ /x{1,3}+/ Memory allocation (code space): 20 ------------------------------------------------------------------ 0 7 Bra 2 x 4 x{0,2}+ 7 7 Ket 9 End ------------------------------------------------------------------ /(x)*+/ Memory allocation (code space): 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 (code space): 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\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): 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[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 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\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): 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[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 810 \b 811 811 Ket 813 End ------------------------------------------------------------------ /(a(?1)b)/ Memory allocation (code space): 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 (code space): 40 ------------------------------------------------------------------ 0 17 Bra 2 13 CBra 1 5 a 7 4 Once 9 2 Recurse 11 4 KetRmax 13 b 15 13 Ket 17 17 Ket 19 End ------------------------------------------------------------------ /a(?Pb|c)d(?Pe)/ Memory allocation (code space): 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(?Pc(?Pd)))(?Pa)/ Memory allocation (code space): 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 ------------------------------------------------------------------ /(?Pa)...(?P=a)bbb(?P>a)d/ Memory allocation (code space): 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 (code space): 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 (code space): 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 (code space): 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{100} 4 4 Ket 6 End ------------------------------------------------------------------ /\x{1000}/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{1000} 4 4 Ket 6 End ------------------------------------------------------------------ /\x{10000}/utf Memory allocation (code space): 16 ------------------------------------------------------------------ 0 5 Bra 2 \x{10000} 5 5 Ket 7 End ------------------------------------------------------------------ /\x{100000}/utf Memory allocation (code space): 16 ------------------------------------------------------------------ 0 5 Bra 2 \x{100000} 5 5 Ket 7 End ------------------------------------------------------------------ /\x{10ffff}/utf Memory allocation (code space): 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 (code space): 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{ff} 4 4 Ket 6 End ------------------------------------------------------------------ /[\x{100}]/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{100} 4 4 Ket 6 End ------------------------------------------------------------------ /\x80/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{80} 4 4 Ket 6 End ------------------------------------------------------------------ /\xff/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{ff} 4 4 Ket 6 End ------------------------------------------------------------------ /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf Memory allocation (code space): 26 ------------------------------------------------------------------ 0 10 Bra 2 A\x{2262}\x{391}. 10 10 Ket 12 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): 22 ------------------------------------------------------------------ 0 8 Bra 2 \x{d55c}\x{ad6d}\x{c5b4} 8 8 Ket 10 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): 22 ------------------------------------------------------------------ 0 8 Bra 2 \x{65e5}\x{672c}\x{8a9e} 8 8 Ket 10 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): 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{100} 4 4 Ket 6 End ------------------------------------------------------------------ /[Z\x{100}]/utf Memory allocation (code space): 54 ------------------------------------------------------------------ 0 24 Bra 2 [Z\x{100}] 24 24 Ket 26 End ------------------------------------------------------------------ /^[\x{100}\E-\Q\E\x{150}]/utf Memory allocation (code space): 26 ------------------------------------------------------------------ 0 10 Bra 2 ^ 3 [\x{100}-\x{150}] 10 10 Ket 12 End ------------------------------------------------------------------ /^[\QĀ\E-\QŐ\E]/utf Memory allocation (code space): 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 (code space): 24 ------------------------------------------------------------------ 0 9 Bra 2 [\p{L}] 9 9 Ket 11 End ------------------------------------------------------------------ /[\p{^L}]/ Memory allocation (code space): 24 ------------------------------------------------------------------ 0 9 Bra 2 [\P{L}] 9 9 Ket 11 End ------------------------------------------------------------------ /[\P{L}]/ Memory allocation (code space): 24 ------------------------------------------------------------------ 0 9 Bra 2 [\P{L}] 9 9 Ket 11 End ------------------------------------------------------------------ /[\P{^L}]/ Memory allocation (code space): 24 ------------------------------------------------------------------ 0 9 Bra 2 [\p{L}] 9 9 Ket 11 End ------------------------------------------------------------------ /[abc\p{L}\x{0660}]/utf Memory allocation (code space): 60 ------------------------------------------------------------------ 0 27 Bra 2 [a-c\p{L}\x{660}] 27 27 Ket 29 End ------------------------------------------------------------------ /[\p{Nd}]/utf Memory allocation (code space): 24 ------------------------------------------------------------------ 0 9 Bra 2 [\p{Nd}] 9 9 Ket 11 End ------------------------------------------------------------------ /[\p{Nd}+-]+/utf Memory allocation (code space): 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 (code space): 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 (code space): 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 (code space): 24 ------------------------------------------------------------------ 0 9 Bra 2 [\x{104}-\x{109}] 9 9 Ket 11 End ------------------------------------------------------------------ /( ( (?(1)0|) )* )/x Memory allocation (code space): 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 (code space): 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 (code space): 14 ------------------------------------------------------------------ 0 4 Bra 2 a 4 4 Ket 6 End ------------------------------------------------------------------ /[a]/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 4 Bra 2 a 4 4 Ket 6 End ------------------------------------------------------------------ /[\xaa]/ Memory allocation (code space): 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{aa} 4 4 Ket 6 End ------------------------------------------------------------------ /[\xaa]/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 4 Bra 2 \x{aa} 4 4 Ket 6 End ------------------------------------------------------------------ /[^a]/ Memory allocation (code space): 14 ------------------------------------------------------------------ 0 4 Bra 2 [^a] 4 4 Ket 6 End ------------------------------------------------------------------ /[^a]/utf Memory allocation (code space): 14 ------------------------------------------------------------------ 0 4 Bra 2 [^a] 4 4 Ket 6 End ------------------------------------------------------------------ /[^\xaa]/ Memory allocation (code space): 14 ------------------------------------------------------------------ 0 4 Bra 2 [^\x{aa}] 4 4 Ket 6 End ------------------------------------------------------------------ /[^\xaa]/utf Memory allocation (code space): 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 39 Bra 2 Brazero 3 32 SCBra 1 6 27 Once 8 12 CBra 2 11 7 CBra 3 14 a 16 \2 18 7 Ket 20 11 Alt 22 5 CBra 4 25 a* 27 5 Ket 29 22 Recurse 31 23 Ket 33 27 Ket 35 32 KetRmax 37 a?+ 39 39 Ket 41 End ------------------------------------------------------------------ /((?+1)(\1))/ ------------------------------------------------------------------ 0 20 Bra 2 16 Once 4 12 CBra 1 7 9 Recurse 9 5 CBra 2 12 \1 14 5 Ket 16 12 Ket 18 16 Ket 20 20 Ket 22 End ------------------------------------------------------------------ "(?1)(?#?'){2}(a)" ------------------------------------------------------------------ 0 21 Bra 2 4 Once 4 14 Recurse 6 4 Ket 8 4 Once 10 14 Recurse 12 4 Ket 14 5 CBra 1 17 a 19 5 Ket 21 21 Ket 23 End ------------------------------------------------------------------ /.((?2)(?R)|\1|$)()/ ------------------------------------------------------------------ 0 28 Bra 2 Any 3 18 Once 5 7 CBra 1 8 23 Recurse 10 0 Recurse 12 4 Alt 14 \1 16 3 Alt 18 $ 19 14 Ket 21 18 Ket 23 3 CBra 2 26 3 Ket 28 28 Ket 30 End ------------------------------------------------------------------ /.((?3)(?R)()(?2)|\1|$)()/ ------------------------------------------------------------------ 0 35 Bra 2 Any 3 25 Once 5 14 CBra 1 8 30 Recurse 10 0 Recurse 12 3 CBra 2 15 3 Ket 17 12 Recurse 19 4 Alt 21 \1 23 3 Alt 25 $ 26 21 Ket 28 25 Ket 30 3 CBra 3 33 3 Ket 35 35 Ket 37 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 ------------------------------------------------------------------ # End of testinput8