1*22dc650dSSadaf Ebrahimi# There are two sorts of patterns in this test. A number of them are 2*22dc650dSSadaf Ebrahimi# representative patterns whose lengths and offsets are checked. This is just a 3*22dc650dSSadaf Ebrahimi# doublecheck test to ensure the sizes don't go horribly wrong when something 4*22dc650dSSadaf Ebrahimi# is changed. The operation of these patterns is checked in other tests. 5*22dc650dSSadaf Ebrahimi# 6*22dc650dSSadaf Ebrahimi# This file also contains tests whose output varies with code unit size and/or 7*22dc650dSSadaf Ebrahimi# link size. Unicode support is required for these tests. There are separate 8*22dc650dSSadaf Ebrahimi# output files for each code unit size and link size. 9*22dc650dSSadaf Ebrahimi 10*22dc650dSSadaf Ebrahimi#pattern fullbincode,memory 11*22dc650dSSadaf Ebrahimi 12*22dc650dSSadaf Ebrahimi/((?i)b)/ 13*22dc650dSSadaf Ebrahimi 14*22dc650dSSadaf Ebrahimi/(?s)(.*X|^B)/ 15*22dc650dSSadaf Ebrahimi 16*22dc650dSSadaf Ebrahimi/(?s:.*X|^B)/ 17*22dc650dSSadaf Ebrahimi 18*22dc650dSSadaf Ebrahimi/^[[:alnum:]]/ 19*22dc650dSSadaf Ebrahimi 20*22dc650dSSadaf Ebrahimi/#/Ix 21*22dc650dSSadaf Ebrahimi 22*22dc650dSSadaf Ebrahimi/a#/Ix 23*22dc650dSSadaf Ebrahimi 24*22dc650dSSadaf Ebrahimi/x?+/ 25*22dc650dSSadaf Ebrahimi 26*22dc650dSSadaf Ebrahimi/x++/ 27*22dc650dSSadaf Ebrahimi 28*22dc650dSSadaf Ebrahimi/x{1,3}+/ 29*22dc650dSSadaf Ebrahimi 30*22dc650dSSadaf Ebrahimi/(x)*+/ 31*22dc650dSSadaf Ebrahimi 32*22dc650dSSadaf Ebrahimi/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ 33*22dc650dSSadaf Ebrahimi 34*22dc650dSSadaf Ebrahimi"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" 35*22dc650dSSadaf Ebrahimi 36*22dc650dSSadaf Ebrahimi"\$\<\.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" 37*22dc650dSSadaf Ebrahimi 38*22dc650dSSadaf Ebrahimi/(a(?1)b)/ 39*22dc650dSSadaf Ebrahimi 40*22dc650dSSadaf Ebrahimi/(a(?1)+b)/ 41*22dc650dSSadaf Ebrahimi 42*22dc650dSSadaf Ebrahimi/a(?P<name1>b|c)d(?P<longername2>e)/ 43*22dc650dSSadaf Ebrahimi 44*22dc650dSSadaf Ebrahimi/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/ 45*22dc650dSSadaf Ebrahimi 46*22dc650dSSadaf Ebrahimi/(?P<a>a)...(?P=a)bbb(?P>a)d/ 47*22dc650dSSadaf Ebrahimi 48*22dc650dSSadaf Ebrahimi/abc(?C255)de(?C)f/ 49*22dc650dSSadaf Ebrahimi 50*22dc650dSSadaf Ebrahimi/abcde/auto_callout 51*22dc650dSSadaf Ebrahimi 52*22dc650dSSadaf Ebrahimi/\x{100}/utf 53*22dc650dSSadaf Ebrahimi 54*22dc650dSSadaf Ebrahimi/\x{1000}/utf 55*22dc650dSSadaf Ebrahimi 56*22dc650dSSadaf Ebrahimi/\x{10000}/utf 57*22dc650dSSadaf Ebrahimi 58*22dc650dSSadaf Ebrahimi/\x{100000}/utf 59*22dc650dSSadaf Ebrahimi 60*22dc650dSSadaf Ebrahimi/\x{10ffff}/utf 61*22dc650dSSadaf Ebrahimi 62*22dc650dSSadaf Ebrahimi/\x{110000}/utf 63*22dc650dSSadaf Ebrahimi 64*22dc650dSSadaf Ebrahimi/[\x{ff}]/utf 65*22dc650dSSadaf Ebrahimi 66*22dc650dSSadaf Ebrahimi/[\x{100}]/utf 67*22dc650dSSadaf Ebrahimi 68*22dc650dSSadaf Ebrahimi/\x80/utf 69*22dc650dSSadaf Ebrahimi 70*22dc650dSSadaf Ebrahimi/\xff/utf 71*22dc650dSSadaf Ebrahimi 72*22dc650dSSadaf Ebrahimi/\x{0041}\x{2262}\x{0391}\x{002e}/I,utf 73*22dc650dSSadaf Ebrahimi 74*22dc650dSSadaf Ebrahimi/\x{D55c}\x{ad6d}\x{C5B4}/I,utf 75*22dc650dSSadaf Ebrahimi 76*22dc650dSSadaf Ebrahimi/\x{65e5}\x{672c}\x{8a9e}/I,utf 77*22dc650dSSadaf Ebrahimi 78*22dc650dSSadaf Ebrahimi/[\x{100}]/utf 79*22dc650dSSadaf Ebrahimi 80*22dc650dSSadaf Ebrahimi/[Z\x{100}]/utf 81*22dc650dSSadaf Ebrahimi 82*22dc650dSSadaf Ebrahimi/^[\x{100}\E-\Q\E\x{150}]/utf 83*22dc650dSSadaf Ebrahimi 84*22dc650dSSadaf Ebrahimi/^[\QĀ\E-\QŐ\E]/utf 85*22dc650dSSadaf Ebrahimi 86*22dc650dSSadaf Ebrahimi/^[\QĀ\E-\QŐ\E/utf 87*22dc650dSSadaf Ebrahimi 88*22dc650dSSadaf Ebrahimi/[\p{L}]/ 89*22dc650dSSadaf Ebrahimi 90*22dc650dSSadaf Ebrahimi/[\p{^L}]/ 91*22dc650dSSadaf Ebrahimi 92*22dc650dSSadaf Ebrahimi/[\P{L}]/ 93*22dc650dSSadaf Ebrahimi 94*22dc650dSSadaf Ebrahimi/[\P{^L}]/ 95*22dc650dSSadaf Ebrahimi 96*22dc650dSSadaf Ebrahimi/[abc\p{L}\x{0660}]/utf 97*22dc650dSSadaf Ebrahimi 98*22dc650dSSadaf Ebrahimi/[\p{Nd}]/utf 99*22dc650dSSadaf Ebrahimi 100*22dc650dSSadaf Ebrahimi/[\p{Nd}+-]+/utf 101*22dc650dSSadaf Ebrahimi 102*22dc650dSSadaf Ebrahimi/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf 103*22dc650dSSadaf Ebrahimi 104*22dc650dSSadaf Ebrahimi/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf 105*22dc650dSSadaf Ebrahimi 106*22dc650dSSadaf Ebrahimi/[\x{105}-\x{109}]/i,utf 107*22dc650dSSadaf Ebrahimi 108*22dc650dSSadaf Ebrahimi/( ( (?(1)0|) )* )/x 109*22dc650dSSadaf Ebrahimi 110*22dc650dSSadaf Ebrahimi/( (?(1)0|)* )/x 111*22dc650dSSadaf Ebrahimi 112*22dc650dSSadaf Ebrahimi/[a]/ 113*22dc650dSSadaf Ebrahimi 114*22dc650dSSadaf Ebrahimi/[a]/utf 115*22dc650dSSadaf Ebrahimi 116*22dc650dSSadaf Ebrahimi/[\xaa]/ 117*22dc650dSSadaf Ebrahimi 118*22dc650dSSadaf Ebrahimi/[\xaa]/utf 119*22dc650dSSadaf Ebrahimi 120*22dc650dSSadaf Ebrahimi/[^a]/ 121*22dc650dSSadaf Ebrahimi 122*22dc650dSSadaf Ebrahimi/[^a]/utf 123*22dc650dSSadaf Ebrahimi 124*22dc650dSSadaf Ebrahimi/[^\xaa]/ 125*22dc650dSSadaf Ebrahimi 126*22dc650dSSadaf Ebrahimi/[^\xaa]/utf 127*22dc650dSSadaf Ebrahimi 128*22dc650dSSadaf Ebrahimi#pattern -memory 129*22dc650dSSadaf Ebrahimi 130*22dc650dSSadaf Ebrahimi/[^\d]/utf,ucp 131*22dc650dSSadaf Ebrahimi 132*22dc650dSSadaf Ebrahimi/[[:^alpha:][:^cntrl:]]+/utf,ucp 133*22dc650dSSadaf Ebrahimi 134*22dc650dSSadaf Ebrahimi/[[:^cntrl:][:^alpha:]]+/utf,ucp 135*22dc650dSSadaf Ebrahimi 136*22dc650dSSadaf Ebrahimi/[[:alpha:]]+/utf,ucp 137*22dc650dSSadaf Ebrahimi 138*22dc650dSSadaf Ebrahimi/[[:^alpha:]\S]+/utf,ucp 139*22dc650dSSadaf Ebrahimi 140*22dc650dSSadaf Ebrahimi/abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/ 141*22dc650dSSadaf Ebrahimi 142*22dc650dSSadaf Ebrahimi/(((a\2)|(a*)\g<-1>))*a?/ 143*22dc650dSSadaf Ebrahimi 144*22dc650dSSadaf Ebrahimi/((?+1)(\1))/ 145*22dc650dSSadaf Ebrahimi 146*22dc650dSSadaf Ebrahimi"(?1)(?#?'){2}(a)" 147*22dc650dSSadaf Ebrahimi 148*22dc650dSSadaf Ebrahimi/.((?2)(?R)|\1|$)()/ 149*22dc650dSSadaf Ebrahimi 150*22dc650dSSadaf Ebrahimi/.((?3)(?R)()(?2)|\1|$)()/ 151*22dc650dSSadaf Ebrahimi 152*22dc650dSSadaf Ebrahimi/(?1)()((((((\1++))\x85)+)|))/ 153*22dc650dSSadaf Ebrahimi 154*22dc650dSSadaf Ebrahimi# Check the absolute limit on nesting (?| etc. This varies with code unit 155*22dc650dSSadaf Ebrahimi# width because the workspace is a different number of bytes. It will fail 156*22dc650dSSadaf Ebrahimi# with link size 2 in 8-bit and 16-bit but not in 32-bit. 157*22dc650dSSadaf Ebrahimi 158*22dc650dSSadaf Ebrahimi/(?|(?|(?J:(?|(?x:(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?| 159*22dc650dSSadaf Ebrahimi))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 160*22dc650dSSadaf Ebrahimi/parens_nest_limit=1000,-fullbincode 161*22dc650dSSadaf Ebrahimi 162*22dc650dSSadaf Ebrahimi# Use "expand" to create some very long patterns with nested parentheses, in 163*22dc650dSSadaf Ebrahimi# order to test workspace overflow. Again, this varies with code unit width, 164*22dc650dSSadaf Ebrahimi# and even when it fails in two modes, the error offset differs. It also varies 165*22dc650dSSadaf Ebrahimi# with link size - hence multiple tests with different values. 166*22dc650dSSadaf Ebrahimi 167*22dc650dSSadaf Ebrahimi/(?'ABC'\[[bar](]{792}*THEN:\[A]{255}\[)]{793}/expand,-fullbincode,parens_nest_limit=1000 168*22dc650dSSadaf Ebrahimi 169*22dc650dSSadaf Ebrahimi/(?'ABC'\[[bar](]{793}*THEN:\[A]{255}\[)]{794}/expand,-fullbincode,parens_nest_limit=1000 170*22dc650dSSadaf Ebrahimi 171*22dc650dSSadaf Ebrahimi/(?'ABC'\[[bar](]{1793}*THEN:\[A]{255}\[)]{1794}/expand,-fullbincode,parens_nest_limit=2000 172*22dc650dSSadaf Ebrahimi 173*22dc650dSSadaf Ebrahimi/(?(1)(?1)){8,}+()/debug 174*22dc650dSSadaf Ebrahimi abcd 175*22dc650dSSadaf Ebrahimi 176*22dc650dSSadaf Ebrahimi/(?(1)|a(?1)b){2,}+()/debug 177*22dc650dSSadaf Ebrahimi abcde 178*22dc650dSSadaf Ebrahimi 179*22dc650dSSadaf Ebrahimi/((?1)(?2)(?3)(?4)(?5)(?6)(?7)(?8)(?9)(?9)(?8)(?7)(?6)(?5)(?4)(?3)(?2)(?1)(?0)){2,}()()()()()()()()()/debug 180*22dc650dSSadaf Ebrahimi 181*22dc650dSSadaf Ebrahimi/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([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)/ 182*22dc650dSSadaf Ebrahimi 183*22dc650dSSadaf Ebrahimi/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([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 184*22dc650dSSadaf Ebrahimi 185*22dc650dSSadaf Ebrahimi#pattern -fullbincode 186*22dc650dSSadaf Ebrahimi 187*22dc650dSSadaf Ebrahimi/\[()]{65535}/expand 188*22dc650dSSadaf Ebrahimi 189*22dc650dSSadaf Ebrahimi# End of testinput8 190