# 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. There are separate output files for # each code unit size. #pattern fullbincode,memory /((?i)b)/ /(?s)(.*X|^B)/ /(?s:.*X|^B)/ /^[[:alnum:]]/ /#/Ix /a#/Ix /x?+/ /x++/ /x{1,3}+/ /(x)*+/ /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ "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" "\$\<\.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" /(a(?1)b)/ /(a(?1)+b)/ /a(?Pb|c)d(?Pe)/ /(?:a(?Pc(?Pd)))(?Pa)/ /(?Pa)...(?P=a)bbb(?P>a)d/ /abc(?C255)de(?C)f/ /abcde/auto_callout /\x{100}/utf /\x{1000}/utf /\x{10000}/utf /\x{100000}/utf /\x{10ffff}/utf /\x{110000}/utf /[\x{ff}]/utf /[\x{100}]/utf /\x80/utf /\xff/utf /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf /\x{D55c}\x{ad6d}\x{C5B4}/I,utf /\x{65e5}\x{672c}\x{8a9e}/I,utf /[\x{100}]/utf /[Z\x{100}]/utf /^[\x{100}\E-\Q\E\x{150}]/utf /^[\QĀ\E-\QŐ\E]/utf /^[\QĀ\E-\QŐ\E/utf /[\p{L}]/ /[\p{^L}]/ /[\P{L}]/ /[\P{^L}]/ /[abc\p{L}\x{0660}]/utf /[\p{Nd}]/utf /[\p{Nd}+-]+/utf /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf /[\x{105}-\x{109}]/i,utf /( ( (?(1)0|) )* )/x /( (?(1)0|)* )/x /[a]/ /[a]/utf /[\xaa]/ /[\xaa]/utf /[^a]/ /[^a]/utf /[^\xaa]/ /[^\xaa]/utf #pattern -memory /[^\d]/utf,ucp /[[:^alpha:][:^cntrl:]]+/utf,ucp /[[:^cntrl:][:^alpha:]]+/utf,ucp /[[:alpha:]]+/utf,ucp /[[:^alpha:]\S]+/utf,ucp /abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/ /(((a\2)|(a*)\g<-1>))*a?/ /((?+1)(\1))/ "(?1)(?#?'){2}(a)" /.((?2)(?R)|\1|$)()/ /.((?3)(?R)()(?2)|\1|$)()/ /(?1)()((((((\1++))\x85)+)|))/ # 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 # 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 with it fails in two modes, the error offset differs. /(?'ABC'\[[bar](]{105}*THEN:\[A]{255}\[)]{106}/expand,-fullbincode /(?'ABC'\[[bar](]{106}*THEN:\[A]{255}\[)]{107}/expand,-fullbincode /(?(1)(?1)){8,}+()/debug abcd /(?(1)|a(?1)b){2,}+()/debug abcde /((?1)(?2)(?3)(?4)(?5)(?6)(?7)(?8)(?9)(?9)(?8)(?7)(?6)(?5)(?4)(?3)(?2)(?1)(?0)){2,}()()()()()()()()()/debug # End of testinput8