1*22dc650dSSadaf Ebrahimi# This set of tests checks the API, internals, and non-Perl stuff for UTF 2*22dc650dSSadaf Ebrahimi# support, including Unicode properties. However, tests that give different 3*22dc650dSSadaf Ebrahimi# results in 8-bit, 16-bit, and 32-bit modes are excluded (see tests 10 and 4*22dc650dSSadaf Ebrahimi# 12). 5*22dc650dSSadaf Ebrahimi 6*22dc650dSSadaf Ebrahimi#newline_default lf any anycrlf 7*22dc650dSSadaf Ebrahimi 8*22dc650dSSadaf Ebrahimi# PCRE2 and Perl disagree about the characteristics of certain Unicode 9*22dc650dSSadaf Ebrahimi# characters. For example, 061C was considered by Perl to be Arabic, though 10*22dc650dSSadaf Ebrahimi# it was not listed as such in the Unicode Scripts.txt file for Unicode 8. 11*22dc650dSSadaf Ebrahimi# However, it *is* in that file for Unicode 10, but when I came to re-check, 12*22dc650dSSadaf Ebrahimi# Perl had changed in the meantime, with 5.026 not recognizing it as Arabic. 13*22dc650dSSadaf Ebrahimi 14*22dc650dSSadaf Ebrahimi# 2066-2069 are graphic and printable according to Perl, though they are 15*22dc650dSSadaf Ebrahimi# actually "isolate" control characters. That is why the following tests are 16*22dc650dSSadaf Ebrahimi# here rather than in test 4. 17*22dc650dSSadaf Ebrahimi 18*22dc650dSSadaf Ebrahimi/^[\p{Arabic}]/utf 19*22dc650dSSadaf Ebrahimi \x{061c} 20*22dc650dSSadaf Ebrahimi 21*22dc650dSSadaf Ebrahimi/^[[:graph:]]+$/utf,ucp 22*22dc650dSSadaf Ebrahimi\= Expect no match 23*22dc650dSSadaf Ebrahimi \x{61c} 24*22dc650dSSadaf Ebrahimi \x{2066} 25*22dc650dSSadaf Ebrahimi \x{2067} 26*22dc650dSSadaf Ebrahimi \x{2068} 27*22dc650dSSadaf Ebrahimi \x{2069} 28*22dc650dSSadaf Ebrahimi 29*22dc650dSSadaf Ebrahimi/^[[:print:]]+$/utf,ucp 30*22dc650dSSadaf Ebrahimi\= Expect no match 31*22dc650dSSadaf Ebrahimi \x{61c} 32*22dc650dSSadaf Ebrahimi \x{2066} 33*22dc650dSSadaf Ebrahimi \x{2067} 34*22dc650dSSadaf Ebrahimi \x{2068} 35*22dc650dSSadaf Ebrahimi \x{2069} 36*22dc650dSSadaf Ebrahimi 37*22dc650dSSadaf Ebrahimi/^[[:^graph:]]+$/utf,ucp 38*22dc650dSSadaf Ebrahimi \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{61c}\x{1680} 39*22dc650dSSadaf Ebrahimi \x{2028}\x{2029}\x{202f}\x{2065}\x{2066}\x{2067}\x{2068}\x{2069} 40*22dc650dSSadaf Ebrahimi 41*22dc650dSSadaf Ebrahimi/^[[:^print:]]+$/utf,ucp 42*22dc650dSSadaf Ebrahimi \x{09}\x{1D}\x{85}\x{61c}\x{2028}\x{2029}\x{2065}\x{2066}\x{2067} 43*22dc650dSSadaf Ebrahimi \x{2068}\x{2069} 44*22dc650dSSadaf Ebrahimi 45*22dc650dSSadaf Ebrahimi# Perl does not consider U+180e to be a space character. It is true that it 46*22dc650dSSadaf Ebrahimi# does not appear in the Unicode PropList.txt file as such, but in many other 47*22dc650dSSadaf Ebrahimi# sources it is listed as a space, and has been treated as such in PCRE for 48*22dc650dSSadaf Ebrahimi# a long time. 49*22dc650dSSadaf Ebrahimi 50*22dc650dSSadaf Ebrahimi/^>[[:blank:]]*/utf,ucp 51*22dc650dSSadaf Ebrahimi >\x{20}\x{a0}\x{1680}\x{180e}\x{2000}\x{202f}\x{9}\x{b}\x{2028} 52*22dc650dSSadaf Ebrahimi 53*22dc650dSSadaf Ebrahimi/^A\s+Z/utf,ucp 54*22dc650dSSadaf Ebrahimi A\x{85}\x{180e}\x{2005}Z 55*22dc650dSSadaf Ebrahimi 56*22dc650dSSadaf Ebrahimi/^A[\s]+Z/utf,ucp 57*22dc650dSSadaf Ebrahimi A\x{2005}Z 58*22dc650dSSadaf Ebrahimi A\x{85}\x{2005}Z 59*22dc650dSSadaf Ebrahimi 60*22dc650dSSadaf Ebrahimi/^[[:graph:]]+$/utf,ucp 61*22dc650dSSadaf Ebrahimi\= Expect no match 62*22dc650dSSadaf Ebrahimi \x{180e} 63*22dc650dSSadaf Ebrahimi 64*22dc650dSSadaf Ebrahimi/^[[:print:]]+$/utf,ucp 65*22dc650dSSadaf Ebrahimi \x{180e} 66*22dc650dSSadaf Ebrahimi 67*22dc650dSSadaf Ebrahimi/^[[:^graph:]]+$/utf,ucp 68*22dc650dSSadaf Ebrahimi \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{61c}\x{1680}\x{180e} 69*22dc650dSSadaf Ebrahimi 70*22dc650dSSadaf Ebrahimi/^[[:^print:]]+$/utf,ucp 71*22dc650dSSadaf Ebrahimi\= Expect no match 72*22dc650dSSadaf Ebrahimi \x{180e} 73*22dc650dSSadaf Ebrahimi 74*22dc650dSSadaf Ebrahimi# End of U+180E tests. 75*22dc650dSSadaf Ebrahimi 76*22dc650dSSadaf Ebrahimi# --------------------------------------------------------------------- 77*22dc650dSSadaf Ebrahimi 78*22dc650dSSadaf Ebrahimi/\x{110000}/IB,utf 79*22dc650dSSadaf Ebrahimi 80*22dc650dSSadaf Ebrahimi/\o{4200000}/IB,utf 81*22dc650dSSadaf Ebrahimi 82*22dc650dSSadaf Ebrahimi/\x{ffffffff}/utf 83*22dc650dSSadaf Ebrahimi 84*22dc650dSSadaf Ebrahimi/\o{37777777777}/utf 85*22dc650dSSadaf Ebrahimi 86*22dc650dSSadaf Ebrahimi/\x{100000000}/utf 87*22dc650dSSadaf Ebrahimi 88*22dc650dSSadaf Ebrahimi/\o{77777777777}/utf 89*22dc650dSSadaf Ebrahimi 90*22dc650dSSadaf Ebrahimi/\x{d800}/utf 91*22dc650dSSadaf Ebrahimi 92*22dc650dSSadaf Ebrahimi/\o{154000}/utf 93*22dc650dSSadaf Ebrahimi 94*22dc650dSSadaf Ebrahimi/\x{dfff}/utf 95*22dc650dSSadaf Ebrahimi 96*22dc650dSSadaf Ebrahimi/\o{157777}/utf 97*22dc650dSSadaf Ebrahimi 98*22dc650dSSadaf Ebrahimi/\x{d7ff}/utf 99*22dc650dSSadaf Ebrahimi 100*22dc650dSSadaf Ebrahimi/\o{153777}/utf 101*22dc650dSSadaf Ebrahimi 102*22dc650dSSadaf Ebrahimi/\x{e000}/utf 103*22dc650dSSadaf Ebrahimi 104*22dc650dSSadaf Ebrahimi/\o{170000}/utf 105*22dc650dSSadaf Ebrahimi 106*22dc650dSSadaf Ebrahimi/^\x{100}a\x{1234}/utf 107*22dc650dSSadaf Ebrahimi \x{100}a\x{1234}bcd 108*22dc650dSSadaf Ebrahimi 109*22dc650dSSadaf Ebrahimi/\x{0041}\x{2262}\x{0391}\x{002e}/IB,utf 110*22dc650dSSadaf Ebrahimi \x{0041}\x{2262}\x{0391}\x{002e} 111*22dc650dSSadaf Ebrahimi 112*22dc650dSSadaf Ebrahimi/.{3,5}X/IB,utf 113*22dc650dSSadaf Ebrahimi \x{212ab}\x{212ab}\x{212ab}\x{861}X 114*22dc650dSSadaf Ebrahimi 115*22dc650dSSadaf Ebrahimi/.{3,5}?/IB,utf 116*22dc650dSSadaf Ebrahimi \x{212ab}\x{212ab}\x{212ab}\x{861} 117*22dc650dSSadaf Ebrahimi 118*22dc650dSSadaf Ebrahimi/^[ab]/IB,utf 119*22dc650dSSadaf Ebrahimi bar 120*22dc650dSSadaf Ebrahimi\= Expect no match 121*22dc650dSSadaf Ebrahimi c 122*22dc650dSSadaf Ebrahimi \x{ff} 123*22dc650dSSadaf Ebrahimi \x{100} 124*22dc650dSSadaf Ebrahimi 125*22dc650dSSadaf Ebrahimi/\x{100}*(\d+|"(?1)")/utf 126*22dc650dSSadaf Ebrahimi 1234 127*22dc650dSSadaf Ebrahimi "1234" 128*22dc650dSSadaf Ebrahimi \x{100}1234 129*22dc650dSSadaf Ebrahimi "\x{100}1234" 130*22dc650dSSadaf Ebrahimi \x{100}\x{100}12ab 131*22dc650dSSadaf Ebrahimi \x{100}\x{100}"12" 132*22dc650dSSadaf Ebrahimi\= Expect no match 133*22dc650dSSadaf Ebrahimi \x{100}\x{100}abcd 134*22dc650dSSadaf Ebrahimi 135*22dc650dSSadaf Ebrahimi/\x{100}*/IB,utf 136*22dc650dSSadaf Ebrahimi 137*22dc650dSSadaf Ebrahimi/a\x{100}*/IB,utf 138*22dc650dSSadaf Ebrahimi 139*22dc650dSSadaf Ebrahimi/ab\x{100}*/IB,utf 140*22dc650dSSadaf Ebrahimi 141*22dc650dSSadaf Ebrahimi/[\x{200}-\x{100}]/utf 142*22dc650dSSadaf Ebrahimi 143*22dc650dSSadaf Ebrahimi/[Ā-Ą]/utf 144*22dc650dSSadaf Ebrahimi \x{100} 145*22dc650dSSadaf Ebrahimi \x{104} 146*22dc650dSSadaf Ebrahimi\= Expect no match 147*22dc650dSSadaf Ebrahimi \x{105} 148*22dc650dSSadaf Ebrahimi \x{ff} 149*22dc650dSSadaf Ebrahimi 150*22dc650dSSadaf Ebrahimi/[\xFF]/IB 151*22dc650dSSadaf Ebrahimi >\xff< 152*22dc650dSSadaf Ebrahimi 153*22dc650dSSadaf Ebrahimi/[^\xFF]/IB 154*22dc650dSSadaf Ebrahimi 155*22dc650dSSadaf Ebrahimi/[Ä-Ü]/utf 156*22dc650dSSadaf Ebrahimi Ö # Matches without Study 157*22dc650dSSadaf Ebrahimi \x{d6} 158*22dc650dSSadaf Ebrahimi 159*22dc650dSSadaf Ebrahimi/[Ä-Ü]/utf 160*22dc650dSSadaf Ebrahimi Ö <-- Same with Study 161*22dc650dSSadaf Ebrahimi \x{d6} 162*22dc650dSSadaf Ebrahimi 163*22dc650dSSadaf Ebrahimi/[\x{c4}-\x{dc}]/utf 164*22dc650dSSadaf Ebrahimi Ö # Matches without Study 165*22dc650dSSadaf Ebrahimi \x{d6} 166*22dc650dSSadaf Ebrahimi 167*22dc650dSSadaf Ebrahimi/[\x{c4}-\x{dc}]/utf 168*22dc650dSSadaf Ebrahimi Ö <-- Same with Study 169*22dc650dSSadaf Ebrahimi \x{d6} 170*22dc650dSSadaf Ebrahimi 171*22dc650dSSadaf Ebrahimi/[^\x{100}]abc(xyz(?1))/IB,utf 172*22dc650dSSadaf Ebrahimi 173*22dc650dSSadaf Ebrahimi/(\x{100}(b(?2)c))?/IB,utf 174*22dc650dSSadaf Ebrahimi 175*22dc650dSSadaf Ebrahimi/(\x{100}(b(?2)c)){0,2}/IB,utf 176*22dc650dSSadaf Ebrahimi 177*22dc650dSSadaf Ebrahimi/(\x{100}(b(?1)c))?/IB,utf 178*22dc650dSSadaf Ebrahimi 179*22dc650dSSadaf Ebrahimi/(\x{100}(b(?1)c)){0,2}/IB,utf 180*22dc650dSSadaf Ebrahimi 181*22dc650dSSadaf Ebrahimi/\W/utf 182*22dc650dSSadaf Ebrahimi A.B 183*22dc650dSSadaf Ebrahimi A\x{100}B 184*22dc650dSSadaf Ebrahimi 185*22dc650dSSadaf Ebrahimi/\w/utf 186*22dc650dSSadaf Ebrahimi \x{100}X 187*22dc650dSSadaf Ebrahimi 188*22dc650dSSadaf Ebrahimi# Use no_start_optimize because the first code unit is different in 8-bit from 189*22dc650dSSadaf Ebrahimi# the wider modes. 190*22dc650dSSadaf Ebrahimi 191*22dc650dSSadaf Ebrahimi/^\ሴ/IB,utf,no_start_optimize 192*22dc650dSSadaf Ebrahimi 193*22dc650dSSadaf Ebrahimi/()()()()()()()()()() 194*22dc650dSSadaf Ebrahimi ()()()()()()()()()() 195*22dc650dSSadaf Ebrahimi ()()()()()()()()()() 196*22dc650dSSadaf Ebrahimi ()()()()()()()()()() 197*22dc650dSSadaf Ebrahimi A (x) (?41) B/x,utf 198*22dc650dSSadaf Ebrahimi AxxB 199*22dc650dSSadaf Ebrahimi 200*22dc650dSSadaf Ebrahimi/^[\x{100}\E-\Q\E\x{150}]/B,utf 201*22dc650dSSadaf Ebrahimi 202*22dc650dSSadaf Ebrahimi/^[\QĀ\E-\QŐ\E]/B,utf 203*22dc650dSSadaf Ebrahimi 204*22dc650dSSadaf Ebrahimi/^abc./gmx,newline=any,utf 205*22dc650dSSadaf Ebrahimi abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK 206*22dc650dSSadaf Ebrahimi 207*22dc650dSSadaf Ebrahimi/abc.$/gmx,newline=any,utf 208*22dc650dSSadaf Ebrahimi abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9 209*22dc650dSSadaf Ebrahimi 210*22dc650dSSadaf Ebrahimi/^a\Rb/bsr=unicode,utf 211*22dc650dSSadaf Ebrahimi a\nb 212*22dc650dSSadaf Ebrahimi a\rb 213*22dc650dSSadaf Ebrahimi a\r\nb 214*22dc650dSSadaf Ebrahimi a\x0bb 215*22dc650dSSadaf Ebrahimi a\x0cb 216*22dc650dSSadaf Ebrahimi a\x{85}b 217*22dc650dSSadaf Ebrahimi a\x{2028}b 218*22dc650dSSadaf Ebrahimi a\x{2029}b 219*22dc650dSSadaf Ebrahimi\= Expect no match 220*22dc650dSSadaf Ebrahimi a\n\rb 221*22dc650dSSadaf Ebrahimi 222*22dc650dSSadaf Ebrahimi/^a\R*b/bsr=unicode,utf 223*22dc650dSSadaf Ebrahimi ab 224*22dc650dSSadaf Ebrahimi a\nb 225*22dc650dSSadaf Ebrahimi a\rb 226*22dc650dSSadaf Ebrahimi a\r\nb 227*22dc650dSSadaf Ebrahimi a\x0bb 228*22dc650dSSadaf Ebrahimi a\x0c\x{2028}\x{2029}b 229*22dc650dSSadaf Ebrahimi a\x{85}b 230*22dc650dSSadaf Ebrahimi a\n\rb 231*22dc650dSSadaf Ebrahimi a\n\r\x{85}\x0cb 232*22dc650dSSadaf Ebrahimi 233*22dc650dSSadaf Ebrahimi/^a\R+b/bsr=unicode,utf 234*22dc650dSSadaf Ebrahimi a\nb 235*22dc650dSSadaf Ebrahimi a\rb 236*22dc650dSSadaf Ebrahimi a\r\nb 237*22dc650dSSadaf Ebrahimi a\x0bb 238*22dc650dSSadaf Ebrahimi a\x0c\x{2028}\x{2029}b 239*22dc650dSSadaf Ebrahimi a\x{85}b 240*22dc650dSSadaf Ebrahimi a\n\rb 241*22dc650dSSadaf Ebrahimi a\n\r\x{85}\x0cb 242*22dc650dSSadaf Ebrahimi\= Expect no match 243*22dc650dSSadaf Ebrahimi ab 244*22dc650dSSadaf Ebrahimi 245*22dc650dSSadaf Ebrahimi/^a\R{1,3}b/bsr=unicode,utf 246*22dc650dSSadaf Ebrahimi a\nb 247*22dc650dSSadaf Ebrahimi a\n\rb 248*22dc650dSSadaf Ebrahimi a\n\r\x{85}b 249*22dc650dSSadaf Ebrahimi a\r\n\r\nb 250*22dc650dSSadaf Ebrahimi a\r\n\r\n\r\nb 251*22dc650dSSadaf Ebrahimi a\n\r\n\rb 252*22dc650dSSadaf Ebrahimi a\n\n\r\nb 253*22dc650dSSadaf Ebrahimi\= Expect no match 254*22dc650dSSadaf Ebrahimi a\n\n\n\rb 255*22dc650dSSadaf Ebrahimi a\r 256*22dc650dSSadaf Ebrahimi 257*22dc650dSSadaf Ebrahimi/\H\h\V\v/utf 258*22dc650dSSadaf Ebrahimi X X\x0a 259*22dc650dSSadaf Ebrahimi X\x09X\x0b 260*22dc650dSSadaf Ebrahimi\= Expect no match 261*22dc650dSSadaf Ebrahimi \x{a0} X\x0a 262*22dc650dSSadaf Ebrahimi 263*22dc650dSSadaf Ebrahimi/\H*\h+\V?\v{3,4}/utf 264*22dc650dSSadaf Ebrahimi \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a 265*22dc650dSSadaf Ebrahimi \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a 266*22dc650dSSadaf Ebrahimi \x09\x20\x{a0}\x0a\x0b\x0c 267*22dc650dSSadaf Ebrahimi\= Expect no match 268*22dc650dSSadaf Ebrahimi \x09\x20\x{a0}\x0a\x0b 269*22dc650dSSadaf Ebrahimi 270*22dc650dSSadaf Ebrahimi/\H\h\V\v/utf 271*22dc650dSSadaf Ebrahimi \x{3001}\x{3000}\x{2030}\x{2028} 272*22dc650dSSadaf Ebrahimi X\x{180e}X\x{85} 273*22dc650dSSadaf Ebrahimi\= Expect no match 274*22dc650dSSadaf Ebrahimi \x{2009} X\x0a 275*22dc650dSSadaf Ebrahimi 276*22dc650dSSadaf Ebrahimi/\H*\h+\V?\v{3,4}/utf 277*22dc650dSSadaf Ebrahimi \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a 278*22dc650dSSadaf Ebrahimi \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a 279*22dc650dSSadaf Ebrahimi \x09\x20\x{202f}\x0a\x0b\x0c 280*22dc650dSSadaf Ebrahimi\= Expect no match 281*22dc650dSSadaf Ebrahimi \x09\x{200a}\x{a0}\x{2028}\x0b 282*22dc650dSSadaf Ebrahimi 283*22dc650dSSadaf Ebrahimi/[\h]/B,utf 284*22dc650dSSadaf Ebrahimi >\x{1680} 285*22dc650dSSadaf Ebrahimi 286*22dc650dSSadaf Ebrahimi/[\h]{3,}/B,utf 287*22dc650dSSadaf Ebrahimi >\x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}< 288*22dc650dSSadaf Ebrahimi 289*22dc650dSSadaf Ebrahimi/[\v]/B,utf 290*22dc650dSSadaf Ebrahimi 291*22dc650dSSadaf Ebrahimi/[\H]/B,utf 292*22dc650dSSadaf Ebrahimi 293*22dc650dSSadaf Ebrahimi/[\V]/B,utf 294*22dc650dSSadaf Ebrahimi 295*22dc650dSSadaf Ebrahimi/.*$/newline=any,utf 296*22dc650dSSadaf Ebrahimi \x{1ec5} 297*22dc650dSSadaf Ebrahimi 298*22dc650dSSadaf Ebrahimi/a\Rb/I,bsr=anycrlf,utf 299*22dc650dSSadaf Ebrahimi a\rb 300*22dc650dSSadaf Ebrahimi a\nb 301*22dc650dSSadaf Ebrahimi a\r\nb 302*22dc650dSSadaf Ebrahimi\= Expect no match 303*22dc650dSSadaf Ebrahimi a\x{85}b 304*22dc650dSSadaf Ebrahimi a\x0bb 305*22dc650dSSadaf Ebrahimi 306*22dc650dSSadaf Ebrahimi/a\Rb/I,bsr=unicode,utf 307*22dc650dSSadaf Ebrahimi a\rb 308*22dc650dSSadaf Ebrahimi a\nb 309*22dc650dSSadaf Ebrahimi a\r\nb 310*22dc650dSSadaf Ebrahimi a\x{85}b 311*22dc650dSSadaf Ebrahimi a\x0bb 312*22dc650dSSadaf Ebrahimi 313*22dc650dSSadaf Ebrahimi/a\R?b/I,bsr=anycrlf,utf 314*22dc650dSSadaf Ebrahimi a\rb 315*22dc650dSSadaf Ebrahimi a\nb 316*22dc650dSSadaf Ebrahimi a\r\nb 317*22dc650dSSadaf Ebrahimi\= Expect no match 318*22dc650dSSadaf Ebrahimi a\x{85}b 319*22dc650dSSadaf Ebrahimi a\x0bb 320*22dc650dSSadaf Ebrahimi 321*22dc650dSSadaf Ebrahimi/a\R?b/I,bsr=unicode,utf 322*22dc650dSSadaf Ebrahimi a\rb 323*22dc650dSSadaf Ebrahimi a\nb 324*22dc650dSSadaf Ebrahimi a\r\nb 325*22dc650dSSadaf Ebrahimi a\x{85}b 326*22dc650dSSadaf Ebrahimi a\x0bb 327*22dc650dSSadaf Ebrahimi 328*22dc650dSSadaf Ebrahimi/.*a.*=.b.*/utf,newline=any 329*22dc650dSSadaf Ebrahimi QQQ\x{2029}ABCaXYZ=!bPQR 330*22dc650dSSadaf Ebrahimi\= Expect no match 331*22dc650dSSadaf Ebrahimi a\x{2029}b 332*22dc650dSSadaf Ebrahimi \x61\xe2\x80\xa9\x62 333*22dc650dSSadaf Ebrahimi 334*22dc650dSSadaf Ebrahimi/[[:a\x{100}b:]]/utf 335*22dc650dSSadaf Ebrahimi 336*22dc650dSSadaf Ebrahimi/a[^]b/utf,allow_empty_class,match_unset_backref 337*22dc650dSSadaf Ebrahimi a\x{1234}b 338*22dc650dSSadaf Ebrahimi a\nb 339*22dc650dSSadaf Ebrahimi\= Expect no match 340*22dc650dSSadaf Ebrahimi ab 341*22dc650dSSadaf Ebrahimi 342*22dc650dSSadaf Ebrahimi/a[^]+b/utf,allow_empty_class,match_unset_backref 343*22dc650dSSadaf Ebrahimi aXb 344*22dc650dSSadaf Ebrahimi a\nX\nX\x{1234}b 345*22dc650dSSadaf Ebrahimi\= Expect no match 346*22dc650dSSadaf Ebrahimi ab 347*22dc650dSSadaf Ebrahimi 348*22dc650dSSadaf Ebrahimi/(\x{de})\1/ 349*22dc650dSSadaf Ebrahimi \x{de}\x{de} 350*22dc650dSSadaf Ebrahimi 351*22dc650dSSadaf Ebrahimi/X/newline=any,utf,firstline 352*22dc650dSSadaf Ebrahimi A\x{1ec5}ABCXYZ 353*22dc650dSSadaf Ebrahimi 354*22dc650dSSadaf Ebrahimi/Xa{2,4}b/utf 355*22dc650dSSadaf Ebrahimi X\=ps 356*22dc650dSSadaf Ebrahimi Xa\=ps 357*22dc650dSSadaf Ebrahimi Xaa\=ps 358*22dc650dSSadaf Ebrahimi Xaaa\=ps 359*22dc650dSSadaf Ebrahimi Xaaaa\=ps 360*22dc650dSSadaf Ebrahimi 361*22dc650dSSadaf Ebrahimi/Xa{2,4}?b/utf 362*22dc650dSSadaf Ebrahimi X\=ps 363*22dc650dSSadaf Ebrahimi Xa\=ps 364*22dc650dSSadaf Ebrahimi Xaa\=ps 365*22dc650dSSadaf Ebrahimi Xaaa\=ps 366*22dc650dSSadaf Ebrahimi Xaaaa\=ps 367*22dc650dSSadaf Ebrahimi 368*22dc650dSSadaf Ebrahimi/Xa{2,4}+b/utf 369*22dc650dSSadaf Ebrahimi X\=ps 370*22dc650dSSadaf Ebrahimi Xa\=ps 371*22dc650dSSadaf Ebrahimi Xaa\=ps 372*22dc650dSSadaf Ebrahimi Xaaa\=ps 373*22dc650dSSadaf Ebrahimi Xaaaa\=ps 374*22dc650dSSadaf Ebrahimi 375*22dc650dSSadaf Ebrahimi/X\x{123}{2,4}b/utf 376*22dc650dSSadaf Ebrahimi X\=ps 377*22dc650dSSadaf Ebrahimi X\x{123}\=ps 378*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\=ps 379*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\=ps 380*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\x{123}\=ps 381*22dc650dSSadaf Ebrahimi 382*22dc650dSSadaf Ebrahimi/X\x{123}{2,4}?b/utf 383*22dc650dSSadaf Ebrahimi X\=ps 384*22dc650dSSadaf Ebrahimi X\x{123}\=ps 385*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\=ps 386*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\=ps 387*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\x{123}\=ps 388*22dc650dSSadaf Ebrahimi 389*22dc650dSSadaf Ebrahimi/X\x{123}{2,4}+b/utf 390*22dc650dSSadaf Ebrahimi X\=ps 391*22dc650dSSadaf Ebrahimi X\x{123}\=ps 392*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\=ps 393*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\=ps 394*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\x{123}\=ps 395*22dc650dSSadaf Ebrahimi 396*22dc650dSSadaf Ebrahimi/X\x{123}{2,4}b/utf 397*22dc650dSSadaf Ebrahimi\= Expect no match 398*22dc650dSSadaf Ebrahimi Xx\=ps 399*22dc650dSSadaf Ebrahimi X\x{123}x\=ps 400*22dc650dSSadaf Ebrahimi X\x{123}\x{123}x\=ps 401*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}x\=ps 402*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\x{123}x\=ps 403*22dc650dSSadaf Ebrahimi 404*22dc650dSSadaf Ebrahimi/X\x{123}{2,4}?b/utf 405*22dc650dSSadaf Ebrahimi\= Expect no match 406*22dc650dSSadaf Ebrahimi Xx\=ps 407*22dc650dSSadaf Ebrahimi X\x{123}x\=ps 408*22dc650dSSadaf Ebrahimi X\x{123}\x{123}x\=ps 409*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}x\=ps 410*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\x{123}x\=ps 411*22dc650dSSadaf Ebrahimi 412*22dc650dSSadaf Ebrahimi/X\x{123}{2,4}+b/utf 413*22dc650dSSadaf Ebrahimi\= Expect no match 414*22dc650dSSadaf Ebrahimi Xx\=ps 415*22dc650dSSadaf Ebrahimi X\x{123}x\=ps 416*22dc650dSSadaf Ebrahimi X\x{123}\x{123}x\=ps 417*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}x\=ps 418*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\x{123}x\=ps 419*22dc650dSSadaf Ebrahimi 420*22dc650dSSadaf Ebrahimi/X\d{2,4}b/utf 421*22dc650dSSadaf Ebrahimi X\=ps 422*22dc650dSSadaf Ebrahimi X3\=ps 423*22dc650dSSadaf Ebrahimi X33\=ps 424*22dc650dSSadaf Ebrahimi X333\=ps 425*22dc650dSSadaf Ebrahimi X3333\=ps 426*22dc650dSSadaf Ebrahimi 427*22dc650dSSadaf Ebrahimi/X\d{2,4}?b/utf 428*22dc650dSSadaf Ebrahimi X\=ps 429*22dc650dSSadaf Ebrahimi X3\=ps 430*22dc650dSSadaf Ebrahimi X33\=ps 431*22dc650dSSadaf Ebrahimi X333\=ps 432*22dc650dSSadaf Ebrahimi X3333\=ps 433*22dc650dSSadaf Ebrahimi 434*22dc650dSSadaf Ebrahimi/X\d{2,4}+b/utf 435*22dc650dSSadaf Ebrahimi X\=ps 436*22dc650dSSadaf Ebrahimi X3\=ps 437*22dc650dSSadaf Ebrahimi X33\=ps 438*22dc650dSSadaf Ebrahimi X333\=ps 439*22dc650dSSadaf Ebrahimi X3333\=ps 440*22dc650dSSadaf Ebrahimi 441*22dc650dSSadaf Ebrahimi/X\D{2,4}b/utf 442*22dc650dSSadaf Ebrahimi X\=ps 443*22dc650dSSadaf Ebrahimi Xa\=ps 444*22dc650dSSadaf Ebrahimi Xaa\=ps 445*22dc650dSSadaf Ebrahimi Xaaa\=ps 446*22dc650dSSadaf Ebrahimi Xaaaa\=ps 447*22dc650dSSadaf Ebrahimi 448*22dc650dSSadaf Ebrahimi/X\D{2,4}?b/utf 449*22dc650dSSadaf Ebrahimi X\=ps 450*22dc650dSSadaf Ebrahimi Xa\=ps 451*22dc650dSSadaf Ebrahimi Xaa\=ps 452*22dc650dSSadaf Ebrahimi Xaaa\=ps 453*22dc650dSSadaf Ebrahimi Xaaaa\=ps 454*22dc650dSSadaf Ebrahimi 455*22dc650dSSadaf Ebrahimi/X\D{2,4}+b/utf 456*22dc650dSSadaf Ebrahimi X\=ps 457*22dc650dSSadaf Ebrahimi Xa\=ps 458*22dc650dSSadaf Ebrahimi Xaa\=ps 459*22dc650dSSadaf Ebrahimi Xaaa\=ps 460*22dc650dSSadaf Ebrahimi Xaaaa\=ps 461*22dc650dSSadaf Ebrahimi 462*22dc650dSSadaf Ebrahimi/X\D{2,4}b/utf 463*22dc650dSSadaf Ebrahimi X\=ps 464*22dc650dSSadaf Ebrahimi X\x{123}\=ps 465*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\=ps 466*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\=ps 467*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\x{123}\=ps 468*22dc650dSSadaf Ebrahimi 469*22dc650dSSadaf Ebrahimi/X\D{2,4}?b/utf 470*22dc650dSSadaf Ebrahimi X\=ps 471*22dc650dSSadaf Ebrahimi X\x{123}\=ps 472*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\=ps 473*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\=ps 474*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\x{123}\=ps 475*22dc650dSSadaf Ebrahimi 476*22dc650dSSadaf Ebrahimi/X\D{2,4}+b/utf 477*22dc650dSSadaf Ebrahimi X\=ps 478*22dc650dSSadaf Ebrahimi X\x{123}\=ps 479*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\=ps 480*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\=ps 481*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\x{123}\=ps 482*22dc650dSSadaf Ebrahimi 483*22dc650dSSadaf Ebrahimi/X[abc]{2,4}b/utf 484*22dc650dSSadaf Ebrahimi X\=ps 485*22dc650dSSadaf Ebrahimi Xa\=ps 486*22dc650dSSadaf Ebrahimi Xaa\=ps 487*22dc650dSSadaf Ebrahimi Xaaa\=ps 488*22dc650dSSadaf Ebrahimi Xaaaa\=ps 489*22dc650dSSadaf Ebrahimi 490*22dc650dSSadaf Ebrahimi/X[abc]{2,4}?b/utf 491*22dc650dSSadaf Ebrahimi X\=ps 492*22dc650dSSadaf Ebrahimi Xa\=ps 493*22dc650dSSadaf Ebrahimi Xaa\=ps 494*22dc650dSSadaf Ebrahimi Xaaa\=ps 495*22dc650dSSadaf Ebrahimi Xaaaa\=ps 496*22dc650dSSadaf Ebrahimi 497*22dc650dSSadaf Ebrahimi/X[abc]{2,4}+b/utf 498*22dc650dSSadaf Ebrahimi X\=ps 499*22dc650dSSadaf Ebrahimi Xa\=ps 500*22dc650dSSadaf Ebrahimi Xaa\=ps 501*22dc650dSSadaf Ebrahimi Xaaa\=ps 502*22dc650dSSadaf Ebrahimi Xaaaa\=ps 503*22dc650dSSadaf Ebrahimi 504*22dc650dSSadaf Ebrahimi/X[abc\x{123}]{2,4}b/utf 505*22dc650dSSadaf Ebrahimi X\=ps 506*22dc650dSSadaf Ebrahimi X\x{123}\=ps 507*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\=ps 508*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\=ps 509*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\x{123}\=ps 510*22dc650dSSadaf Ebrahimi 511*22dc650dSSadaf Ebrahimi/X[abc\x{123}]{2,4}?b/utf 512*22dc650dSSadaf Ebrahimi X\=ps 513*22dc650dSSadaf Ebrahimi X\x{123}\=ps 514*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\=ps 515*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\=ps 516*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\x{123}\=ps 517*22dc650dSSadaf Ebrahimi 518*22dc650dSSadaf Ebrahimi/X[abc\x{123}]{2,4}+b/utf 519*22dc650dSSadaf Ebrahimi X\=ps 520*22dc650dSSadaf Ebrahimi X\x{123}\=ps 521*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\=ps 522*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\=ps 523*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\x{123}\=ps 524*22dc650dSSadaf Ebrahimi 525*22dc650dSSadaf Ebrahimi/X[^a]{2,4}b/utf 526*22dc650dSSadaf Ebrahimi X\=ps 527*22dc650dSSadaf Ebrahimi Xz\=ps 528*22dc650dSSadaf Ebrahimi Xzz\=ps 529*22dc650dSSadaf Ebrahimi Xzzz\=ps 530*22dc650dSSadaf Ebrahimi Xzzzz\=ps 531*22dc650dSSadaf Ebrahimi 532*22dc650dSSadaf Ebrahimi/X[^a]{2,4}?b/utf 533*22dc650dSSadaf Ebrahimi X\=ps 534*22dc650dSSadaf Ebrahimi Xz\=ps 535*22dc650dSSadaf Ebrahimi Xzz\=ps 536*22dc650dSSadaf Ebrahimi Xzzz\=ps 537*22dc650dSSadaf Ebrahimi Xzzzz\=ps 538*22dc650dSSadaf Ebrahimi 539*22dc650dSSadaf Ebrahimi/X[^a]{2,4}+b/utf 540*22dc650dSSadaf Ebrahimi X\=ps 541*22dc650dSSadaf Ebrahimi Xz\=ps 542*22dc650dSSadaf Ebrahimi Xzz\=ps 543*22dc650dSSadaf Ebrahimi Xzzz\=ps 544*22dc650dSSadaf Ebrahimi Xzzzz\=ps 545*22dc650dSSadaf Ebrahimi 546*22dc650dSSadaf Ebrahimi/X[^a]{2,4}b/utf 547*22dc650dSSadaf Ebrahimi X\=ps 548*22dc650dSSadaf Ebrahimi X\x{123}\=ps 549*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\=ps 550*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\=ps 551*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\x{123}\=ps 552*22dc650dSSadaf Ebrahimi 553*22dc650dSSadaf Ebrahimi/X[^a]{2,4}?b/utf 554*22dc650dSSadaf Ebrahimi X\=ps 555*22dc650dSSadaf Ebrahimi X\x{123}\=ps 556*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\=ps 557*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\=ps 558*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\x{123}\=ps 559*22dc650dSSadaf Ebrahimi 560*22dc650dSSadaf Ebrahimi/X[^a]{2,4}+b/utf 561*22dc650dSSadaf Ebrahimi X\=ps 562*22dc650dSSadaf Ebrahimi X\x{123}\=ps 563*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\=ps 564*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\=ps 565*22dc650dSSadaf Ebrahimi X\x{123}\x{123}\x{123}\x{123}\=ps 566*22dc650dSSadaf Ebrahimi 567*22dc650dSSadaf Ebrahimi/(Y)X\1{2,4}b/utf 568*22dc650dSSadaf Ebrahimi YX\=ps 569*22dc650dSSadaf Ebrahimi YXY\=ps 570*22dc650dSSadaf Ebrahimi YXYY\=ps 571*22dc650dSSadaf Ebrahimi YXYYY\=ps 572*22dc650dSSadaf Ebrahimi YXYYYY\=ps 573*22dc650dSSadaf Ebrahimi 574*22dc650dSSadaf Ebrahimi/(Y)X\1{2,4}?b/utf 575*22dc650dSSadaf Ebrahimi YX\=ps 576*22dc650dSSadaf Ebrahimi YXY\=ps 577*22dc650dSSadaf Ebrahimi YXYY\=ps 578*22dc650dSSadaf Ebrahimi YXYYY\=ps 579*22dc650dSSadaf Ebrahimi YXYYYY\=ps 580*22dc650dSSadaf Ebrahimi 581*22dc650dSSadaf Ebrahimi/(Y)X\1{2,4}+b/utf 582*22dc650dSSadaf Ebrahimi YX\=ps 583*22dc650dSSadaf Ebrahimi YXY\=ps 584*22dc650dSSadaf Ebrahimi YXYY\=ps 585*22dc650dSSadaf Ebrahimi YXYYY\=ps 586*22dc650dSSadaf Ebrahimi YXYYYY\=ps 587*22dc650dSSadaf Ebrahimi 588*22dc650dSSadaf Ebrahimi/(\x{123})X\1{2,4}b/utf 589*22dc650dSSadaf Ebrahimi \x{123}X\=ps 590*22dc650dSSadaf Ebrahimi \x{123}X\x{123}\=ps 591*22dc650dSSadaf Ebrahimi \x{123}X\x{123}\x{123}\=ps 592*22dc650dSSadaf Ebrahimi \x{123}X\x{123}\x{123}\x{123}\=ps 593*22dc650dSSadaf Ebrahimi \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps 594*22dc650dSSadaf Ebrahimi 595*22dc650dSSadaf Ebrahimi/(\x{123})X\1{2,4}?b/utf 596*22dc650dSSadaf Ebrahimi \x{123}X\=ps 597*22dc650dSSadaf Ebrahimi \x{123}X\x{123}\=ps 598*22dc650dSSadaf Ebrahimi \x{123}X\x{123}\x{123}\=ps 599*22dc650dSSadaf Ebrahimi \x{123}X\x{123}\x{123}\x{123}\=ps 600*22dc650dSSadaf Ebrahimi \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps 601*22dc650dSSadaf Ebrahimi 602*22dc650dSSadaf Ebrahimi/(\x{123})X\1{2,4}+b/utf 603*22dc650dSSadaf Ebrahimi \x{123}X\=ps 604*22dc650dSSadaf Ebrahimi \x{123}X\x{123}\=ps 605*22dc650dSSadaf Ebrahimi \x{123}X\x{123}\x{123}\=ps 606*22dc650dSSadaf Ebrahimi \x{123}X\x{123}\x{123}\x{123}\=ps 607*22dc650dSSadaf Ebrahimi \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps 608*22dc650dSSadaf Ebrahimi 609*22dc650dSSadaf Ebrahimi/\bthe cat\b/utf 610*22dc650dSSadaf Ebrahimi the cat\=ps 611*22dc650dSSadaf Ebrahimi the cat\=ph 612*22dc650dSSadaf Ebrahimi 613*22dc650dSSadaf Ebrahimi/abcd*/utf 614*22dc650dSSadaf Ebrahimi xxxxabcd\=ps 615*22dc650dSSadaf Ebrahimi xxxxabcd\=ph 616*22dc650dSSadaf Ebrahimi 617*22dc650dSSadaf Ebrahimi/abcd*/i,utf 618*22dc650dSSadaf Ebrahimi xxxxabcd\=ps 619*22dc650dSSadaf Ebrahimi xxxxabcd\=ph 620*22dc650dSSadaf Ebrahimi XXXXABCD\=ps 621*22dc650dSSadaf Ebrahimi XXXXABCD\=ph 622*22dc650dSSadaf Ebrahimi 623*22dc650dSSadaf Ebrahimi/abc\d*/utf 624*22dc650dSSadaf Ebrahimi xxxxabc1\=ps 625*22dc650dSSadaf Ebrahimi xxxxabc1\=ph 626*22dc650dSSadaf Ebrahimi 627*22dc650dSSadaf Ebrahimi/(a)bc\1*/utf 628*22dc650dSSadaf Ebrahimi xxxxabca\=ps 629*22dc650dSSadaf Ebrahimi xxxxabca\=ph 630*22dc650dSSadaf Ebrahimi 631*22dc650dSSadaf Ebrahimi/abc[de]*/utf 632*22dc650dSSadaf Ebrahimi xxxxabcde\=ps 633*22dc650dSSadaf Ebrahimi xxxxabcde\=ph 634*22dc650dSSadaf Ebrahimi 635*22dc650dSSadaf Ebrahimi/X\W{3}X/utf 636*22dc650dSSadaf Ebrahimi X\=ps 637*22dc650dSSadaf Ebrahimi 638*22dc650dSSadaf Ebrahimi/\sxxx\s/utf,tables=2 639*22dc650dSSadaf Ebrahimi AB\x{85}xxx\x{a0}XYZ 640*22dc650dSSadaf Ebrahimi AB\x{a0}xxx\x{85}XYZ 641*22dc650dSSadaf Ebrahimi 642*22dc650dSSadaf Ebrahimi/\S \S/utf,tables=2 643*22dc650dSSadaf Ebrahimi \x{a2} \x{84} 644*22dc650dSSadaf Ebrahimi 645*22dc650dSSadaf Ebrahimi'A#хц'Bx,newline=any,utf 646*22dc650dSSadaf Ebrahimi 647*22dc650dSSadaf Ebrahimi'A#хц 648*22dc650dSSadaf Ebrahimi PQ'Bx,newline=any,utf 649*22dc650dSSadaf Ebrahimi 650*22dc650dSSadaf Ebrahimi/a+#хaa 651*22dc650dSSadaf Ebrahimi z#XX?/Bx,newline=any,utf 652*22dc650dSSadaf Ebrahimi 653*22dc650dSSadaf Ebrahimi/a+#хaa 654*22dc650dSSadaf Ebrahimi z#х?/Bx,newline=any,utf 655*22dc650dSSadaf Ebrahimi 656*22dc650dSSadaf Ebrahimi/\g{A}xxx#bXX(?'A'123) 657*22dc650dSSadaf Ebrahimi(?'A'456)/Bx,newline=any,utf 658*22dc650dSSadaf Ebrahimi 659*22dc650dSSadaf Ebrahimi/\g{A}xxx#bх(?'A'123) 660*22dc650dSSadaf Ebrahimi(?'A'456)/Bx,newline=any,utf 661*22dc650dSSadaf Ebrahimi 662*22dc650dSSadaf Ebrahimi/^\cģ/utf 663*22dc650dSSadaf Ebrahimi 664*22dc650dSSadaf Ebrahimi/(\R*)(.)/s,utf 665*22dc650dSSadaf Ebrahimi \r\n 666*22dc650dSSadaf Ebrahimi \r\r\n\n\r 667*22dc650dSSadaf Ebrahimi \r\r\n\n\r\n 668*22dc650dSSadaf Ebrahimi 669*22dc650dSSadaf Ebrahimi/(\R)*(.)/s,utf 670*22dc650dSSadaf Ebrahimi \r\n 671*22dc650dSSadaf Ebrahimi \r\r\n\n\r 672*22dc650dSSadaf Ebrahimi \r\r\n\n\r\n 673*22dc650dSSadaf Ebrahimi 674*22dc650dSSadaf Ebrahimi/[^\x{1234}]+/Ii,utf 675*22dc650dSSadaf Ebrahimi 676*22dc650dSSadaf Ebrahimi/[^\x{1234}]+?/Ii,utf 677*22dc650dSSadaf Ebrahimi 678*22dc650dSSadaf Ebrahimi/[^\x{1234}]++/Ii,utf 679*22dc650dSSadaf Ebrahimi 680*22dc650dSSadaf Ebrahimi/[^\x{1234}]{2}/Ii,utf 681*22dc650dSSadaf Ebrahimi 682*22dc650dSSadaf Ebrahimi/f.*/ 683*22dc650dSSadaf Ebrahimi for\=ph 684*22dc650dSSadaf Ebrahimi 685*22dc650dSSadaf Ebrahimi/f.*/s 686*22dc650dSSadaf Ebrahimi for\=ph 687*22dc650dSSadaf Ebrahimi 688*22dc650dSSadaf Ebrahimi/f.*/utf 689*22dc650dSSadaf Ebrahimi for\=ph 690*22dc650dSSadaf Ebrahimi 691*22dc650dSSadaf Ebrahimi/f.*/s,utf 692*22dc650dSSadaf Ebrahimi for\=ph 693*22dc650dSSadaf Ebrahimi 694*22dc650dSSadaf Ebrahimi/\x{d7ff}\x{e000}/utf 695*22dc650dSSadaf Ebrahimi 696*22dc650dSSadaf Ebrahimi/\x{d800}/utf 697*22dc650dSSadaf Ebrahimi 698*22dc650dSSadaf Ebrahimi/\x{dfff}/utf 699*22dc650dSSadaf Ebrahimi 700*22dc650dSSadaf Ebrahimi/\h+/utf 701*22dc650dSSadaf Ebrahimi \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000} 702*22dc650dSSadaf Ebrahimi \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000} 703*22dc650dSSadaf Ebrahimi 704*22dc650dSSadaf Ebrahimi/[\h\x{e000}]+/B,utf 705*22dc650dSSadaf Ebrahimi \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000} 706*22dc650dSSadaf Ebrahimi \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000} 707*22dc650dSSadaf Ebrahimi 708*22dc650dSSadaf Ebrahimi/\H+/utf 709*22dc650dSSadaf Ebrahimi \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f} 710*22dc650dSSadaf Ebrahimi \x{2000}\x{200a}\x{1fff}\x{200b} 711*22dc650dSSadaf Ebrahimi \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060} 712*22dc650dSSadaf Ebrahimi \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001} 713*22dc650dSSadaf Ebrahimi 714*22dc650dSSadaf Ebrahimi/[\H\x{d7ff}]+/B,utf 715*22dc650dSSadaf Ebrahimi \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f} 716*22dc650dSSadaf Ebrahimi \x{2000}\x{200a}\x{1fff}\x{200b} 717*22dc650dSSadaf Ebrahimi \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060} 718*22dc650dSSadaf Ebrahimi \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001} 719*22dc650dSSadaf Ebrahimi 720*22dc650dSSadaf Ebrahimi/\v+/utf 721*22dc650dSSadaf Ebrahimi \x{2027}\x{2030}\x{2028}\x{2029} 722*22dc650dSSadaf Ebrahimi \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d 723*22dc650dSSadaf Ebrahimi 724*22dc650dSSadaf Ebrahimi/[\v\x{e000}]+/B,utf 725*22dc650dSSadaf Ebrahimi \x{2027}\x{2030}\x{2028}\x{2029} 726*22dc650dSSadaf Ebrahimi \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d 727*22dc650dSSadaf Ebrahimi 728*22dc650dSSadaf Ebrahimi/\V+/utf 729*22dc650dSSadaf Ebrahimi \x{2028}\x{2029}\x{2027}\x{2030} 730*22dc650dSSadaf Ebrahimi \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86} 731*22dc650dSSadaf Ebrahimi 732*22dc650dSSadaf Ebrahimi/[\V\x{d7ff}]+/B,utf 733*22dc650dSSadaf Ebrahimi \x{2028}\x{2029}\x{2027}\x{2030} 734*22dc650dSSadaf Ebrahimi \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86} 735*22dc650dSSadaf Ebrahimi 736*22dc650dSSadaf Ebrahimi/\R+/bsr=unicode,utf 737*22dc650dSSadaf Ebrahimi \x{2027}\x{2030}\x{2028}\x{2029} 738*22dc650dSSadaf Ebrahimi \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d 739*22dc650dSSadaf Ebrahimi 740*22dc650dSSadaf Ebrahimi/(..)\1/utf 741*22dc650dSSadaf Ebrahimi ab\=ps 742*22dc650dSSadaf Ebrahimi aba\=ps 743*22dc650dSSadaf Ebrahimi abab\=ps 744*22dc650dSSadaf Ebrahimi 745*22dc650dSSadaf Ebrahimi/(..)\1/i,utf 746*22dc650dSSadaf Ebrahimi ab\=ps 747*22dc650dSSadaf Ebrahimi abA\=ps 748*22dc650dSSadaf Ebrahimi aBAb\=ps 749*22dc650dSSadaf Ebrahimi 750*22dc650dSSadaf Ebrahimi/(..)\1{2,}/utf 751*22dc650dSSadaf Ebrahimi ab\=ps 752*22dc650dSSadaf Ebrahimi aba\=ps 753*22dc650dSSadaf Ebrahimi abab\=ps 754*22dc650dSSadaf Ebrahimi ababa\=ps 755*22dc650dSSadaf Ebrahimi ababab\=ps 756*22dc650dSSadaf Ebrahimi ababab\=ph 757*22dc650dSSadaf Ebrahimi abababa\=ps 758*22dc650dSSadaf Ebrahimi abababa\=ph 759*22dc650dSSadaf Ebrahimi 760*22dc650dSSadaf Ebrahimi/(..)\1{2,}/i,utf 761*22dc650dSSadaf Ebrahimi ab\=ps 762*22dc650dSSadaf Ebrahimi aBa\=ps 763*22dc650dSSadaf Ebrahimi aBAb\=ps 764*22dc650dSSadaf Ebrahimi AbaBA\=ps 765*22dc650dSSadaf Ebrahimi abABAb\=ps 766*22dc650dSSadaf Ebrahimi aBAbaB\=ph 767*22dc650dSSadaf Ebrahimi abABabA\=ps 768*22dc650dSSadaf Ebrahimi abaBABa\=ph 769*22dc650dSSadaf Ebrahimi 770*22dc650dSSadaf Ebrahimi/(..)\1{2,}?x/i,utf 771*22dc650dSSadaf Ebrahimi ab\=ps 772*22dc650dSSadaf Ebrahimi abA\=ps 773*22dc650dSSadaf Ebrahimi aBAb\=ps 774*22dc650dSSadaf Ebrahimi abaBA\=ps 775*22dc650dSSadaf Ebrahimi abAbaB\=ps 776*22dc650dSSadaf Ebrahimi abaBabA\=ps 777*22dc650dSSadaf Ebrahimi abAbABaBx\=ps 778*22dc650dSSadaf Ebrahimi 779*22dc650dSSadaf Ebrahimi/./utf,newline=crlf 780*22dc650dSSadaf Ebrahimi \r\=ps 781*22dc650dSSadaf Ebrahimi \r\=ph 782*22dc650dSSadaf Ebrahimi 783*22dc650dSSadaf Ebrahimi/.{2,3}/utf,newline=crlf 784*22dc650dSSadaf Ebrahimi \r\=ps 785*22dc650dSSadaf Ebrahimi \r\=ph 786*22dc650dSSadaf Ebrahimi \r\r\=ps 787*22dc650dSSadaf Ebrahimi \r\r\=ph 788*22dc650dSSadaf Ebrahimi \r\r\r\=ps 789*22dc650dSSadaf Ebrahimi \r\r\r\=ph 790*22dc650dSSadaf Ebrahimi 791*22dc650dSSadaf Ebrahimi/.{2,3}?/utf,newline=crlf 792*22dc650dSSadaf Ebrahimi \r\=ps 793*22dc650dSSadaf Ebrahimi \r\=ph 794*22dc650dSSadaf Ebrahimi \r\r\=ps 795*22dc650dSSadaf Ebrahimi \r\r\=ph 796*22dc650dSSadaf Ebrahimi \r\r\r\=ps 797*22dc650dSSadaf Ebrahimi \r\r\r\=ph 798*22dc650dSSadaf Ebrahimi 799*22dc650dSSadaf Ebrahimi/[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/B,utf 800*22dc650dSSadaf Ebrahimi 801*22dc650dSSadaf Ebrahimi/[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/Bi,utf 802*22dc650dSSadaf Ebrahimi 803*22dc650dSSadaf Ebrahimi/[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/B,utf 804*22dc650dSSadaf Ebrahimi 805*22dc650dSSadaf Ebrahimi/[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/Bi,utf 806*22dc650dSSadaf Ebrahimi 807*22dc650dSSadaf Ebrahimi/(?<=\x{1234}\x{1234})\bxy/I,utf 808*22dc650dSSadaf Ebrahimi 809*22dc650dSSadaf Ebrahimi/(?<!^)ETA/utf 810*22dc650dSSadaf Ebrahimi\= Expect no match 811*22dc650dSSadaf Ebrahimi ETA 812*22dc650dSSadaf Ebrahimi 813*22dc650dSSadaf Ebrahimi/\u0100/B,utf,alt_bsux,allow_empty_class,match_unset_backref 814*22dc650dSSadaf Ebrahimi 815*22dc650dSSadaf Ebrahimi/[\u0100-\u0200]/B,utf,alt_bsux,allow_empty_class,match_unset_backref 816*22dc650dSSadaf Ebrahimi 817*22dc650dSSadaf Ebrahimi/\ud800/utf,alt_bsux,allow_empty_class,match_unset_backref 818*22dc650dSSadaf Ebrahimi 819*22dc650dSSadaf Ebrahimi/^\u{0000000000010ffff}/utf,extra_alt_bsux 820*22dc650dSSadaf Ebrahimi \x{10ffff} 821*22dc650dSSadaf Ebrahimi 822*22dc650dSSadaf Ebrahimi/\u{ 1bb1}/utf,extra_alt_bsux 823*22dc650dSSadaf Ebrahimi u{ 1bb1} 824*22dc650dSSadaf Ebrahimi\= Expect no match 825*22dc650dSSadaf Ebrahimi \x{1bb1} 826*22dc650dSSadaf Ebrahimi 827*22dc650dSSadaf Ebrahimi/\u/utf,alt_bsux 828*22dc650dSSadaf Ebrahimi \\u 829*22dc650dSSadaf Ebrahimi 830*22dc650dSSadaf Ebrahimi/^a+[a\x{200}]/B,utf 831*22dc650dSSadaf Ebrahimi aa 832*22dc650dSSadaf Ebrahimi 833*22dc650dSSadaf Ebrahimi/[b-d\x{200}-\x{250}]*[ae-h]?#[\x{200}-\x{250}]{0,8}[\x00-\xff]*#[\x{200}-\x{250}]+[a-z]/B,utf 834*22dc650dSSadaf Ebrahimi 835*22dc650dSSadaf Ebrahimi/[\p{L}]/IB 836*22dc650dSSadaf Ebrahimi 837*22dc650dSSadaf Ebrahimi/[\p{^L}]/IB 838*22dc650dSSadaf Ebrahimi 839*22dc650dSSadaf Ebrahimi/[\P{L}]/IB 840*22dc650dSSadaf Ebrahimi 841*22dc650dSSadaf Ebrahimi/[\P{^L}]/IB 842*22dc650dSSadaf Ebrahimi 843*22dc650dSSadaf Ebrahimi/[abc\p{L}\x{0660}]/IB,utf 844*22dc650dSSadaf Ebrahimi 845*22dc650dSSadaf Ebrahimi/[\p{Nd}]/IB,utf 846*22dc650dSSadaf Ebrahimi 1234 847*22dc650dSSadaf Ebrahimi 848*22dc650dSSadaf Ebrahimi/[\p{Nd}+-]+/IB,utf 849*22dc650dSSadaf Ebrahimi 1234 850*22dc650dSSadaf Ebrahimi 12-34 851*22dc650dSSadaf Ebrahimi 12+\x{661}-34 852*22dc650dSSadaf Ebrahimi\= Expect no match 853*22dc650dSSadaf Ebrahimi abcd 854*22dc650dSSadaf Ebrahimi 855*22dc650dSSadaf Ebrahimi/(?:[\PPa*]*){8,}/ 856*22dc650dSSadaf Ebrahimi 857*22dc650dSSadaf Ebrahimi/[\P{Any}]/B 858*22dc650dSSadaf Ebrahimi 859*22dc650dSSadaf Ebrahimi/[\P{Any}\E]/B 860*22dc650dSSadaf Ebrahimi 861*22dc650dSSadaf Ebrahimi/(\P{Yi}+\277)/ 862*22dc650dSSadaf Ebrahimi 863*22dc650dSSadaf Ebrahimi/(\P{Yi}+\277)?/ 864*22dc650dSSadaf Ebrahimi 865*22dc650dSSadaf Ebrahimi/(?<=\P{Yi}{3}A)X/ 866*22dc650dSSadaf Ebrahimi 867*22dc650dSSadaf Ebrahimi/\p{Yi}+(\P{Yi}+)(?1)/ 868*22dc650dSSadaf Ebrahimi 869*22dc650dSSadaf Ebrahimi/(\P{Yi}{2}\277)?/ 870*22dc650dSSadaf Ebrahimi 871*22dc650dSSadaf Ebrahimi/[\P{Yi}A]/ 872*22dc650dSSadaf Ebrahimi 873*22dc650dSSadaf Ebrahimi/[\P{Yi}\P{Yi}\P{Yi}A]/ 874*22dc650dSSadaf Ebrahimi 875*22dc650dSSadaf Ebrahimi/[^\P{Yi}A]/ 876*22dc650dSSadaf Ebrahimi 877*22dc650dSSadaf Ebrahimi/[^\P{Yi}\P{Yi}\P{Yi}A]/ 878*22dc650dSSadaf Ebrahimi 879*22dc650dSSadaf Ebrahimi/(\P{Yi}*\277)*/ 880*22dc650dSSadaf Ebrahimi 881*22dc650dSSadaf Ebrahimi/(\P{Yi}*?\277)*/ 882*22dc650dSSadaf Ebrahimi 883*22dc650dSSadaf Ebrahimi/(\p{Yi}*+\277)*/ 884*22dc650dSSadaf Ebrahimi 885*22dc650dSSadaf Ebrahimi/(\P{Yi}?\277)*/ 886*22dc650dSSadaf Ebrahimi 887*22dc650dSSadaf Ebrahimi/(\P{Yi}??\277)*/ 888*22dc650dSSadaf Ebrahimi 889*22dc650dSSadaf Ebrahimi/(\p{Yi}?+\277)*/ 890*22dc650dSSadaf Ebrahimi 891*22dc650dSSadaf Ebrahimi/(\P{Yi}{0,3}\277)*/ 892*22dc650dSSadaf Ebrahimi 893*22dc650dSSadaf Ebrahimi/(\P{Yi}{0,3}?\277)*/ 894*22dc650dSSadaf Ebrahimi 895*22dc650dSSadaf Ebrahimi/(\p{Yi}{0,3}+\277)*/ 896*22dc650dSSadaf Ebrahimi 897*22dc650dSSadaf Ebrahimi/\p{Zl}{2,3}+/B,utf 898*22dc650dSSadaf Ebrahimi 899*22dc650dSSadaf Ebrahimi \x{2028}\x{2028}\x{2028} 900*22dc650dSSadaf Ebrahimi 901*22dc650dSSadaf Ebrahimi/\p{Zl}/B,utf 902*22dc650dSSadaf Ebrahimi 903*22dc650dSSadaf Ebrahimi/\p{Lu}{3}+/B,utf 904*22dc650dSSadaf Ebrahimi 905*22dc650dSSadaf Ebrahimi/\pL{2}+/B,utf 906*22dc650dSSadaf Ebrahimi 907*22dc650dSSadaf Ebrahimi/\p{Cc}{2}+/B,utf 908*22dc650dSSadaf Ebrahimi 909*22dc650dSSadaf Ebrahimi/^\p{Cf}/utf 910*22dc650dSSadaf Ebrahimi \x{180e} 911*22dc650dSSadaf Ebrahimi \x{061c} 912*22dc650dSSadaf Ebrahimi \x{2066} 913*22dc650dSSadaf Ebrahimi \x{2067} 914*22dc650dSSadaf Ebrahimi \x{2068} 915*22dc650dSSadaf Ebrahimi \x{2069} 916*22dc650dSSadaf Ebrahimi 917*22dc650dSSadaf Ebrahimi/^\p{Cs}/utf 918*22dc650dSSadaf Ebrahimi \x{dfff}\=no_utf_check 919*22dc650dSSadaf Ebrahimi\= Expect no match 920*22dc650dSSadaf Ebrahimi \x{09f} 921*22dc650dSSadaf Ebrahimi 922*22dc650dSSadaf Ebrahimi/^\p{Mn}/utf 923*22dc650dSSadaf Ebrahimi \x{1a1b} 924*22dc650dSSadaf Ebrahimi 925*22dc650dSSadaf Ebrahimi/^\p{Pe}/utf 926*22dc650dSSadaf Ebrahimi \x{2309} 927*22dc650dSSadaf Ebrahimi \x{230b} 928*22dc650dSSadaf Ebrahimi 929*22dc650dSSadaf Ebrahimi/^\p{Ps}/utf 930*22dc650dSSadaf Ebrahimi \x{2308} 931*22dc650dSSadaf Ebrahimi \x{230a} 932*22dc650dSSadaf Ebrahimi 933*22dc650dSSadaf Ebrahimi/^\p{Sc}+/utf 934*22dc650dSSadaf Ebrahimi $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6} 935*22dc650dSSadaf Ebrahimi \x{9f2} 936*22dc650dSSadaf Ebrahimi\= Expect no match 937*22dc650dSSadaf Ebrahimi X 938*22dc650dSSadaf Ebrahimi \x{2c2} 939*22dc650dSSadaf Ebrahimi 940*22dc650dSSadaf Ebrahimi/^\p{Zs}/utf 941*22dc650dSSadaf Ebrahimi \ \ 942*22dc650dSSadaf Ebrahimi \x{a0} 943*22dc650dSSadaf Ebrahimi \x{1680} 944*22dc650dSSadaf Ebrahimi \x{2000} 945*22dc650dSSadaf Ebrahimi \x{2001} 946*22dc650dSSadaf Ebrahimi\= Expect no match 947*22dc650dSSadaf Ebrahimi \x{2028} 948*22dc650dSSadaf Ebrahimi \x{200d} 949*22dc650dSSadaf Ebrahimi 950*22dc650dSSadaf Ebrahimi# These are here because Perl has problems with the negative versions of the 951*22dc650dSSadaf Ebrahimi# properties and has changed how it behaves for caseless matching. 952*22dc650dSSadaf Ebrahimi 953*22dc650dSSadaf Ebrahimi/\p{^Lu}/i,utf 954*22dc650dSSadaf Ebrahimi 1234 955*22dc650dSSadaf Ebrahimi\= Expect no match 956*22dc650dSSadaf Ebrahimi ABC 957*22dc650dSSadaf Ebrahimi 958*22dc650dSSadaf Ebrahimi/\P{Lu}/i,utf 959*22dc650dSSadaf Ebrahimi 1234 960*22dc650dSSadaf Ebrahimi\= Expect no match 961*22dc650dSSadaf Ebrahimi ABC 962*22dc650dSSadaf Ebrahimi 963*22dc650dSSadaf Ebrahimi/\p{Ll}/i,utf 964*22dc650dSSadaf Ebrahimi a 965*22dc650dSSadaf Ebrahimi Az 966*22dc650dSSadaf Ebrahimi\= Expect no match 967*22dc650dSSadaf Ebrahimi ABC 968*22dc650dSSadaf Ebrahimi 969*22dc650dSSadaf Ebrahimi/\p{Lu}/i,utf 970*22dc650dSSadaf Ebrahimi A 971*22dc650dSSadaf Ebrahimi a\x{10a0}B 972*22dc650dSSadaf Ebrahimi\= Expect no match 973*22dc650dSSadaf Ebrahimi a 974*22dc650dSSadaf Ebrahimi \x{1d00} 975*22dc650dSSadaf Ebrahimi 976*22dc650dSSadaf Ebrahimi/\p{Lu}/i,utf 977*22dc650dSSadaf Ebrahimi A 978*22dc650dSSadaf Ebrahimi aZ 979*22dc650dSSadaf Ebrahimi\= Expect no match 980*22dc650dSSadaf Ebrahimi abc 981*22dc650dSSadaf Ebrahimi 982*22dc650dSSadaf Ebrahimi/[\x{c0}\x{391}]/i,utf 983*22dc650dSSadaf Ebrahimi \x{c0} 984*22dc650dSSadaf Ebrahimi \x{e0} 985*22dc650dSSadaf Ebrahimi 986*22dc650dSSadaf Ebrahimi# The next two are special cases where the lengths of the different cases of 987*22dc650dSSadaf Ebrahimi# the same character differ. The first went wrong with heap frame storage; the 988*22dc650dSSadaf Ebrahimi# second was broken in all cases. 989*22dc650dSSadaf Ebrahimi 990*22dc650dSSadaf Ebrahimi/^\x{023a}+?(\x{0130}+)/i,utf 991*22dc650dSSadaf Ebrahimi \x{023a}\x{2c65}\x{0130} 992*22dc650dSSadaf Ebrahimi 993*22dc650dSSadaf Ebrahimi/^\x{023a}+([^X])/i,utf 994*22dc650dSSadaf Ebrahimi \x{023a}\x{2c65}X 995*22dc650dSSadaf Ebrahimi 996*22dc650dSSadaf Ebrahimi/\x{c0}+\x{116}+/i,utf 997*22dc650dSSadaf Ebrahimi \x{c0}\x{e0}\x{116}\x{117} 998*22dc650dSSadaf Ebrahimi 999*22dc650dSSadaf Ebrahimi/[\x{c0}\x{116}]+/i,utf 1000*22dc650dSSadaf Ebrahimi \x{c0}\x{e0}\x{116}\x{117} 1001*22dc650dSSadaf Ebrahimi 1002*22dc650dSSadaf Ebrahimi/(\x{de})\1/i,utf 1003*22dc650dSSadaf Ebrahimi \x{de}\x{de} 1004*22dc650dSSadaf Ebrahimi \x{de}\x{fe} 1005*22dc650dSSadaf Ebrahimi \x{fe}\x{fe} 1006*22dc650dSSadaf Ebrahimi \x{fe}\x{de} 1007*22dc650dSSadaf Ebrahimi 1008*22dc650dSSadaf Ebrahimi/^\x{c0}$/i,utf 1009*22dc650dSSadaf Ebrahimi \x{c0} 1010*22dc650dSSadaf Ebrahimi \x{e0} 1011*22dc650dSSadaf Ebrahimi 1012*22dc650dSSadaf Ebrahimi/^\x{e0}$/i,utf 1013*22dc650dSSadaf Ebrahimi \x{c0} 1014*22dc650dSSadaf Ebrahimi \x{e0} 1015*22dc650dSSadaf Ebrahimi 1016*22dc650dSSadaf Ebrahimi# The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE 1017*22dc650dSSadaf Ebrahimi# will match it only with UCP support, because without that it has no notion 1018*22dc650dSSadaf Ebrahimi# of case for anything other than the ASCII letters. 1019*22dc650dSSadaf Ebrahimi 1020*22dc650dSSadaf Ebrahimi/((?i)[\x{c0}])/utf 1021*22dc650dSSadaf Ebrahimi \x{c0} 1022*22dc650dSSadaf Ebrahimi \x{e0} 1023*22dc650dSSadaf Ebrahimi 1024*22dc650dSSadaf Ebrahimi/(?i:[\x{c0}])/utf 1025*22dc650dSSadaf Ebrahimi \x{c0} 1026*22dc650dSSadaf Ebrahimi \x{e0} 1027*22dc650dSSadaf Ebrahimi 1028*22dc650dSSadaf Ebrahimi# These are PCRE's extra properties to help with Unicodizing \d etc. 1029*22dc650dSSadaf Ebrahimi 1030*22dc650dSSadaf Ebrahimi/^\p{Xan}/utf 1031*22dc650dSSadaf Ebrahimi ABCD 1032*22dc650dSSadaf Ebrahimi 1234 1033*22dc650dSSadaf Ebrahimi \x{6ca} 1034*22dc650dSSadaf Ebrahimi \x{a6c} 1035*22dc650dSSadaf Ebrahimi \x{10a7} 1036*22dc650dSSadaf Ebrahimi\= Expect no match 1037*22dc650dSSadaf Ebrahimi _ABC 1038*22dc650dSSadaf Ebrahimi 1039*22dc650dSSadaf Ebrahimi/^\p{Xan}+/utf 1040*22dc650dSSadaf Ebrahimi ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1041*22dc650dSSadaf Ebrahimi\= Expect no match 1042*22dc650dSSadaf Ebrahimi _ABC 1043*22dc650dSSadaf Ebrahimi 1044*22dc650dSSadaf Ebrahimi/^\p{Xan}+?/utf 1045*22dc650dSSadaf Ebrahimi \x{6ca}\x{a6c}\x{10a7}_ 1046*22dc650dSSadaf Ebrahimi 1047*22dc650dSSadaf Ebrahimi/^\p{Xan}*/utf 1048*22dc650dSSadaf Ebrahimi ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1049*22dc650dSSadaf Ebrahimi 1050*22dc650dSSadaf Ebrahimi/^\p{Xan}{2,9}/utf 1051*22dc650dSSadaf Ebrahimi ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1052*22dc650dSSadaf Ebrahimi 1053*22dc650dSSadaf Ebrahimi/^\p{Xan}{2,9}?/utf 1054*22dc650dSSadaf Ebrahimi \x{6ca}\x{a6c}\x{10a7}_ 1055*22dc650dSSadaf Ebrahimi 1056*22dc650dSSadaf Ebrahimi/^[\p{Xan}]/utf 1057*22dc650dSSadaf Ebrahimi ABCD1234_ 1058*22dc650dSSadaf Ebrahimi 1234abcd_ 1059*22dc650dSSadaf Ebrahimi \x{6ca} 1060*22dc650dSSadaf Ebrahimi \x{a6c} 1061*22dc650dSSadaf Ebrahimi \x{10a7} 1062*22dc650dSSadaf Ebrahimi\= Expect no match 1063*22dc650dSSadaf Ebrahimi _ABC 1064*22dc650dSSadaf Ebrahimi 1065*22dc650dSSadaf Ebrahimi/^[\p{Xan}]+/utf 1066*22dc650dSSadaf Ebrahimi ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1067*22dc650dSSadaf Ebrahimi\= Expect no match 1068*22dc650dSSadaf Ebrahimi _ABC 1069*22dc650dSSadaf Ebrahimi 1070*22dc650dSSadaf Ebrahimi/^>\p{Xsp}/utf 1071*22dc650dSSadaf Ebrahimi >\x{1680}\x{2028}\x{0b} 1072*22dc650dSSadaf Ebrahimi >\x{a0} 1073*22dc650dSSadaf Ebrahimi\= Expect no match 1074*22dc650dSSadaf Ebrahimi \x{0b} 1075*22dc650dSSadaf Ebrahimi 1076*22dc650dSSadaf Ebrahimi/^>\p{Xsp}+/utf 1077*22dc650dSSadaf Ebrahimi > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1078*22dc650dSSadaf Ebrahimi 1079*22dc650dSSadaf Ebrahimi/^>\p{Xsp}+?/utf 1080*22dc650dSSadaf Ebrahimi >\x{1680}\x{2028}\x{0b} 1081*22dc650dSSadaf Ebrahimi 1082*22dc650dSSadaf Ebrahimi/^>\p{Xsp}*/utf 1083*22dc650dSSadaf Ebrahimi > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1084*22dc650dSSadaf Ebrahimi 1085*22dc650dSSadaf Ebrahimi/^>\p{Xsp}{2,9}/utf 1086*22dc650dSSadaf Ebrahimi > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1087*22dc650dSSadaf Ebrahimi 1088*22dc650dSSadaf Ebrahimi/^>\p{Xsp}{2,9}?/utf 1089*22dc650dSSadaf Ebrahimi > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1090*22dc650dSSadaf Ebrahimi 1091*22dc650dSSadaf Ebrahimi/^>[\p{Xsp}]/utf 1092*22dc650dSSadaf Ebrahimi >\x{2028}\x{0b} 1093*22dc650dSSadaf Ebrahimi 1094*22dc650dSSadaf Ebrahimi/^>[\p{Xsp}]+/utf 1095*22dc650dSSadaf Ebrahimi > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1096*22dc650dSSadaf Ebrahimi 1097*22dc650dSSadaf Ebrahimi/^>\p{Xps}/utf 1098*22dc650dSSadaf Ebrahimi >\x{1680}\x{2028}\x{0b} 1099*22dc650dSSadaf Ebrahimi >\x{a0} 1100*22dc650dSSadaf Ebrahimi\= Expect no match 1101*22dc650dSSadaf Ebrahimi \x{0b} 1102*22dc650dSSadaf Ebrahimi 1103*22dc650dSSadaf Ebrahimi/^>\p{Xps}+/utf 1104*22dc650dSSadaf Ebrahimi > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1105*22dc650dSSadaf Ebrahimi 1106*22dc650dSSadaf Ebrahimi/^>\p{Xps}+?/utf 1107*22dc650dSSadaf Ebrahimi >\x{1680}\x{2028}\x{0b} 1108*22dc650dSSadaf Ebrahimi 1109*22dc650dSSadaf Ebrahimi/^>\p{Xps}*/utf 1110*22dc650dSSadaf Ebrahimi > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1111*22dc650dSSadaf Ebrahimi 1112*22dc650dSSadaf Ebrahimi/^>\p{Xps}{2,9}/utf 1113*22dc650dSSadaf Ebrahimi > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1114*22dc650dSSadaf Ebrahimi 1115*22dc650dSSadaf Ebrahimi/^>\p{Xps}{2,9}?/utf 1116*22dc650dSSadaf Ebrahimi > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1117*22dc650dSSadaf Ebrahimi 1118*22dc650dSSadaf Ebrahimi/^>[\p{Xps}]/utf 1119*22dc650dSSadaf Ebrahimi >\x{2028}\x{0b} 1120*22dc650dSSadaf Ebrahimi 1121*22dc650dSSadaf Ebrahimi/^>[\p{Xps}]+/utf 1122*22dc650dSSadaf Ebrahimi > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1123*22dc650dSSadaf Ebrahimi 1124*22dc650dSSadaf Ebrahimi/^\p{Xwd}/utf 1125*22dc650dSSadaf Ebrahimi ABCD 1126*22dc650dSSadaf Ebrahimi 1234 1127*22dc650dSSadaf Ebrahimi \x{6ca} 1128*22dc650dSSadaf Ebrahimi \x{a6c} 1129*22dc650dSSadaf Ebrahimi \x{10a7} 1130*22dc650dSSadaf Ebrahimi _ABC 1131*22dc650dSSadaf Ebrahimi\= Expect no match 1132*22dc650dSSadaf Ebrahimi [] 1133*22dc650dSSadaf Ebrahimi 1134*22dc650dSSadaf Ebrahimi/^\p{Xwd}+/utf 1135*22dc650dSSadaf Ebrahimi ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1136*22dc650dSSadaf Ebrahimi 1137*22dc650dSSadaf Ebrahimi/^\p{Xwd}+?/utf 1138*22dc650dSSadaf Ebrahimi \x{6ca}\x{a6c}\x{10a7}_ 1139*22dc650dSSadaf Ebrahimi 1140*22dc650dSSadaf Ebrahimi/^\p{Xwd}*/utf 1141*22dc650dSSadaf Ebrahimi ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1142*22dc650dSSadaf Ebrahimi 1143*22dc650dSSadaf Ebrahimi/^\p{Xwd}{2,9}/utf 1144*22dc650dSSadaf Ebrahimi A_B12\x{6ca}\x{a6c}\x{10a7} 1145*22dc650dSSadaf Ebrahimi 1146*22dc650dSSadaf Ebrahimi/^\p{Xwd}{2,9}?/utf 1147*22dc650dSSadaf Ebrahimi \x{6ca}\x{a6c}\x{10a7}_ 1148*22dc650dSSadaf Ebrahimi 1149*22dc650dSSadaf Ebrahimi/^[\p{Xwd}]/utf 1150*22dc650dSSadaf Ebrahimi ABCD1234_ 1151*22dc650dSSadaf Ebrahimi 1234abcd_ 1152*22dc650dSSadaf Ebrahimi \x{6ca} 1153*22dc650dSSadaf Ebrahimi \x{a6c} 1154*22dc650dSSadaf Ebrahimi \x{10a7} 1155*22dc650dSSadaf Ebrahimi _ABC 1156*22dc650dSSadaf Ebrahimi\= Expect no match 1157*22dc650dSSadaf Ebrahimi [] 1158*22dc650dSSadaf Ebrahimi 1159*22dc650dSSadaf Ebrahimi/^[\p{Xwd}]+/utf 1160*22dc650dSSadaf Ebrahimi ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1161*22dc650dSSadaf Ebrahimi 1162*22dc650dSSadaf Ebrahimi# A check not in UTF-8 mode 1163*22dc650dSSadaf Ebrahimi 1164*22dc650dSSadaf Ebrahimi/^[\p{Xwd}]+/ 1165*22dc650dSSadaf Ebrahimi ABCD1234_ 1166*22dc650dSSadaf Ebrahimi 1167*22dc650dSSadaf Ebrahimi# Some negative checks 1168*22dc650dSSadaf Ebrahimi 1169*22dc650dSSadaf Ebrahimi/^[\P{Xwd}]+/utf 1170*22dc650dSSadaf Ebrahimi !.+\x{019}\x{482}AB 1171*22dc650dSSadaf Ebrahimi 1172*22dc650dSSadaf Ebrahimi/^[\p{^Xwd}]+/utf 1173*22dc650dSSadaf Ebrahimi !.+\x{019}\x{589}AB 1174*22dc650dSSadaf Ebrahimi 1175*22dc650dSSadaf Ebrahimi/[\D]/B,utf,ucp 1176*22dc650dSSadaf Ebrahimi 1\x{3c8}2 1177*22dc650dSSadaf Ebrahimi 1178*22dc650dSSadaf Ebrahimi/[\d]/B,utf,ucp 1179*22dc650dSSadaf Ebrahimi >\x{6f4}< 1180*22dc650dSSadaf Ebrahimi 1181*22dc650dSSadaf Ebrahimi/[\S]/B,utf,ucp 1182*22dc650dSSadaf Ebrahimi \x{1680}\x{6f4}\x{1680} 1183*22dc650dSSadaf Ebrahimi 1184*22dc650dSSadaf Ebrahimi/[\s]/B,utf,ucp 1185*22dc650dSSadaf Ebrahimi >\x{1680}< 1186*22dc650dSSadaf Ebrahimi 1187*22dc650dSSadaf Ebrahimi/[\W]/B,utf,ucp 1188*22dc650dSSadaf Ebrahimi A\x{1735}B 1189*22dc650dSSadaf Ebrahimi 1190*22dc650dSSadaf Ebrahimi/[\w]/B,utf,ucp 1191*22dc650dSSadaf Ebrahimi >\x{1723}< 1192*22dc650dSSadaf Ebrahimi 1193*22dc650dSSadaf Ebrahimi/\D/B,utf,ucp 1194*22dc650dSSadaf Ebrahimi 1\x{3c8}2 1195*22dc650dSSadaf Ebrahimi 1196*22dc650dSSadaf Ebrahimi/\d/B,utf,ucp 1197*22dc650dSSadaf Ebrahimi >\x{6f4}< 1198*22dc650dSSadaf Ebrahimi 1199*22dc650dSSadaf Ebrahimi/\S/B,utf,ucp 1200*22dc650dSSadaf Ebrahimi \x{1680}\x{6f4}\x{1680} 1201*22dc650dSSadaf Ebrahimi 1202*22dc650dSSadaf Ebrahimi/\s/B,utf,ucp 1203*22dc650dSSadaf Ebrahimi >\x{1680}> 1204*22dc650dSSadaf Ebrahimi 1205*22dc650dSSadaf Ebrahimi/\W/B,utf,ucp 1206*22dc650dSSadaf Ebrahimi A\x{1735}B 1207*22dc650dSSadaf Ebrahimi 1208*22dc650dSSadaf Ebrahimi/\w/B,utf,ucp 1209*22dc650dSSadaf Ebrahimi >\x{1723}< 1210*22dc650dSSadaf Ebrahimi 1211*22dc650dSSadaf Ebrahimi/[[:alpha:]]/B,ucp 1212*22dc650dSSadaf Ebrahimi 1213*22dc650dSSadaf Ebrahimi/[[:lower:]]/B,ucp 1214*22dc650dSSadaf Ebrahimi 1215*22dc650dSSadaf Ebrahimi/[[:upper:]]/B,ucp 1216*22dc650dSSadaf Ebrahimi 1217*22dc650dSSadaf Ebrahimi/[[:alnum:]]/B,ucp 1218*22dc650dSSadaf Ebrahimi 1219*22dc650dSSadaf Ebrahimi/[[:ascii:]]/B,ucp 1220*22dc650dSSadaf Ebrahimi 1221*22dc650dSSadaf Ebrahimi/[[:cntrl:]]/B,ucp 1222*22dc650dSSadaf Ebrahimi 1223*22dc650dSSadaf Ebrahimi/[[:digit:]]/B,ucp 1224*22dc650dSSadaf Ebrahimi 1225*22dc650dSSadaf Ebrahimi/[[:digit:]]/B,ucp,ascii_digit 1226*22dc650dSSadaf Ebrahimi 1227*22dc650dSSadaf Ebrahimi/[[:graph:]]/B,ucp 1228*22dc650dSSadaf Ebrahimi 1229*22dc650dSSadaf Ebrahimi/[[:print:]]/B,ucp 1230*22dc650dSSadaf Ebrahimi 1231*22dc650dSSadaf Ebrahimi/[[:punct:]]/B,ucp 1232*22dc650dSSadaf Ebrahimi 1233*22dc650dSSadaf Ebrahimi/[[:space:]]/B,ucp 1234*22dc650dSSadaf Ebrahimi 1235*22dc650dSSadaf Ebrahimi/[[:word:]]/B,ucp 1236*22dc650dSSadaf Ebrahimi 1237*22dc650dSSadaf Ebrahimi/[[:xdigit:]]/B,ucp 1238*22dc650dSSadaf Ebrahimi 1239*22dc650dSSadaf Ebrahimi/[[:xdigit:]]/B,ucp,ascii_digit 1240*22dc650dSSadaf Ebrahimi 1241*22dc650dSSadaf Ebrahimi# Unicode properties for \b and \B 1242*22dc650dSSadaf Ebrahimi 1243*22dc650dSSadaf Ebrahimi/\b...\B/utf,ucp 1244*22dc650dSSadaf Ebrahimi abc_ 1245*22dc650dSSadaf Ebrahimi \x{37e}abc\x{376} 1246*22dc650dSSadaf Ebrahimi \x{37e}\x{376}\x{371}\x{393}\x{394} 1247*22dc650dSSadaf Ebrahimi !\x{c0}++\x{c1}\x{c2} 1248*22dc650dSSadaf Ebrahimi !\x{c0}+++++ 1249*22dc650dSSadaf Ebrahimi 1250*22dc650dSSadaf Ebrahimi# Without PCRE_UCP, non-ASCII always fail, even if < 256 1251*22dc650dSSadaf Ebrahimi 1252*22dc650dSSadaf Ebrahimi/\b...\B/utf 1253*22dc650dSSadaf Ebrahimi abc_ 1254*22dc650dSSadaf Ebrahimi\= Expect no match 1255*22dc650dSSadaf Ebrahimi \x{37e}abc\x{376} 1256*22dc650dSSadaf Ebrahimi \x{37e}\x{376}\x{371}\x{393}\x{394} 1257*22dc650dSSadaf Ebrahimi !\x{c0}++\x{c1}\x{c2} 1258*22dc650dSSadaf Ebrahimi !\x{c0}+++++ 1259*22dc650dSSadaf Ebrahimi 1260*22dc650dSSadaf Ebrahimi# With PCRE_UCP, non-UTF8 chars that are < 256 still check properties 1261*22dc650dSSadaf Ebrahimi 1262*22dc650dSSadaf Ebrahimi/\b...\B/ucp 1263*22dc650dSSadaf Ebrahimi abc_ 1264*22dc650dSSadaf Ebrahimi !\x{c0}++\x{c1}\x{c2} 1265*22dc650dSSadaf Ebrahimi !\x{c0}+++++ 1266*22dc650dSSadaf Ebrahimi 1267*22dc650dSSadaf Ebrahimi# Some of these are silly, but they check various combinations 1268*22dc650dSSadaf Ebrahimi 1269*22dc650dSSadaf Ebrahimi/[[:^alpha:][:^cntrl:]]+/B,utf,ucp 1270*22dc650dSSadaf Ebrahimi 123 1271*22dc650dSSadaf Ebrahimi abc 1272*22dc650dSSadaf Ebrahimi 1273*22dc650dSSadaf Ebrahimi/[[:^cntrl:][:^alpha:]]+/B,utf,ucp 1274*22dc650dSSadaf Ebrahimi 123 1275*22dc650dSSadaf Ebrahimi abc 1276*22dc650dSSadaf Ebrahimi 1277*22dc650dSSadaf Ebrahimi/[[:alpha:]]+/B,utf,ucp 1278*22dc650dSSadaf Ebrahimi abc 1279*22dc650dSSadaf Ebrahimi 1280*22dc650dSSadaf Ebrahimi/[[:^alpha:]\S]+/B,utf,ucp 1281*22dc650dSSadaf Ebrahimi 123 1282*22dc650dSSadaf Ebrahimi abc 1283*22dc650dSSadaf Ebrahimi 1284*22dc650dSSadaf Ebrahimi/[^\d]+/B,utf,ucp 1285*22dc650dSSadaf Ebrahimi abc123 1286*22dc650dSSadaf Ebrahimi abc\x{123} 1287*22dc650dSSadaf Ebrahimi \x{660}abc 1288*22dc650dSSadaf Ebrahimi 1289*22dc650dSSadaf Ebrahimi/\p{Lu}+9\p{Lu}+B\p{Lu}+b/B 1290*22dc650dSSadaf Ebrahimi 1291*22dc650dSSadaf Ebrahimi/\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/B 1292*22dc650dSSadaf Ebrahimi 1293*22dc650dSSadaf Ebrahimi/\P{Lu}+9\P{Lu}+B\P{Lu}+b/B 1294*22dc650dSSadaf Ebrahimi 1295*22dc650dSSadaf Ebrahimi/\p{Han}+X\p{Greek}+\x{370}/B,utf 1296*22dc650dSSadaf Ebrahimi 1297*22dc650dSSadaf Ebrahimi/\p{Xan}+!\p{Xan}+A/B 1298*22dc650dSSadaf Ebrahimi 1299*22dc650dSSadaf Ebrahimi/\p{Xsp}+!\p{Xsp}\t/B 1300*22dc650dSSadaf Ebrahimi 1301*22dc650dSSadaf Ebrahimi/\p{Xps}+!\p{Xps}\t/B 1302*22dc650dSSadaf Ebrahimi 1303*22dc650dSSadaf Ebrahimi/\p{Xwd}+!\p{Xwd}_/B 1304*22dc650dSSadaf Ebrahimi 1305*22dc650dSSadaf Ebrahimi/A+\p{N}A+\dB+\p{N}*B+\d*/B,ucp 1306*22dc650dSSadaf Ebrahimi 1307*22dc650dSSadaf Ebrahimi# These behaved oddly in Perl, so they are kept in this test 1308*22dc650dSSadaf Ebrahimi 1309*22dc650dSSadaf Ebrahimi/(\x{23a}\x{23a}\x{23a})?\1/i,utf 1310*22dc650dSSadaf Ebrahimi\= Expect no match 1311*22dc650dSSadaf Ebrahimi \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} 1312*22dc650dSSadaf Ebrahimi 1313*22dc650dSSadaf Ebrahimi/(ȺȺȺ)?\1/i,utf 1314*22dc650dSSadaf Ebrahimi\= Expect no match 1315*22dc650dSSadaf Ebrahimi ȺȺȺⱥⱥ 1316*22dc650dSSadaf Ebrahimi 1317*22dc650dSSadaf Ebrahimi/(\x{23a}\x{23a}\x{23a})?\1/i,utf 1318*22dc650dSSadaf Ebrahimi \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 1319*22dc650dSSadaf Ebrahimi 1320*22dc650dSSadaf Ebrahimi/(ȺȺȺ)?\1/i,utf 1321*22dc650dSSadaf Ebrahimi ȺȺȺⱥⱥⱥ 1322*22dc650dSSadaf Ebrahimi 1323*22dc650dSSadaf Ebrahimi/(\x{23a}\x{23a}\x{23a})\1/i,utf 1324*22dc650dSSadaf Ebrahimi\= Expect no match 1325*22dc650dSSadaf Ebrahimi \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} 1326*22dc650dSSadaf Ebrahimi 1327*22dc650dSSadaf Ebrahimi/(ȺȺȺ)\1/i,utf 1328*22dc650dSSadaf Ebrahimi\= Expect no match 1329*22dc650dSSadaf Ebrahimi ȺȺȺⱥⱥ 1330*22dc650dSSadaf Ebrahimi 1331*22dc650dSSadaf Ebrahimi/(\x{23a}\x{23a}\x{23a})\1/i,utf 1332*22dc650dSSadaf Ebrahimi \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 1333*22dc650dSSadaf Ebrahimi 1334*22dc650dSSadaf Ebrahimi/(ȺȺȺ)\1/i,utf 1335*22dc650dSSadaf Ebrahimi ȺȺȺⱥⱥⱥ 1336*22dc650dSSadaf Ebrahimi 1337*22dc650dSSadaf Ebrahimi/(\x{2c65}\x{2c65})\1/i,utf 1338*22dc650dSSadaf Ebrahimi \x{2c65}\x{2c65}\x{23a}\x{23a} 1339*22dc650dSSadaf Ebrahimi 1340*22dc650dSSadaf Ebrahimi/(ⱥⱥ)\1/i,utf 1341*22dc650dSSadaf Ebrahimi ⱥⱥȺȺ 1342*22dc650dSSadaf Ebrahimi 1343*22dc650dSSadaf Ebrahimi/(\x{23a}\x{23a}\x{23a})\1Y/i,utf 1344*22dc650dSSadaf Ebrahimi X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ 1345*22dc650dSSadaf Ebrahimi 1346*22dc650dSSadaf Ebrahimi/(\x{2c65}\x{2c65})\1Y/i,utf 1347*22dc650dSSadaf Ebrahimi X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ 1348*22dc650dSSadaf Ebrahimi 1349*22dc650dSSadaf Ebrahimi# These scripts weren't yet in Perl when I added Unicode 6.0.0 to PCRE 1350*22dc650dSSadaf Ebrahimi 1351*22dc650dSSadaf Ebrahimi/^[\p{Batak}]/utf 1352*22dc650dSSadaf Ebrahimi \x{1bc0} 1353*22dc650dSSadaf Ebrahimi \x{1bff} 1354*22dc650dSSadaf Ebrahimi\= Expect no match 1355*22dc650dSSadaf Ebrahimi \x{1bf4} 1356*22dc650dSSadaf Ebrahimi 1357*22dc650dSSadaf Ebrahimi/^[\p{Brahmi}]/utf 1358*22dc650dSSadaf Ebrahimi \x{11000} 1359*22dc650dSSadaf Ebrahimi \x{1106f} 1360*22dc650dSSadaf Ebrahimi\= Expect no match 1361*22dc650dSSadaf Ebrahimi \x{1104e} 1362*22dc650dSSadaf Ebrahimi 1363*22dc650dSSadaf Ebrahimi/^[\p{Mandaic}]/utf 1364*22dc650dSSadaf Ebrahimi \x{840} 1365*22dc650dSSadaf Ebrahimi \x{85e} 1366*22dc650dSSadaf Ebrahimi\= Expect no match 1367*22dc650dSSadaf Ebrahimi \x{85c} 1368*22dc650dSSadaf Ebrahimi \x{85d} 1369*22dc650dSSadaf Ebrahimi 1370*22dc650dSSadaf Ebrahimi/(\X*)(.)/s,utf 1371*22dc650dSSadaf Ebrahimi A\x{300} 1372*22dc650dSSadaf Ebrahimi 1373*22dc650dSSadaf Ebrahimi/^S(\X*)e(\X*)$/utf 1374*22dc650dSSadaf Ebrahimi Stéréo 1375*22dc650dSSadaf Ebrahimi 1376*22dc650dSSadaf Ebrahimi/^\X/utf 1377*22dc650dSSadaf Ebrahimi ́réo 1378*22dc650dSSadaf Ebrahimi 1379*22dc650dSSadaf Ebrahimi/^a\X41z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 1380*22dc650dSSadaf Ebrahimi aX41z 1381*22dc650dSSadaf Ebrahimi\= Expect no match 1382*22dc650dSSadaf Ebrahimi aAz 1383*22dc650dSSadaf Ebrahimi 1384*22dc650dSSadaf Ebrahimi/\X/ 1385*22dc650dSSadaf Ebrahimi a\=ps 1386*22dc650dSSadaf Ebrahimi a\=ph 1387*22dc650dSSadaf Ebrahimi 1388*22dc650dSSadaf Ebrahimi/\Xa/ 1389*22dc650dSSadaf Ebrahimi aa\=ps 1390*22dc650dSSadaf Ebrahimi aa\=ph 1391*22dc650dSSadaf Ebrahimi 1392*22dc650dSSadaf Ebrahimi/\X{2}/ 1393*22dc650dSSadaf Ebrahimi aa\=ps 1394*22dc650dSSadaf Ebrahimi aa\=ph 1395*22dc650dSSadaf Ebrahimi 1396*22dc650dSSadaf Ebrahimi/\X+a/ 1397*22dc650dSSadaf Ebrahimi a\=ps 1398*22dc650dSSadaf Ebrahimi aa\=ps 1399*22dc650dSSadaf Ebrahimi aa\=ph 1400*22dc650dSSadaf Ebrahimi 1401*22dc650dSSadaf Ebrahimi/\X+?a/ 1402*22dc650dSSadaf Ebrahimi a\=ps 1403*22dc650dSSadaf Ebrahimi ab\=ps 1404*22dc650dSSadaf Ebrahimi aa\=ps 1405*22dc650dSSadaf Ebrahimi aa\=ph 1406*22dc650dSSadaf Ebrahimi aba\=ps 1407*22dc650dSSadaf Ebrahimi 1408*22dc650dSSadaf Ebrahimi# These Unicode 6.1.0 scripts are not known to Perl. 1409*22dc650dSSadaf Ebrahimi 1410*22dc650dSSadaf Ebrahimi/\p{Chakma}\d/utf,ucp 1411*22dc650dSSadaf Ebrahimi \x{11100}\x{1113c} 1412*22dc650dSSadaf Ebrahimi 1413*22dc650dSSadaf Ebrahimi/\p{Takri}\d/utf,ucp 1414*22dc650dSSadaf Ebrahimi \x{11680}\x{116c0} 1415*22dc650dSSadaf Ebrahimi 1416*22dc650dSSadaf Ebrahimi/^\X/utf 1417*22dc650dSSadaf Ebrahimi A\=ps 1418*22dc650dSSadaf Ebrahimi A\=ph 1419*22dc650dSSadaf Ebrahimi A\x{300}\x{301}\=ps 1420*22dc650dSSadaf Ebrahimi A\x{300}\x{301}\=ph 1421*22dc650dSSadaf Ebrahimi A\x{301}\=ps 1422*22dc650dSSadaf Ebrahimi A\x{301}\=ph 1423*22dc650dSSadaf Ebrahimi 1424*22dc650dSSadaf Ebrahimi/^\X{2,3}/utf 1425*22dc650dSSadaf Ebrahimi A\=ps 1426*22dc650dSSadaf Ebrahimi A\=ph 1427*22dc650dSSadaf Ebrahimi AA\=ps 1428*22dc650dSSadaf Ebrahimi AA\=ph 1429*22dc650dSSadaf Ebrahimi A\x{300}\x{301}\=ps 1430*22dc650dSSadaf Ebrahimi A\x{300}\x{301}\=ph 1431*22dc650dSSadaf Ebrahimi A\x{300}\x{301}A\x{300}\x{301}\=ps 1432*22dc650dSSadaf Ebrahimi A\x{300}\x{301}A\x{300}\x{301}\=ph 1433*22dc650dSSadaf Ebrahimi 1434*22dc650dSSadaf Ebrahimi/^\X{2}/utf 1435*22dc650dSSadaf Ebrahimi AA\=ps 1436*22dc650dSSadaf Ebrahimi AA\=ph 1437*22dc650dSSadaf Ebrahimi A\x{300}\x{301}A\x{300}\x{301}\=ps 1438*22dc650dSSadaf Ebrahimi A\x{300}\x{301}A\x{300}\x{301}\=ph 1439*22dc650dSSadaf Ebrahimi 1440*22dc650dSSadaf Ebrahimi/^\X+/utf 1441*22dc650dSSadaf Ebrahimi AA\=ps 1442*22dc650dSSadaf Ebrahimi AA\=ph 1443*22dc650dSSadaf Ebrahimi 1444*22dc650dSSadaf Ebrahimi/^\X+?Z/utf 1445*22dc650dSSadaf Ebrahimi AA\=ps 1446*22dc650dSSadaf Ebrahimi AA\=ph 1447*22dc650dSSadaf Ebrahimi 1448*22dc650dSSadaf Ebrahimi/A\x{3a3}B/IBi,utf 1449*22dc650dSSadaf Ebrahimi 1450*22dc650dSSadaf Ebrahimi/[\x{3a3}]/Bi,utf 1451*22dc650dSSadaf Ebrahimi 1452*22dc650dSSadaf Ebrahimi/[^\x{3a3}]/Bi,utf 1453*22dc650dSSadaf Ebrahimi 1454*22dc650dSSadaf Ebrahimi/[\x{3a3}]+/Bi,utf 1455*22dc650dSSadaf Ebrahimi 1456*22dc650dSSadaf Ebrahimi/[^\x{3a3}]+/Bi,utf 1457*22dc650dSSadaf Ebrahimi 1458*22dc650dSSadaf Ebrahimi/a*\x{3a3}/Bi,utf 1459*22dc650dSSadaf Ebrahimi 1460*22dc650dSSadaf Ebrahimi/\x{3a3}+a/Bi,utf 1461*22dc650dSSadaf Ebrahimi 1462*22dc650dSSadaf Ebrahimi/\x{3a3}*\x{3c2}/Bi,utf 1463*22dc650dSSadaf Ebrahimi 1464*22dc650dSSadaf Ebrahimi/\x{3a3}{3}/i,utf,aftertext 1465*22dc650dSSadaf Ebrahimi \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 1466*22dc650dSSadaf Ebrahimi 1467*22dc650dSSadaf Ebrahimi/\x{3a3}{2,4}/i,utf,aftertext 1468*22dc650dSSadaf Ebrahimi \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 1469*22dc650dSSadaf Ebrahimi 1470*22dc650dSSadaf Ebrahimi/\x{3a3}{2,4}?/i,utf,aftertext 1471*22dc650dSSadaf Ebrahimi \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 1472*22dc650dSSadaf Ebrahimi 1473*22dc650dSSadaf Ebrahimi/\x{3a3}+./i,utf,aftertext 1474*22dc650dSSadaf Ebrahimi \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 1475*22dc650dSSadaf Ebrahimi 1476*22dc650dSSadaf Ebrahimi/\x{3a3}++./i,utf,aftertext 1477*22dc650dSSadaf Ebrahimi\= Expect no match 1478*22dc650dSSadaf Ebrahimi \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 1479*22dc650dSSadaf Ebrahimi 1480*22dc650dSSadaf Ebrahimi/\x{3a3}*\x{3c2}/Bi,utf 1481*22dc650dSSadaf Ebrahimi 1482*22dc650dSSadaf Ebrahimi/[^\x{3a3}]*\x{3c2}/Bi,utf 1483*22dc650dSSadaf Ebrahimi 1484*22dc650dSSadaf Ebrahimi/[^a]*\x{3c2}/Bi,utf 1485*22dc650dSSadaf Ebrahimi 1486*22dc650dSSadaf Ebrahimi/ist/Bi,utf 1487*22dc650dSSadaf Ebrahimi\= Expect no match 1488*22dc650dSSadaf Ebrahimi ikt 1489*22dc650dSSadaf Ebrahimi 1490*22dc650dSSadaf Ebrahimi/is+t/i,utf 1491*22dc650dSSadaf Ebrahimi iSs\x{17f}t 1492*22dc650dSSadaf Ebrahimi\= Expect no match 1493*22dc650dSSadaf Ebrahimi ikt 1494*22dc650dSSadaf Ebrahimi 1495*22dc650dSSadaf Ebrahimi/is+?t/i,utf 1496*22dc650dSSadaf Ebrahimi\= Expect no match 1497*22dc650dSSadaf Ebrahimi ikt 1498*22dc650dSSadaf Ebrahimi 1499*22dc650dSSadaf Ebrahimi/is?t/i,utf 1500*22dc650dSSadaf Ebrahimi\= Expect no match 1501*22dc650dSSadaf Ebrahimi ikt 1502*22dc650dSSadaf Ebrahimi 1503*22dc650dSSadaf Ebrahimi/is{2}t/i,utf 1504*22dc650dSSadaf Ebrahimi\= Expect no match 1505*22dc650dSSadaf Ebrahimi iskt 1506*22dc650dSSadaf Ebrahimi 1507*22dc650dSSadaf Ebrahimi# This property is a PCRE special 1508*22dc650dSSadaf Ebrahimi 1509*22dc650dSSadaf Ebrahimi/^\p{Xuc}/utf 1510*22dc650dSSadaf Ebrahimi $abc 1511*22dc650dSSadaf Ebrahimi @abc 1512*22dc650dSSadaf Ebrahimi `abc 1513*22dc650dSSadaf Ebrahimi \x{1234}abc 1514*22dc650dSSadaf Ebrahimi\= Expect no match 1515*22dc650dSSadaf Ebrahimi abc 1516*22dc650dSSadaf Ebrahimi 1517*22dc650dSSadaf Ebrahimi/^\p{Xuc}+/utf 1518*22dc650dSSadaf Ebrahimi $@`\x{a0}\x{1234}\x{e000}** 1519*22dc650dSSadaf Ebrahimi\= Expect no match 1520*22dc650dSSadaf Ebrahimi \x{9f} 1521*22dc650dSSadaf Ebrahimi 1522*22dc650dSSadaf Ebrahimi/^\p{Xuc}+?/utf 1523*22dc650dSSadaf Ebrahimi $@`\x{a0}\x{1234}\x{e000}** 1524*22dc650dSSadaf Ebrahimi\= Expect no match 1525*22dc650dSSadaf Ebrahimi \x{9f} 1526*22dc650dSSadaf Ebrahimi 1527*22dc650dSSadaf Ebrahimi/^\p{Xuc}+?\*/utf 1528*22dc650dSSadaf Ebrahimi $@`\x{a0}\x{1234}\x{e000}** 1529*22dc650dSSadaf Ebrahimi\= Expect no match 1530*22dc650dSSadaf Ebrahimi \x{9f} 1531*22dc650dSSadaf Ebrahimi 1532*22dc650dSSadaf Ebrahimi/^\p{Xuc}++/utf 1533*22dc650dSSadaf Ebrahimi $@`\x{a0}\x{1234}\x{e000}** 1534*22dc650dSSadaf Ebrahimi\= Expect no match 1535*22dc650dSSadaf Ebrahimi \x{9f} 1536*22dc650dSSadaf Ebrahimi 1537*22dc650dSSadaf Ebrahimi/^\p{Xuc}{3,5}/utf 1538*22dc650dSSadaf Ebrahimi $@`\x{a0}\x{1234}\x{e000}** 1539*22dc650dSSadaf Ebrahimi\= Expect no match 1540*22dc650dSSadaf Ebrahimi \x{9f} 1541*22dc650dSSadaf Ebrahimi 1542*22dc650dSSadaf Ebrahimi/^\p{Xuc}{3,5}?/utf 1543*22dc650dSSadaf Ebrahimi $@`\x{a0}\x{1234}\x{e000}** 1544*22dc650dSSadaf Ebrahimi\= Expect no match 1545*22dc650dSSadaf Ebrahimi \x{9f} 1546*22dc650dSSadaf Ebrahimi 1547*22dc650dSSadaf Ebrahimi/^[\p{Xuc}]/utf 1548*22dc650dSSadaf Ebrahimi $@`\x{a0}\x{1234}\x{e000}** 1549*22dc650dSSadaf Ebrahimi\= Expect no match 1550*22dc650dSSadaf Ebrahimi \x{9f} 1551*22dc650dSSadaf Ebrahimi 1552*22dc650dSSadaf Ebrahimi/^[\p{Xuc}]+/utf 1553*22dc650dSSadaf Ebrahimi $@`\x{a0}\x{1234}\x{e000}** 1554*22dc650dSSadaf Ebrahimi\= Expect no match 1555*22dc650dSSadaf Ebrahimi \x{9f} 1556*22dc650dSSadaf Ebrahimi 1557*22dc650dSSadaf Ebrahimi/^\P{Xuc}/utf 1558*22dc650dSSadaf Ebrahimi abc 1559*22dc650dSSadaf Ebrahimi\= Expect no match 1560*22dc650dSSadaf Ebrahimi $abc 1561*22dc650dSSadaf Ebrahimi @abc 1562*22dc650dSSadaf Ebrahimi `abc 1563*22dc650dSSadaf Ebrahimi \x{1234}abc 1564*22dc650dSSadaf Ebrahimi 1565*22dc650dSSadaf Ebrahimi/^[\P{Xuc}]/utf 1566*22dc650dSSadaf Ebrahimi abc 1567*22dc650dSSadaf Ebrahimi\= Expect no match 1568*22dc650dSSadaf Ebrahimi $abc 1569*22dc650dSSadaf Ebrahimi @abc 1570*22dc650dSSadaf Ebrahimi `abc 1571*22dc650dSSadaf Ebrahimi \x{1234}abc 1572*22dc650dSSadaf Ebrahimi 1573*22dc650dSSadaf Ebrahimi# Some auto-possessification tests 1574*22dc650dSSadaf Ebrahimi 1575*22dc650dSSadaf Ebrahimi/\pN+\z/B 1576*22dc650dSSadaf Ebrahimi 1577*22dc650dSSadaf Ebrahimi/\PN+\z/B 1578*22dc650dSSadaf Ebrahimi 1579*22dc650dSSadaf Ebrahimi/\pN+/B 1580*22dc650dSSadaf Ebrahimi 1581*22dc650dSSadaf Ebrahimi/\PN+/B 1582*22dc650dSSadaf Ebrahimi 1583*22dc650dSSadaf Ebrahimi/\p{Any}+\p{Any} \p{Any}+\P{Any} \p{Any}+\p{L&} \p{Any}+\p{L} \p{Any}+\p{Lu} \p{Any}+\p{Han} \p{Any}+\p{Xan} \p{Any}+\p{Xsp} \p{Any}+\p{Xps} \p{Xwd}+\p{Any} \p{Any}+\p{Xuc}/Bx,ucp 1584*22dc650dSSadaf Ebrahimi 1585*22dc650dSSadaf Ebrahimi/\p{L&}+\p{Any} \p{L&}+\p{L&} \P{L&}+\p{L&} \p{L&}+\p{L} \p{L&}+\p{Lu} \p{L&}+\p{Han} \p{L&}+\p{Xan} \p{L&}+\P{Xan} \p{L&}+\p{Xsp} \p{L&}+\p{Xps} \p{Xwd}+\p{L&} \p{L&}+\p{Xuc}/Bx,ucp 1586*22dc650dSSadaf Ebrahimi 1587*22dc650dSSadaf Ebrahimi/\p{N}+\p{Any} \p{N}+\p{L&} \p{N}+\p{L} \p{N}+\P{L} \p{N}+\P{N} \p{N}+\p{Lu} \p{N}+\p{Han} \p{N}+\p{Xan} \p{N}+\p{Xsp} \p{N}+\p{Xps} \p{Xwd}+\p{N} \p{N}+\p{Xuc}/Bx,ucp 1588*22dc650dSSadaf Ebrahimi 1589*22dc650dSSadaf Ebrahimi/\p{Lu}+\p{Any} \p{Lu}+\p{L&} \p{Lu}+\p{L} \p{Lu}+\p{Lu} \P{Lu}+\p{Lu} \p{Lu}+\p{Nd} \p{Lu}+\P{Nd} \p{Lu}+\p{Han} \p{Lu}+\p{Xan} \p{Lu}+\p{Xsp} \p{Lu}+\p{Xps} \p{Xwd}+\p{Lu} \p{Lu}+\p{Xuc}/Bx,ucp 1590*22dc650dSSadaf Ebrahimi 1591*22dc650dSSadaf Ebrahimi/\p{Han}+\p{Lu} \p{Han}+\p{L&} \p{Han}+\p{L} \p{Han}+\p{Lu} \p{Han}+\p{Arabic} \p{Arabic}+\p{Arabic} \p{Han}+\p{Xan} \p{Han}+\p{Xsp} \p{Han}+\p{Xps} \p{Xwd}+\p{Han} \p{Han}+\p{Xuc}/Bx,ucp 1592*22dc650dSSadaf Ebrahimi 1593*22dc650dSSadaf Ebrahimi/\p{Xan}+\p{Any} \p{Xan}+\p{L&} \P{Xan}+\p{L&} \p{Xan}+\p{L} \p{Xan}+\p{Lu} \p{Xan}+\p{Han} \p{Xan}+\p{Xan} \p{Xan}+\P{Xan} \p{Xan}+\p{Xsp} \p{Xan}+\p{Xps} \p{Xwd}+\p{Xan} \p{Xan}+\p{Xuc}/Bx,ucp 1594*22dc650dSSadaf Ebrahimi 1595*22dc650dSSadaf Ebrahimi/\p{Xsp}+\p{Any} \p{Xsp}+\p{L&} \p{Xsp}+\p{L} \p{Xsp}+\p{Lu} \p{Xsp}+\p{Han} \p{Xsp}+\p{Xan} \p{Xsp}+\p{Xsp} \P{Xsp}+\p{Xsp} \p{Xsp}+\p{Xps} \p{Xwd}+\p{Xsp} \p{Xsp}+\p{Xuc}/Bx,ucp 1596*22dc650dSSadaf Ebrahimi 1597*22dc650dSSadaf Ebrahimi/\p{Xwd}+\p{Any} \p{Xwd}+\p{L&} \p{Xwd}+\p{L} \p{Xwd}+\p{Lu} \p{Xwd}+\p{Han} \p{Xwd}+\p{Xan} \p{Xwd}+\p{Xsp} \p{Xwd}+\p{Xps} \p{Xwd}+\p{Xwd} \p{Xwd}+\P{Xwd} \p{Xwd}+\p{Xuc}/Bx,ucp 1598*22dc650dSSadaf Ebrahimi 1599*22dc650dSSadaf Ebrahimi/\p{Xuc}+\p{Any} \p{Xuc}+\p{L&} \p{Xuc}+\p{L} \p{Xuc}+\p{Lu} \p{Xuc}+\p{Han} \p{Xuc}+\p{Xan} \p{Xuc}+\p{Xsp} \p{Xuc}+\p{Xps} \p{Xwd}+\p{Xuc} \p{Xuc}+\p{Xuc} \p{Xuc}+\P{Xuc}/Bx,ucp 1600*22dc650dSSadaf Ebrahimi 1601*22dc650dSSadaf Ebrahimi/\p{N}+\p{Ll} \p{N}+\p{Nd} \p{N}+\P{Nd}/Bx,ucp 1602*22dc650dSSadaf Ebrahimi 1603*22dc650dSSadaf Ebrahimi/\p{Xan}+\p{L} \p{Xan}+\p{N} \p{Xan}+\p{C} \p{Xan}+\P{L} \P{Xan}+\p{N} \p{Xan}+\P{C}/Bx,ucp 1604*22dc650dSSadaf Ebrahimi 1605*22dc650dSSadaf Ebrahimi/\p{L}+\p{Xan} \p{N}+\p{Xan} \p{C}+\p{Xan} \P{L}+\p{Xan} \p{N}+\p{Xan} \P{C}+\p{Xan} \p{L}+\P{Xan}/Bx,ucp 1606*22dc650dSSadaf Ebrahimi 1607*22dc650dSSadaf Ebrahimi/\p{Xan}+\p{Lu} \p{Xan}+\p{Nd} \p{Xan}+\p{Cc} \p{Xan}+\P{Ll} \P{Xan}+\p{No} \p{Xan}+\P{Cf}/Bx,ucp 1608*22dc650dSSadaf Ebrahimi 1609*22dc650dSSadaf Ebrahimi/\p{Lu}+\p{Xan} \p{Nd}+\p{Xan} \p{Cs}+\p{Xan} \P{Lt}+\p{Xan} \p{Nl}+\p{Xan} \P{Cc}+\p{Xan} \p{Lt}+\P{Xan}/Bx,ucp 1610*22dc650dSSadaf Ebrahimi 1611*22dc650dSSadaf Ebrahimi/\w+\p{P} \w+\p{Po} \w+\s \p{Xan}+\s \s+\p{Xan} \s+\w/Bx,ucp 1612*22dc650dSSadaf Ebrahimi 1613*22dc650dSSadaf Ebrahimi/\w+\P{P} \W+\p{Po} \w+\S \P{Xan}+\s \s+\P{Xan} \s+\W/Bx,ucp 1614*22dc650dSSadaf Ebrahimi 1615*22dc650dSSadaf Ebrahimi/\w+\p{Po} \w+\p{Pc} \W+\p{Po} \W+\p{Pc} \w+\P{Po} \w+\P{Pc}/Bx,ucp 1616*22dc650dSSadaf Ebrahimi 1617*22dc650dSSadaf Ebrahimi/\p{Nl}+\p{Xan} \P{Nl}+\p{Xan} \p{Nl}+\P{Xan} \P{Nl}+\P{Xan}/Bx,ucp 1618*22dc650dSSadaf Ebrahimi 1619*22dc650dSSadaf Ebrahimi/\p{Xan}+\p{Nl} \P{Xan}+\p{Nl} \p{Xan}+\P{Nl} \P{Xan}+\P{Nl}/Bx,ucp 1620*22dc650dSSadaf Ebrahimi 1621*22dc650dSSadaf Ebrahimi/\p{Xan}+\p{Nd} \P{Xan}+\p{Nd} \p{Xan}+\P{Nd} \P{Xan}+\P{Nd}/Bx,ucp 1622*22dc650dSSadaf Ebrahimi 1623*22dc650dSSadaf Ebrahimi# End auto-possessification tests 1624*22dc650dSSadaf Ebrahimi 1625*22dc650dSSadaf Ebrahimi/\w+/B,utf,ucp,auto_callout 1626*22dc650dSSadaf Ebrahimi abcd 1627*22dc650dSSadaf Ebrahimi 1628*22dc650dSSadaf Ebrahimi/[\p{N}]?+/B,no_auto_possess 1629*22dc650dSSadaf Ebrahimi 1630*22dc650dSSadaf Ebrahimi/[\p{L}ab]{2,3}+/B,no_auto_possess 1631*22dc650dSSadaf Ebrahimi 1632*22dc650dSSadaf Ebrahimi/\D+\X \d+\X \S+\X \s+\X \W+\X \w+\X \R+\X \H+\X \h+\X \V+\X \v+\X a+\X \n+\X .+\X/Bx 1633*22dc650dSSadaf Ebrahimi 1634*22dc650dSSadaf Ebrahimi/.+\X/Bsx 1635*22dc650dSSadaf Ebrahimi 1636*22dc650dSSadaf Ebrahimi/\X+$/Bmx 1637*22dc650dSSadaf Ebrahimi 1638*22dc650dSSadaf Ebrahimi/\X+\D \X+\d \X+\S \X+\s \X+\W \X+\w \X+. \X+\R \X+\H \X+\h \X+\V \X+\v \X+\X \X+\Z \X+\z \X+$/Bx 1639*22dc650dSSadaf Ebrahimi 1640*22dc650dSSadaf Ebrahimi/\d+\s{0,5}=\s*\S?=\w{0,4}\W*/B,utf,ucp 1641*22dc650dSSadaf Ebrahimi 1642*22dc650dSSadaf Ebrahimi/[RST]+/Bi,utf,ucp 1643*22dc650dSSadaf Ebrahimi 1644*22dc650dSSadaf Ebrahimi/[R-T]+/Bi,utf,ucp 1645*22dc650dSSadaf Ebrahimi 1646*22dc650dSSadaf Ebrahimi/[Q-U]+/Bi,utf,ucp 1647*22dc650dSSadaf Ebrahimi 1648*22dc650dSSadaf Ebrahimi/^s?c/Iim,utf 1649*22dc650dSSadaf Ebrahimi scat 1650*22dc650dSSadaf Ebrahimi 1651*22dc650dSSadaf Ebrahimi/\X?abc/utf,no_start_optimize 1652*22dc650dSSadaf Ebrahimi \xff\x7f\x00\x00\x03\x00\x41\xcc\x80\x41\x{300}\x61\x62\x63\x00\=no_utf_check,offset=06 1653*22dc650dSSadaf Ebrahimi 1654*22dc650dSSadaf Ebrahimi/\x{100}\x{200}\K\x{300}/utf,startchar 1655*22dc650dSSadaf Ebrahimi \x{100}\x{200}\x{300} 1656*22dc650dSSadaf Ebrahimi 1657*22dc650dSSadaf Ebrahimi# Test UTF characters in a substitution 1658*22dc650dSSadaf Ebrahimi 1659*22dc650dSSadaf Ebrahimi/ábc/utf,replace=XሴZ 1660*22dc650dSSadaf Ebrahimi 123ábc123 1661*22dc650dSSadaf Ebrahimi 1662*22dc650dSSadaf Ebrahimi/(?<=abc)(|def)/g,utf,replace=<$0> 1663*22dc650dSSadaf Ebrahimi 123abcáyzabcdef789abcሴqr 1664*22dc650dSSadaf Ebrahimi 1665*22dc650dSSadaf Ebrahimi/[A-`]/iB,utf 1666*22dc650dSSadaf Ebrahimi abcdefghijklmno 1667*22dc650dSSadaf Ebrahimi 1668*22dc650dSSadaf Ebrahimi/(?<=\K\x{17f})/g,utf,aftertext,allow_lookaround_bsk 1669*22dc650dSSadaf Ebrahimi \x{17f}\x{17f}\x{17f}\x{17f}\x{17f} 1670*22dc650dSSadaf Ebrahimi 1671*22dc650dSSadaf Ebrahimi/(?<=\K\x{17f})/altglobal,utf,aftertext,allow_lookaround_bsk 1672*22dc650dSSadaf Ebrahimi \x{17f}\x{17f}\x{17f}\x{17f}\x{17f} 1673*22dc650dSSadaf Ebrahimi 1674*22dc650dSSadaf Ebrahimi"\xa\xf<(.\pZ*\P{Xwd}+^\xa8\3'3yq.::?(?J:()\xd1+!~:3'(8?:)':(?'d'(?'d'^u]!.+.+\\A\Ah(n+?9){7}+\K;(?'X'u'(?'c'(?'z'(?<y>\xb::\xf0'|\xd3(\xae?'w(z\x8?P>l)\x8?P>a)'\H\R\xd1+!!~:3'(?:h$N{26875}\W+?\\=D{2}\x89(?i:Uy0\N({2\xa(\v\x85*){y*\A(()\p{L}+?\P{^Xan}'+?\xff\+pS\?|).{;y*\A(()\p{L}+?\8}\d?1(|)(/1){7}.+[Lp{Me}].\s\xdcC*?(?(<y>))(?<!^)$C((;*?(R))+(\xbf(R))\x8a\X*?\x8a\xb\xd1^9\3*+(\xc1,\k'R'\xb4)\xcc(z\z(?J)(?'X'\x1b(\xb\xd1^9\?'3*+P{^Xan}+?\xff\+(\xc1.]k+\xb'Pm'\xb4)\xcc4f\xa7'\xd1V(?i:U,{2,2})'(?'X'))?-%--\x95$9*\4'|\xd1(\x9c''%\x94$9)#(?'R')3\x7?('P\xed7'\xa8\xb1^u\xeaw\1\0\0\(|(?1){7}.+[\p{Me}].\s\xdcC*^\x14?(?(<y>))(?<!^)$C((;*?(R*?))+(?(R)\x8a\X*?\x8a\xb\xd1^9\3*+|(\xc1,\k'R'\xb4)\xcc! z)\z(?JJ)(?'X';(\xb\xd1^9\?'3*+(\xc1.]k+\xb'Pm'\xb4))':(?'d')(?'RD'(d')|)|$)'|(?<x>\g{d});\g{x}\x11\g{d}\x81\|$((?'X'\'X'(?'W''\x92()'9'\x83*))\xba*\!?^ <){)':;\xcc4'\xd1'(?'X'28))?-%--\x95$9*\4'|\xd1((''e\x94*$9:)*#(?'R')3)\x7?('P\xed')\\x16:;()\x1e\x10*:(?<y>)\xd1+0!~:(?)'d'E:yD!\s(?'R'\x1e;\x10:U))|'\x9g!\xb0*){)\\x16:;()\x1e\x10\x87*:(?<y>)\xd1+!~:(?)'}'\d'E:yD!\s(?'R'\x1e;\x10:U))|'))|)g!\xb0*R+9{29+)#(?'P'})*?pS\{3,}\x85,{0,}l{*UTF)(\xe{7}){3722,{9,}d{2,?|))|{)\(A?&d}}{\xa,}2}){3,}7,l{)22}(,}l:7{2,4}}29\x19+)#?'P'})*v?))\x5" 1675*22dc650dSSadaf Ebrahimi 1676*22dc650dSSadaf Ebrahimi/$(&.+[\p{Me}].\s\xdcC*?(?(<y>))(?<!^)$C((;*?(R))+(?(R)){0,6}?|){12\x8a\X*?\x8a\x0b\xd1^9\3*+(\xc1,\k'P'\xb4)\xcc(z\z(?JJ)(?'X'8};(\x0b\xd1^9\?'3*+(\xc1.]k+\x0b'Pm'\xb4\xcc4'\xd1'(?'X'))?-%--\x95$9*\4'|\xd1(''%\x95*$9)#(?'R')3\x07?('P\xed')\\x16:;()\x1e\x10*:(?<y>)\xd1+!~:(?)''(d'E:yD!\s(?'R'\x1e;\x10:U))|')g!\xb0*){29+))#(?'P'})*?/ 1677*22dc650dSSadaf Ebrahimi 1678*22dc650dSSadaf Ebrahimi"(*UTF)(*UCP)(.UTF).+X(\V+;\^(\D|)!999}(?(?C{7(?C')\H*\S*/^\x5\xa\\xd3\x85n?(;\D*(?m).[^mH+((*UCP)(*U:F)})(?!^)(?'" 1679*22dc650dSSadaf Ebrahimi 1680*22dc650dSSadaf Ebrahimi/[\pS#moq]/ 1681*22dc650dSSadaf Ebrahimi = 1682*22dc650dSSadaf Ebrahimi 1683*22dc650dSSadaf Ebrahimi/(*:a\x{12345}b\t(d\)c)xxx/utf,alt_verbnames,mark 1684*22dc650dSSadaf Ebrahimi cxxxz 1685*22dc650dSSadaf Ebrahimi 1686*22dc650dSSadaf Ebrahimi/abcd/utf,replace=x\x{824}y\o{3333}z(\Q12\$34$$\x34\E5$$),substitute_extended 1687*22dc650dSSadaf Ebrahimi abcd 1688*22dc650dSSadaf Ebrahimi 1689*22dc650dSSadaf Ebrahimi/a(\x{e0}\x{101})(\x{c0}\x{102})/utf,replace=a\u$1\U$1\E$1\l$2\L$2\Eab\U\x{e0}\x{101}\L\x{d0}\x{160}\EDone,substitute_extended 1690*22dc650dSSadaf Ebrahimi a\x{e0}\x{101}\x{c0}\x{102} 1691*22dc650dSSadaf Ebrahimi 1692*22dc650dSSadaf Ebrahimi/((?<digit>\d)|(?<letter>\p{L}))/g,substitute_extended,replace=<${digit:+digit; :not digit; }${letter:+letter:not a letter}> 1693*22dc650dSSadaf Ebrahimi ab12cde 1694*22dc650dSSadaf Ebrahimi 1695*22dc650dSSadaf Ebrahimi/(*UCP)(*UTF)[[:>:]]X/B 1696*22dc650dSSadaf Ebrahimi 1697*22dc650dSSadaf Ebrahimi/abc/utf,replace=xyz 1698*22dc650dSSadaf Ebrahimi abc\=zero_terminate 1699*22dc650dSSadaf Ebrahimi 1700*22dc650dSSadaf Ebrahimi/a[[:punct:]b]/ucp,bincode 1701*22dc650dSSadaf Ebrahimi 1702*22dc650dSSadaf Ebrahimi/a[[:punct:]b]/utf,ucp,bincode 1703*22dc650dSSadaf Ebrahimi 1704*22dc650dSSadaf Ebrahimi/a[b[:punct:]]/utf,ucp,bincode 1705*22dc650dSSadaf Ebrahimi 1706*22dc650dSSadaf Ebrahimi/[[:^ascii:]]/utf,ucp,bincode 1707*22dc650dSSadaf Ebrahimi 1708*22dc650dSSadaf Ebrahimi/[[:^ascii:]\w]/utf,ucp,bincode 1709*22dc650dSSadaf Ebrahimi 1710*22dc650dSSadaf Ebrahimi/[\w[:^ascii:]]/utf,ucp,bincode 1711*22dc650dSSadaf Ebrahimi 1712*22dc650dSSadaf Ebrahimi/[^[:ascii:]\W]/utf,ucp,bincode 1713*22dc650dSSadaf Ebrahimi \x{de} 1714*22dc650dSSadaf Ebrahimi \x{200} 1715*22dc650dSSadaf Ebrahimi\= Expect no match 1716*22dc650dSSadaf Ebrahimi \x{589} 1717*22dc650dSSadaf Ebrahimi \x{37e} 1718*22dc650dSSadaf Ebrahimi 1719*22dc650dSSadaf Ebrahimi/[[:^ascii:]a]/utf,ucp,bincode 1720*22dc650dSSadaf Ebrahimi 1721*22dc650dSSadaf Ebrahimi/L(?#(|++<!(2)?/B,utf,no_auto_possess,auto_callout 1722*22dc650dSSadaf Ebrahimi 1723*22dc650dSSadaf Ebrahimi/L(?#(|++<!(2)?/B,utf,ucp,auto_callout 1724*22dc650dSSadaf Ebrahimi 1725*22dc650dSSadaf Ebrahimi/(*UTF)C\x09((?<!'(?x)!*H? #\xcc\x9a[^$]/ 1726*22dc650dSSadaf Ebrahimi 1727*22dc650dSSadaf Ebrahimi/[\D]/utf 1728*22dc650dSSadaf Ebrahimi \x{1d7cf} 1729*22dc650dSSadaf Ebrahimi 1730*22dc650dSSadaf Ebrahimi/[\D\P{Nd}]/utf 1731*22dc650dSSadaf Ebrahimi \x{1d7cf} 1732*22dc650dSSadaf Ebrahimi 1733*22dc650dSSadaf Ebrahimi/[^\D]/utf 1734*22dc650dSSadaf Ebrahimi a9b 1735*22dc650dSSadaf Ebrahimi\= Expect no match 1736*22dc650dSSadaf Ebrahimi \x{1d7cf} 1737*22dc650dSSadaf Ebrahimi 1738*22dc650dSSadaf Ebrahimi/[^\D\P{Nd}]/utf 1739*22dc650dSSadaf Ebrahimi a9b 1740*22dc650dSSadaf Ebrahimi \x{1d7cf} 1741*22dc650dSSadaf Ebrahimi\= Expect no match 1742*22dc650dSSadaf Ebrahimi \x{10000} 1743*22dc650dSSadaf Ebrahimi 1744*22dc650dSSadaf Ebrahimi# Hex uses pattern length, not zero-terminated. This tests for overrunning 1745*22dc650dSSadaf Ebrahimi# the given length of a pattern. 1746*22dc650dSSadaf Ebrahimi 1747*22dc650dSSadaf Ebrahimi/'(*UTF)'/hex 1748*22dc650dSSadaf Ebrahimi 1749*22dc650dSSadaf Ebrahimi/'#('/hex,extended,utf 1750*22dc650dSSadaf Ebrahimi 1751*22dc650dSSadaf Ebrahimi/a(?<=A\XB)/utf 1752*22dc650dSSadaf Ebrahimi 1753*22dc650dSSadaf Ebrahimi/../utf,auto_callout 1754*22dc650dSSadaf Ebrahimi \n\x{123}\x{123}\x{123}\x{123} 1755*22dc650dSSadaf Ebrahimi 1756*22dc650dSSadaf Ebrahimi# This tests processing wide characters in extended mode. 1757*22dc650dSSadaf Ebrahimi 1758*22dc650dSSadaf Ebrahimi/XȀ/x,utf 1759*22dc650dSSadaf Ebrahimi 1760*22dc650dSSadaf Ebrahimi# These three test a bug fix that was not clearing up after a locale setting 1761*22dc650dSSadaf Ebrahimi# when the test or a subsequent one matched a wide character. 1762*22dc650dSSadaf Ebrahimi 1763*22dc650dSSadaf Ebrahimi//locale=C 1764*22dc650dSSadaf Ebrahimi 1765*22dc650dSSadaf Ebrahimi/[\P{Yi}]/utf 1766*22dc650dSSadaf Ebrahimi\x{2f000} 1767*22dc650dSSadaf Ebrahimi 1768*22dc650dSSadaf Ebrahimi/[\P{Yi}]/utf,locale=C 1769*22dc650dSSadaf Ebrahimi\x{2f000} 1770*22dc650dSSadaf Ebrahimi 1771*22dc650dSSadaf Ebrahimi/^(?<!(?=))/B,utf 1772*22dc650dSSadaf Ebrahimi 1773*22dc650dSSadaf Ebrahimi# Horizontal and vertical space lists ignore caseless 1774*22dc650dSSadaf Ebrahimi 1775*22dc650dSSadaf Ebrahimi/[\HH]/Bi,utf 1776*22dc650dSSadaf Ebrahimi 1777*22dc650dSSadaf Ebrahimi/[^\HH]/Bi,utf 1778*22dc650dSSadaf Ebrahimi 1779*22dc650dSSadaf Ebrahimi//g,utf 1780*22dc650dSSadaf Ebrahimi \=zero_terminate 1781*22dc650dSSadaf Ebrahimi 1782*22dc650dSSadaf Ebrahimi/^(?1)\p{Nd}{3}(a)/ 1783*22dc650dSSadaf Ebrahimi a123a 1784*22dc650dSSadaf Ebrahimi 1785*22dc650dSSadaf Ebrahimi/\p{Nd}{0,3}[\pL](*:abc)(?C1)xxx/callout_info 1786*22dc650dSSadaf Ebrahimi 1787*22dc650dSSadaf Ebrahimi# --------------------------------------------------------------------------- 1788*22dc650dSSadaf Ebrahimi 1789*22dc650dSSadaf Ebrahimi# A bunch of tests that hit lines of code that others do not (at least when 1790*22dc650dSSadaf Ebrahimi# these were created). 1791*22dc650dSSadaf Ebrahimi 1792*22dc650dSSadaf Ebrahimi/^[^a]{3,}?x/i,utf,no_start_optimize,no_auto_possess 1793*22dc650dSSadaf Ebrahimi\= Expect no match 1794*22dc650dSSadaf Ebrahimi bbb 1795*22dc650dSSadaf Ebrahimi cc 1796*22dc650dSSadaf Ebrahimi 1797*22dc650dSSadaf Ebrahimi/^[ac]{3,}?x/i,utf,no_start_optimize,no_auto_possess 1798*22dc650dSSadaf Ebrahimi\= Expect no match 1799*22dc650dSSadaf Ebrahimi aaa\x{100} 1800*22dc650dSSadaf Ebrahimi 1801*22dc650dSSadaf Ebrahimi/^X\X/no_start_optimize,no_auto_possess 1802*22dc650dSSadaf Ebrahimi\= Expect no match 1803*22dc650dSSadaf Ebrahimi X 1804*22dc650dSSadaf Ebrahimi 1805*22dc650dSSadaf Ebrahimi/^X\p{L&}+?/no_start_optimize,no_auto_possess 1806*22dc650dSSadaf Ebrahimi\= Expect no match 1807*22dc650dSSadaf Ebrahimi X 1808*22dc650dSSadaf Ebrahimi 1809*22dc650dSSadaf Ebrahimi/^X\p{L}+?/no_start_optimize,no_auto_possess 1810*22dc650dSSadaf Ebrahimi\= Expect no match 1811*22dc650dSSadaf Ebrahimi X 1812*22dc650dSSadaf Ebrahimi 1813*22dc650dSSadaf Ebrahimi/^X\p{Lu}+?/no_start_optimize,no_auto_possess 1814*22dc650dSSadaf Ebrahimi\= Expect no match 1815*22dc650dSSadaf Ebrahimi X 1816*22dc650dSSadaf Ebrahimi 1817*22dc650dSSadaf Ebrahimi/^X\p{Arabic}+?/no_start_optimize,no_auto_possess 1818*22dc650dSSadaf Ebrahimi\= Expect no match 1819*22dc650dSSadaf Ebrahimi X 1820*22dc650dSSadaf Ebrahimi 1821*22dc650dSSadaf Ebrahimi/^X\p{Xan}+?/ucp,no_start_optimize,no_auto_possess 1822*22dc650dSSadaf Ebrahimi\= Expect no match 1823*22dc650dSSadaf Ebrahimi X 1824*22dc650dSSadaf Ebrahimi 1825*22dc650dSSadaf Ebrahimi/^X\s+?/ucp,no_start_optimize,no_auto_possess 1826*22dc650dSSadaf Ebrahimi\= Expect no match 1827*22dc650dSSadaf Ebrahimi X 1828*22dc650dSSadaf Ebrahimi XX 1829*22dc650dSSadaf Ebrahimi 1830*22dc650dSSadaf Ebrahimi/^X\S+?/ucp,no_start_optimize,no_auto_possess 1831*22dc650dSSadaf Ebrahimi XX 1832*22dc650dSSadaf Ebrahimi\= Expect no match 1833*22dc650dSSadaf Ebrahimi X 1834*22dc650dSSadaf Ebrahimi 1835*22dc650dSSadaf Ebrahimi/^X\w+?/ucp,no_start_optimize,no_auto_possess 1836*22dc650dSSadaf Ebrahimi\= Expect no match 1837*22dc650dSSadaf Ebrahimi X 1838*22dc650dSSadaf Ebrahimi 1839*22dc650dSSadaf Ebrahimi/^X[^\x{b5}]+?/i,utf,no_start_optimize,no_auto_possess 1840*22dc650dSSadaf Ebrahimi\= Expect no match 1841*22dc650dSSadaf Ebrahimi X 1842*22dc650dSSadaf Ebrahimi 1843*22dc650dSSadaf Ebrahimi/^X[\x{b5}]+?/i,utf,no_start_optimize,no_auto_possess 1844*22dc650dSSadaf Ebrahimi\= Expect no match 1845*22dc650dSSadaf Ebrahimi X 1846*22dc650dSSadaf Ebrahimi 1847*22dc650dSSadaf Ebrahimi/^X\p{Xuc}+?/utf,no_start_optimize,no_auto_possess 1848*22dc650dSSadaf Ebrahimi\= Expect no match 1849*22dc650dSSadaf Ebrahimi X 1850*22dc650dSSadaf Ebrahimi 1851*22dc650dSSadaf Ebrahimi/^X.+?Z/s,utf,no_start_optimize,no_auto_possess 1852*22dc650dSSadaf Ebrahimi\= Expect no match 1853*22dc650dSSadaf Ebrahimi X 1854*22dc650dSSadaf Ebrahimi 1855*22dc650dSSadaf Ebrahimi/^X\R+?/utf,no_start_optimize,no_auto_possess 1856*22dc650dSSadaf Ebrahimi\= Expect no match 1857*22dc650dSSadaf Ebrahimi X 1858*22dc650dSSadaf Ebrahimi 1859*22dc650dSSadaf Ebrahimi/^X\H+?/utf,no_start_optimize,no_auto_possess 1860*22dc650dSSadaf Ebrahimi\= Expect no match 1861*22dc650dSSadaf Ebrahimi X 1862*22dc650dSSadaf Ebrahimi 1863*22dc650dSSadaf Ebrahimi/^X\V+?/utf,no_start_optimize,no_auto_possess 1864*22dc650dSSadaf Ebrahimi\= Expect no match 1865*22dc650dSSadaf Ebrahimi X 1866*22dc650dSSadaf Ebrahimi 1867*22dc650dSSadaf Ebrahimi/^X\s+?/utf,no_start_optimize,no_auto_possess 1868*22dc650dSSadaf Ebrahimi\= Expect no match 1869*22dc650dSSadaf Ebrahimi X 1870*22dc650dSSadaf Ebrahimi XX 1871*22dc650dSSadaf Ebrahimi 1872*22dc650dSSadaf Ebrahimi/^X\S+?/utf,no_start_optimize,no_auto_possess 1873*22dc650dSSadaf Ebrahimi\= Expect no match 1874*22dc650dSSadaf Ebrahimi X 1875*22dc650dSSadaf Ebrahimi 1876*22dc650dSSadaf Ebrahimi/^X\p{Any}{1,3}?Z/s,no_start_optimize,no_auto_possess 1877*22dc650dSSadaf Ebrahimi XYYYZ 1878*22dc650dSSadaf Ebrahimi\= Expect no match 1879*22dc650dSSadaf Ebrahimi XY 1880*22dc650dSSadaf Ebrahimi XYY 1881*22dc650dSSadaf Ebrahimi XYYY 1882*22dc650dSSadaf Ebrahimi XYYYYZ 1883*22dc650dSSadaf Ebrahimi 1884*22dc650dSSadaf Ebrahimi/^X\p{L&}{1,3}?Z/s,no_start_optimize,no_auto_possess 1885*22dc650dSSadaf Ebrahimi\= Expect no match 1886*22dc650dSSadaf Ebrahimi XY 1887*22dc650dSSadaf Ebrahimi XY! 1888*22dc650dSSadaf Ebrahimi 1889*22dc650dSSadaf Ebrahimi/^X\p{L}{1,3}?Z/s,no_start_optimize,no_auto_possess 1890*22dc650dSSadaf Ebrahimi\= Expect no match 1891*22dc650dSSadaf Ebrahimi XY 1892*22dc650dSSadaf Ebrahimi XY! 1893*22dc650dSSadaf Ebrahimi 1894*22dc650dSSadaf Ebrahimi/^X\p{Lu}{1,3}?Z/s,no_start_optimize,no_auto_possess 1895*22dc650dSSadaf Ebrahimi\= Expect no match 1896*22dc650dSSadaf Ebrahimi XY 1897*22dc650dSSadaf Ebrahimi XY! 1898*22dc650dSSadaf Ebrahimi 1899*22dc650dSSadaf Ebrahimi/^X\P{Han}{1,3}?Z/s,utf,no_start_optimize,no_auto_possess 1900*22dc650dSSadaf Ebrahimi\= Expect no match 1901*22dc650dSSadaf Ebrahimi XY 1902*22dc650dSSadaf Ebrahimi XY! 1903*22dc650dSSadaf Ebrahimi XY\x{2f00}! 1904*22dc650dSSadaf Ebrahimi 1905*22dc650dSSadaf Ebrahimi/^X\p{Xan}{1,3}?Z/s,no_start_optimize,no_auto_possess 1906*22dc650dSSadaf Ebrahimi\= Expect no match 1907*22dc650dSSadaf Ebrahimi XY 1908*22dc650dSSadaf Ebrahimi XY! 1909*22dc650dSSadaf Ebrahimi 1910*22dc650dSSadaf Ebrahimi/^X\p{Xsp}{1,3}?Z/s,no_start_optimize,no_auto_possess 1911*22dc650dSSadaf Ebrahimi\= Expect no match 1912*22dc650dSSadaf Ebrahimi X\n 1913*22dc650dSSadaf Ebrahimi X\n! 1914*22dc650dSSadaf Ebrahimi X\n\n! 1915*22dc650dSSadaf Ebrahimi 1916*22dc650dSSadaf Ebrahimi/^X\P{Xsp}{1,3}?Z/s,no_start_optimize,no_auto_possess 1917*22dc650dSSadaf Ebrahimi\= Expect no match 1918*22dc650dSSadaf Ebrahimi XYY\n 1919*22dc650dSSadaf Ebrahimi 1920*22dc650dSSadaf Ebrahimi/^X\p{Xwd}{1,3}?Z/s,no_start_optimize,no_auto_possess 1921*22dc650dSSadaf Ebrahimi\= Expect no match 1922*22dc650dSSadaf Ebrahimi XY 1923*22dc650dSSadaf Ebrahimi XY! 1924*22dc650dSSadaf Ebrahimi XYY! 1925*22dc650dSSadaf Ebrahimi 1926*22dc650dSSadaf Ebrahimi/^X\x{b5}+?Z/i,utf,no_start_optimize,no_auto_possess 1927*22dc650dSSadaf Ebrahimi\= Expect no match 1928*22dc650dSSadaf Ebrahimi X 1929*22dc650dSSadaf Ebrahimi X\x{b5} 1930*22dc650dSSadaf Ebrahimi X\x{b5}\x{b5}Y 1931*22dc650dSSadaf Ebrahimi 1932*22dc650dSSadaf Ebrahimi/^X\p{Xuc}+?Z/utf,no_start_optimize,no_auto_possess 1933*22dc650dSSadaf Ebrahimi\= Expect no match 1934*22dc650dSSadaf Ebrahimi X 1935*22dc650dSSadaf Ebrahimi X$ 1936*22dc650dSSadaf Ebrahimi X@@Y 1937*22dc650dSSadaf Ebrahimi 1938*22dc650dSSadaf Ebrahimi/(*CRLF)^X.+?Z/utf,no_start_optimize,no_auto_possess 1939*22dc650dSSadaf Ebrahimi\= Expect partial match 1940*22dc650dSSadaf Ebrahimi XYY\r\=ph 1941*22dc650dSSadaf Ebrahimi\= Expect no match 1942*22dc650dSSadaf Ebrahimi X 1943*22dc650dSSadaf Ebrahimi 1944*22dc650dSSadaf Ebrahimi/^X.+?Z/s,utf,no_start_optimize,no_auto_possess 1945*22dc650dSSadaf Ebrahimi\= Expect no match 1946*22dc650dSSadaf Ebrahimi X 1947*22dc650dSSadaf Ebrahimi XYY 1948*22dc650dSSadaf Ebrahimi 1949*22dc650dSSadaf Ebrahimi/^X\R+?Z/utf,no_start_optimize,no_auto_possess 1950*22dc650dSSadaf Ebrahimi\= Expect no match 1951*22dc650dSSadaf Ebrahimi X\nX 1952*22dc650dSSadaf Ebrahimi X\n\rX 1953*22dc650dSSadaf Ebrahimi X\n\r\nX 1954*22dc650dSSadaf Ebrahimi X\n\n 1955*22dc650dSSadaf Ebrahimi X\n\x{0c} 1956*22dc650dSSadaf Ebrahimi 1957*22dc650dSSadaf Ebrahimi/(*BSR_ANYCRLF)^X\R+?Z/utf,no_start_optimize,no_auto_possess 1958*22dc650dSSadaf Ebrahimi\= Expect no match 1959*22dc650dSSadaf Ebrahimi X\nX 1960*22dc650dSSadaf Ebrahimi X\n\rX 1961*22dc650dSSadaf Ebrahimi X\n\r\nX 1962*22dc650dSSadaf Ebrahimi X\n\n 1963*22dc650dSSadaf Ebrahimi X\n\x{0c} 1964*22dc650dSSadaf Ebrahimi 1965*22dc650dSSadaf Ebrahimi/^X\H+?Z/utf,no_start_optimize,no_auto_possess 1966*22dc650dSSadaf Ebrahimi\= Expect no match 1967*22dc650dSSadaf Ebrahimi XY\t 1968*22dc650dSSadaf Ebrahimi XYY 1969*22dc650dSSadaf Ebrahimi 1970*22dc650dSSadaf Ebrahimi/^X\h+?Z/utf,no_start_optimize,no_auto_possess 1971*22dc650dSSadaf Ebrahimi\= Expect no match 1972*22dc650dSSadaf Ebrahimi X\t\t 1973*22dc650dSSadaf Ebrahimi X\tY 1974*22dc650dSSadaf Ebrahimi 1975*22dc650dSSadaf Ebrahimi/^X\V+?Z/utf,no_start_optimize,no_auto_possess 1976*22dc650dSSadaf Ebrahimi\= Expect no match 1977*22dc650dSSadaf Ebrahimi XY\n 1978*22dc650dSSadaf Ebrahimi XYY 1979*22dc650dSSadaf Ebrahimi 1980*22dc650dSSadaf Ebrahimi/^X\v+?Z/utf,no_start_optimize,no_auto_possess 1981*22dc650dSSadaf Ebrahimi\= Expect no match 1982*22dc650dSSadaf Ebrahimi X\n\n 1983*22dc650dSSadaf Ebrahimi X\nY 1984*22dc650dSSadaf Ebrahimi 1985*22dc650dSSadaf Ebrahimi/^X\D+?Z/utf,no_start_optimize,no_auto_possess 1986*22dc650dSSadaf Ebrahimi\= Expect no match 1987*22dc650dSSadaf Ebrahimi XY9 1988*22dc650dSSadaf Ebrahimi XYY 1989*22dc650dSSadaf Ebrahimi 1990*22dc650dSSadaf Ebrahimi/^X\d+?Z/utf,no_start_optimize,no_auto_possess 1991*22dc650dSSadaf Ebrahimi\= Expect no match 1992*22dc650dSSadaf Ebrahimi X99 1993*22dc650dSSadaf Ebrahimi X9Y 1994*22dc650dSSadaf Ebrahimi 1995*22dc650dSSadaf Ebrahimi/^X\S+?Z/utf,no_start_optimize,no_auto_possess 1996*22dc650dSSadaf Ebrahimi\= Expect no match 1997*22dc650dSSadaf Ebrahimi XY\n 1998*22dc650dSSadaf Ebrahimi XYY 1999*22dc650dSSadaf Ebrahimi 2000*22dc650dSSadaf Ebrahimi/^X\s+?Z/utf,no_start_optimize,no_auto_possess 2001*22dc650dSSadaf Ebrahimi\= Expect no match 2002*22dc650dSSadaf Ebrahimi X\n\n 2003*22dc650dSSadaf Ebrahimi X\nY 2004*22dc650dSSadaf Ebrahimi 2005*22dc650dSSadaf Ebrahimi/^X\W+?Z/utf,no_start_optimize,no_auto_possess 2006*22dc650dSSadaf Ebrahimi\= Expect no match 2007*22dc650dSSadaf Ebrahimi X.A 2008*22dc650dSSadaf Ebrahimi X++ 2009*22dc650dSSadaf Ebrahimi 2010*22dc650dSSadaf Ebrahimi/^X\p{L&}{1,3}Z/no_start_optimize,no_auto_possess 2011*22dc650dSSadaf Ebrahimi\= Expect no match 2012*22dc650dSSadaf Ebrahimi XY 2013*22dc650dSSadaf Ebrahimi XY! 2014*22dc650dSSadaf Ebrahimi 2015*22dc650dSSadaf Ebrahimi/^X\p{L}{1,3}Z/no_start_optimize,no_auto_possess 2016*22dc650dSSadaf Ebrahimi\= Expect no match 2017*22dc650dSSadaf Ebrahimi XY 2018*22dc650dSSadaf Ebrahimi 2019*22dc650dSSadaf Ebrahimi/^X\p{Xan}{1,3}Z/no_start_optimize,no_auto_possess 2020*22dc650dSSadaf Ebrahimi\= Expect no match 2021*22dc650dSSadaf Ebrahimi XY 2022*22dc650dSSadaf Ebrahimi 2023*22dc650dSSadaf Ebrahimi/^X\P{Xsp}{1,3}Z/no_start_optimize,no_auto_possess 2024*22dc650dSSadaf Ebrahimi\= Expect no match 2025*22dc650dSSadaf Ebrahimi XYY 2026*22dc650dSSadaf Ebrahimi 2027*22dc650dSSadaf Ebrahimi/^X\p{Xuc}+Z/utf,no_start_optimize,no_auto_possess 2028*22dc650dSSadaf Ebrahimi\= Expect no match 2029*22dc650dSSadaf Ebrahimi X$ 2030*22dc650dSSadaf Ebrahimi 2031*22dc650dSSadaf Ebrahimi# ---------------------------------------------------------------------- 2032*22dc650dSSadaf Ebrahimi# These test the dangerous PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL option. 2033*22dc650dSSadaf Ebrahimi 2034*22dc650dSSadaf Ebrahimi/\x{d800}/B,utf,bad_escape_is_literal 2035*22dc650dSSadaf Ebrahimi 2036*22dc650dSSadaf Ebrahimi/\ud800/B,utf,alt_bsux,bad_escape_is_literal 2037*22dc650dSSadaf Ebrahimi 2038*22dc650dSSadaf Ebrahimi# ---------------------------------------------------------------------- 2039*22dc650dSSadaf Ebrahimi 2040*22dc650dSSadaf Ebrahimi/Aሴ+B/literal,utf,no_utf_check 2041*22dc650dSSadaf Ebrahimi Aሴ+B 2042*22dc650dSSadaf Ebrahimi 2043*22dc650dSSadaf Ebrahimi# These are here because I upgraded to Unicode 10.0.0 before Perl did, so it 2044*22dc650dSSadaf Ebrahimi# doesn't recognize all these scripts. In time these three tests can be moved 2045*22dc650dSSadaf Ebrahimi# to test 4. 2046*22dc650dSSadaf Ebrahimi 2047*22dc650dSSadaf Ebrahimi/^(\p{Adlam}+)(\p{Bhaiksuki}+)(\p{Marchen}+)(\p{Newa}+)(\p{Osage}+) 2048*22dc650dSSadaf Ebrahimi (\p{Tangut}+)(\p{Masaram_Gondi}+)(\p{Nushu}+)(\p{Soyombo}+) 2049*22dc650dSSadaf Ebrahimi (\p{Zanabazar_Square}+)/x,utf 2050*22dc650dSSadaf Ebrahimi \x{1E900}\x{1E924}\x{1E953}\x{11C00}\x{11C2D}\x{11C3E}\x{11C70}\x{11C77}\x{11CAB}\x{11400}\x{1142F}\x{11455}\x{104B0}\x{104D8}\x{104FB}\x{16FE0}\x{18800}\x{18AF2}\x{11D00}\x{11D3A}\x{11D59}\x{16FE1}\x{1B170}\x{1B2FB}\x{11A50}\x{11A58}\x{11AA2}\x{11A00}\x{11A07}\x{11A47} 2051*22dc650dSSadaf Ebrahimi 2052*22dc650dSSadaf Ebrahimi/^\x{1E900}\x{104B0}/i,utf 2053*22dc650dSSadaf Ebrahimi \x{1E900}\x{104B0} 2054*22dc650dSSadaf Ebrahimi \x{1E922}\x{104D8} 2055*22dc650dSSadaf Ebrahimi 2056*22dc650dSSadaf Ebrahimi/^(?:(\X)(?C))+$/utf 2057*22dc650dSSadaf Ebrahimi \x{1E900}\x{1E924}\x{1E953}\x{11C00}\x{11C2D}\x{11C3E}\x{11C70}\x{11C77}\x{11CAB}\x{11400}\x{1142F}\x{11455}\x{104B0}\x{104D8}\x{104FB}\x{16FE0}\x{18800}\x{18AF2}\x{11D00}\x{11D3A}\x{11D59}\x{16FE1}\x{1B170}\x{1B2FB}\x{11A50}\x{11A58}\x{11AA2}\x{11A00}\x{11A07}\x{11A47}\=callout_capture,callout_no_where 2058*22dc650dSSadaf Ebrahimi 2059*22dc650dSSadaf Ebrahimi# Similarly for Unicode 11.0.0 2060*22dc650dSSadaf Ebrahimi 2061*22dc650dSSadaf Ebrahimi/^(\p{Dogra}+)(\p{Gunjala_Gondi}+)(\p{Hanifi_Rohingya}+)(\p{Makasar}+) 2062*22dc650dSSadaf Ebrahimi (\p{Medefaidrin}+)(\p{Old_Sogdian}+)(\p{Sogdian}+)/x,utf 2063*22dc650dSSadaf Ebrahimi \x{11800}\x{11da9}\x{10d27}\x{11ee0}\x{16e48}\x{10f27}\x{10f30} 2064*22dc650dSSadaf Ebrahimi 2065*22dc650dSSadaf Ebrahimi# Regional indicators 2066*22dc650dSSadaf Ebrahimi 2067*22dc650dSSadaf Ebrahimi/^(\X)(\X)/utf,aftertext 2068*22dc650dSSadaf Ebrahimi \x{1F1E6}\x{1F1E7}\x{1F1E7}B 2069*22dc650dSSadaf Ebrahimi \x{1F1E6}\x{1F1E7}\x{1F1E7}\x{1F1E6}B 2070*22dc650dSSadaf Ebrahimi 2071*22dc650dSSadaf Ebrahimi# More differences from Perl 2072*22dc650dSSadaf Ebrahimi 2073*22dc650dSSadaf Ebrahimi/^\p{Common}/utf 2074*22dc650dSSadaf Ebrahimi \x{60c} 2075*22dc650dSSadaf Ebrahimi \x{61f} 2076*22dc650dSSadaf Ebrahimi \x{964} 2077*22dc650dSSadaf Ebrahimi \x{965} 2078*22dc650dSSadaf Ebrahimi 2079*22dc650dSSadaf Ebrahimi/^\p{Inherited}/utf 2080*22dc650dSSadaf Ebrahimi \x{64b} 2081*22dc650dSSadaf Ebrahimi \x{654} 2082*22dc650dSSadaf Ebrahimi \x{655} 2083*22dc650dSSadaf Ebrahimi \x{1D1AA} 2084*22dc650dSSadaf Ebrahimi 2085*22dc650dSSadaf Ebrahimi/\N{U+}/ 2086*22dc650dSSadaf Ebrahimi 2087*22dc650dSSadaf Ebrahimi/\N{U+}/utf 2088*22dc650dSSadaf Ebrahimi 2089*22dc650dSSadaf Ebrahimi/\N{U}/ 2090*22dc650dSSadaf Ebrahimi 2091*22dc650dSSadaf Ebrahimi# This tests the non-UTF Unicode NEL pattern whitespace character, only 2092*22dc650dSSadaf Ebrahimi# recognized by PCRE2 with /x when there is Unicode support. 2093*22dc650dSSadaf Ebrahimi 2094*22dc650dSSadaf Ebrahimi/A 2095*22dc650dSSadaf Ebrahimi 2096*22dc650dSSadaf Ebrahimi�B/x 2097*22dc650dSSadaf Ebrahimi AB 2098*22dc650dSSadaf Ebrahimi 2099*22dc650dSSadaf Ebrahimi# This tests Unicode Pattern White Space characters in verb names when they 2100*22dc650dSSadaf Ebrahimi# are being processed with PCRE2_EXTENDED. Note: there are UTF-8 characters 2101*22dc650dSSadaf Ebrahimi# with code points greater than 255 between A, B, and C in the pattern. 2102*22dc650dSSadaf Ebrahimi 2103*22dc650dSSadaf Ebrahimi/(*: AB C)abc/x,utf,mark,alt_verbnames 2104*22dc650dSSadaf Ebrahimi abc 2105*22dc650dSSadaf Ebrahimi 2106*22dc650dSSadaf Ebrahimi# Script run tests: auto-possessification 2107*22dc650dSSadaf Ebrahimi 2108*22dc650dSSadaf Ebrahimi/^(*sr:.*)/B,utf 2109*22dc650dSSadaf Ebrahimi paypаl.com A classic example of why script run checks are a good thing 2110*22dc650dSSadaf Ebrahimi 2111*22dc650dSSadaf Ebrahimi/^(*sr:.*(*ACCEPT))/utf 2112*22dc650dSSadaf Ebrahimi paypаl.com But *ACCEPT breaks things 2113*22dc650dSSadaf Ebrahimi 2114*22dc650dSSadaf Ebrahimi/^(*sr:\x{2e80}*)/B,utf 2115*22dc650dSSadaf Ebrahimi 2116*22dc650dSSadaf Ebrahimi/^(*sr:\x{2e80}*)\x{2e80}/B,utf 2117*22dc650dSSadaf Ebrahimi 2118*22dc650dSSadaf Ebrahimi/(?<!)(*sr:)/B 2119*22dc650dSSadaf Ebrahimi 2120*22dc650dSSadaf Ebrahimi/(?<=abc(?=X(*sr:BXY)CCC)XBXYCCC)./B 2121*22dc650dSSadaf Ebrahimi abcXBXYCCC! 2122*22dc650dSSadaf Ebrahimi 2123*22dc650dSSadaf Ebrahimi# Some script run patterns are broken in Perl 5.28.0. These can be moved into 2124*22dc650dSSadaf Ebrahimi# test 4 when a mended version of Perl is released. 2125*22dc650dSSadaf Ebrahimi 2126*22dc650dSSadaf Ebrahimi/^(*sr:.{4})/utf 2127*22dc650dSSadaf Ebrahimi \x{0980}12\x{0993} Bengali Common-digits Bengali 2128*22dc650dSSadaf Ebrahimi \x{0780}12\x{07b1} Thaana Common-digits Thaana 2129*22dc650dSSadaf Ebrahimi \x{0e01}12\x{0e5b} Thai Common-digits Thai 2130*22dc650dSSadaf Ebrahimi \x{1780}12\x{19ff} Khmer Common-digits Khmer 2131*22dc650dSSadaf Ebrahimi \x{0904}12\x{0939} Devanagari Common-digits Devanagari 2132*22dc650dSSadaf Ebrahimi A\x{ff10}\x{ff19}B Latin Common-notascii-digits Latin 2133*22dc650dSSadaf Ebrahimi A\x{1d7ce}\x{1d7cf}B Latin fancy-common-digits Latin 2134*22dc650dSSadaf Ebrahimi 2135*22dc650dSSadaf Ebrahimi# These ones involve non-ASCII but nevertheless Common digits. As of October 2136*22dc650dSSadaf Ebrahimi# 2018 even blead Perl wasn't handling all of these - but is going to. 2137*22dc650dSSadaf Ebrahimi 2138*22dc650dSSadaf Ebrahimi/^(*sr:.{4})/utf 2139*22dc650dSSadaf Ebrahimi A\x{ff10}\x{ff19}B Latin Common-notascii-digits Latin 2140*22dc650dSSadaf Ebrahimi \x{ff10}\x{ff19}.. Common-notascii-digits Common Common 2141*22dc650dSSadaf Ebrahimi A\x{ff10}BC Latin Common-notascii-digit Latin Latin 2142*22dc650dSSadaf Ebrahimi A\x{1d7ce}\x{1d7cf}B Latin fancy-common-digits Latin 2143*22dc650dSSadaf Ebrahimi \x{1d7ce}\x{1d7cf},, fancy-common-digits Common Common 2144*22dc650dSSadaf Ebrahimi A\x{1d7ce}BC Latin fancy-common-digit Latin Latin 2145*22dc650dSSadaf Ebrahimi 2146*22dc650dSSadaf Ebrahimi# Some Unicode 12.1.0 new script characters 2147*22dc650dSSadaf Ebrahimi 2148*22dc650dSSadaf Ebrahimi/\p{Elymaic}\p{Nandinagari}\p{Nyiakeng_Puachue_Hmong}\p{Wancho}/utf 2149*22dc650dSSadaf Ebrahimi \x{10fe5}\x{119AC}\x{1E10E}\x{1E2D1} 2150*22dc650dSSadaf Ebrahimi 2151*22dc650dSSadaf Ebrahimi# Some Unicode 13.0.0 new script characters 2152*22dc650dSSadaf Ebrahimi 2153*22dc650dSSadaf Ebrahimi/\p{Chorasmian}\p{Dives_Akuru}\p{Khitan_Small_Script}\p{Yezidi}/utf 2154*22dc650dSSadaf Ebrahimi \x{10FB0}\x{11900}\x{18B00}\x{10E80} 2155*22dc650dSSadaf Ebrahimi 2156*22dc650dSSadaf Ebrahimi# ------- 2157*22dc650dSSadaf Ebrahimi 2158*22dc650dSSadaf Ebrahimi# Test reference and errors in non-ASCII characters in group names 2159*22dc650dSSadaf Ebrahimi 2160*22dc650dSSadaf Ebrahimi/(?'ABC'...)/I,utf 2161*22dc650dSSadaf Ebrahimi abcde\=copy=ABC 2162*22dc650dSSadaf Ebrahimi 2163*22dc650dSSadaf Ebrahimi# Bad ones 2164*22dc650dSSadaf Ebrahimi 2165*22dc650dSSadaf Ebrahimi/(?'AB၌C'...)\g{AB၌C}/utf 2166*22dc650dSSadaf Ebrahimi 2167*22dc650dSSadaf Ebrahimi/(?'٠ABC'...)/utf 2168*22dc650dSSadaf Ebrahimi 2169*22dc650dSSadaf Ebrahimi/(?'²ABC'...)/utf 2170*22dc650dSSadaf Ebrahimi 2171*22dc650dSSadaf Ebrahimi/(?'X²ABC'...)/utf 2172*22dc650dSSadaf Ebrahimi 2173*22dc650dSSadaf Ebrahimi# ------- 2174*22dc650dSSadaf Ebrahimi 2175*22dc650dSSadaf Ebrahimi/\p{Any}*xyz/I 2176*22dc650dSSadaf Ebrahimi 2177*22dc650dSSadaf Ebrahimi/(|�)7/caseless,ucp 2178*22dc650dSSadaf Ebrahimi 2179*22dc650dSSadaf Ebrahimi/(\xc1)\1/i,ucp 2180*22dc650dSSadaf Ebrahimi \xc1\xe1\=no_jit 2181*22dc650dSSadaf Ebrahimi 2182*22dc650dSSadaf Ebrahimi/\p{L&}+\p{bidi_control}/B 2183*22dc650dSSadaf Ebrahimi 2184*22dc650dSSadaf Ebrahimi/\p{bidi_control}+\p{L&}/B 2185*22dc650dSSadaf Ebrahimi 2186*22dc650dSSadaf Ebrahimi/\p{han}/B 2187*22dc650dSSadaf Ebrahimi 2188*22dc650dSSadaf Ebrahimi/\p{script:han}/B 2189*22dc650dSSadaf Ebrahimi 2190*22dc650dSSadaf Ebrahimi/\p{sc:han}/B 2191*22dc650dSSadaf Ebrahimi 2192*22dc650dSSadaf Ebrahimi/\p{script extensions:han}/B 2193*22dc650dSSadaf Ebrahimi 2194*22dc650dSSadaf Ebrahimi/\p{scx:han}/B 2195*22dc650dSSadaf Ebrahimi 2196*22dc650dSSadaf Ebrahimi# Test error - invalid script name 2197*22dc650dSSadaf Ebrahimi 2198*22dc650dSSadaf Ebrahimi/\p{sc:L}/ 2199*22dc650dSSadaf Ebrahimi 2200*22dc650dSSadaf Ebrahimi# Some Boolean property tests that differ from Perl 2201*22dc650dSSadaf Ebrahimi 2202*22dc650dSSadaf Ebrahimi/\p{emojimodifierbase}\p{ebase}/g,utf 2203*22dc650dSSadaf Ebrahimi >AN<>\x{261d}\x{1faf6}<>yz< 2204*22dc650dSSadaf Ebrahimi 2205*22dc650dSSadaf Ebrahimi/\p{graphemelink}\p{grlink}/g,utf 2206*22dc650dSSadaf Ebrahimi >AN<>\x{11d97}\x{94d}<>yz< 2207*22dc650dSSadaf Ebrahimi 2208*22dc650dSSadaf Ebrahimi/\p{soft dotted}\p{sd}/g,utf 2209*22dc650dSSadaf Ebrahimi >AF23<>\x{1df1a}\x{69}<>yz< 2210*22dc650dSSadaf Ebrahimi 2211*22dc650dSSadaf Ebrahimi# ------------------------------------------------ 2212*22dc650dSSadaf Ebrahimi 2213*22dc650dSSadaf Ebrahimi/\p{\2b[:x�igi:t:_/ 2214*22dc650dSSadaf Ebrahimi 2215*22dc650dSSadaf Ebrahimi# Tests for PCRE2_EXTRA_CASELESS_RESTRICT. Compare each test with and without 2216*22dc650dSSadaf Ebrahimi# the restriction. 2217*22dc650dSSadaf Ebrahimi 2218*22dc650dSSadaf Ebrahimi/AskZ/i,utf,caseless_restrict 2219*22dc650dSSadaf Ebrahimi AskZ 2220*22dc650dSSadaf Ebrahimi aSKz 2221*22dc650dSSadaf Ebrahimi\= Expect no match 2222*22dc650dSSadaf Ebrahimi A\x{17f}kZ 2223*22dc650dSSadaf Ebrahimi As\x{212a}Z 2224*22dc650dSSadaf Ebrahimi 2225*22dc650dSSadaf Ebrahimi/AskZ/i,utf 2226*22dc650dSSadaf Ebrahimi AskZ 2227*22dc650dSSadaf Ebrahimi aSKz 2228*22dc650dSSadaf Ebrahimi A\x{17f}kZ 2229*22dc650dSSadaf Ebrahimi As\x{212a}Z 2230*22dc650dSSadaf Ebrahimi 2231*22dc650dSSadaf Ebrahimi/A\x{17f}\x{212a}Z/ir,utf 2232*22dc650dSSadaf Ebrahimi \= Expect no match 2233*22dc650dSSadaf Ebrahimi AskZ 2234*22dc650dSSadaf Ebrahimi 2235*22dc650dSSadaf Ebrahimi/A\x{17f}\x{212a}Z/i,utf 2236*22dc650dSSadaf Ebrahimi AskZ 2237*22dc650dSSadaf Ebrahimi 2238*22dc650dSSadaf Ebrahimi/[AskZ]+/i,utf,caseless_restrict 2239*22dc650dSSadaf Ebrahimi AskZ 2240*22dc650dSSadaf Ebrahimi aSKz 2241*22dc650dSSadaf Ebrahimi A\x{17f}kZ 2242*22dc650dSSadaf Ebrahimi As\x{212a}Z 2243*22dc650dSSadaf Ebrahimi 2244*22dc650dSSadaf Ebrahimi/[AskZ]+/i,utf 2245*22dc650dSSadaf Ebrahimi AskZ 2246*22dc650dSSadaf Ebrahimi aSKz 2247*22dc650dSSadaf Ebrahimi A\x{17f}kZ 2248*22dc650dSSadaf Ebrahimi As\x{212a}Z 2249*22dc650dSSadaf Ebrahimi 2250*22dc650dSSadaf Ebrahimi/[\x{17f}\x{212a}]+/ir,utf 2251*22dc650dSSadaf Ebrahimi\= Expect no match 2252*22dc650dSSadaf Ebrahimi AskZ 2253*22dc650dSSadaf Ebrahimi 2254*22dc650dSSadaf Ebrahimi/[\x{17f}\x{212a}]+/i,utf 2255*22dc650dSSadaf Ebrahimi AskZ 2256*22dc650dSSadaf Ebrahimi 2257*22dc650dSSadaf Ebrahimi/[^s]+/ir,utf 2258*22dc650dSSadaf Ebrahimi A\x{17f}Z 2259*22dc650dSSadaf Ebrahimi 2260*22dc650dSSadaf Ebrahimi/[^s]+/i,utf 2261*22dc650dSSadaf Ebrahimi A\x{17f}Z 2262*22dc650dSSadaf Ebrahimi 2263*22dc650dSSadaf Ebrahimi/[^k]+/ir,utf 2264*22dc650dSSadaf Ebrahimi A\x{212a}Z 2265*22dc650dSSadaf Ebrahimi 2266*22dc650dSSadaf Ebrahimi/[^k]+/i,utf 2267*22dc650dSSadaf Ebrahimi A\x{212a}Z 2268*22dc650dSSadaf Ebrahimi 2269*22dc650dSSadaf Ebrahimi/[^sk]+/ir,utf 2270*22dc650dSSadaf Ebrahimi A\x{17f}\x{212a}Z 2271*22dc650dSSadaf Ebrahimi 2272*22dc650dSSadaf Ebrahimi/[^sk]+/i,utf 2273*22dc650dSSadaf Ebrahimi A\x{17f}\x{212a}Z 2274*22dc650dSSadaf Ebrahimi 2275*22dc650dSSadaf Ebrahimi/[^\x{17f}]+/ir,utf 2276*22dc650dSSadaf Ebrahimi AsSZ 2277*22dc650dSSadaf Ebrahimi 2278*22dc650dSSadaf Ebrahimi/[^\x{17f}]+/i,utf 2279*22dc650dSSadaf Ebrahimi AsSZ 2280*22dc650dSSadaf Ebrahimi 2281*22dc650dSSadaf Ebrahimi/[Ss]+/irB,utf 2282*22dc650dSSadaf Ebrahimi Sss\x{17f}ss 2283*22dc650dSSadaf Ebrahimi 2284*22dc650dSSadaf Ebrahimi/[Ss]+/iB,utf 2285*22dc650dSSadaf Ebrahimi Sss\x{17f}ss 2286*22dc650dSSadaf Ebrahimi 2287*22dc650dSSadaf Ebrahimi/[S\x{17f}]/irB,utf 2288*22dc650dSSadaf Ebrahimi 2289*22dc650dSSadaf Ebrahimi/[S\x{17f}]/iB,utf 2290*22dc650dSSadaf Ebrahimi 2291*22dc650dSSadaf Ebrahimi/[\x{17f}s]/irB,utf 2292*22dc650dSSadaf Ebrahimi 2293*22dc650dSSadaf Ebrahimi/[\x{17f}s]/iB,utf 2294*22dc650dSSadaf Ebrahimi 2295*22dc650dSSadaf Ebrahimi/[\x{4b}\x{6b}]/irB,utf 2296*22dc650dSSadaf Ebrahimi 2297*22dc650dSSadaf Ebrahimi/[\x{4b}\x{6b}]/iB,utf 2298*22dc650dSSadaf Ebrahimi 2299*22dc650dSSadaf Ebrahimi/s(?r)s(?-r)s(?r:s)s/i,utf 2300*22dc650dSSadaf Ebrahimi \x{17f}S\x{17f}S\x{17f} 2301*22dc650dSSadaf Ebrahimi\= Expect no match 2302*22dc650dSSadaf Ebrahimi \x{17f}\x{17f}\x{17f}S\x{17f} 2303*22dc650dSSadaf Ebrahimi \x{17f}S\x{17f}\x{17f}\x{17f} 2304*22dc650dSSadaf Ebrahimi 2305*22dc650dSSadaf Ebrahimi/k(?^i)k/ir,utf 2306*22dc650dSSadaf Ebrahimi K\x{212a} 2307*22dc650dSSadaf Ebrahimi\= Expect no match 2308*22dc650dSSadaf Ebrahimi \x{212a}\x{212a} 2309*22dc650dSSadaf Ebrahimi 2310*22dc650dSSadaf Ebrahimi# End caseless restrict tests 2311*22dc650dSSadaf Ebrahimi 2312*22dc650dSSadaf Ebrahimi# TESTS for PCRE2_EXTRA_ASCII_xxx - again, tests with and without. 2313*22dc650dSSadaf Ebrahimi 2314*22dc650dSSadaf Ebrahimi# DIGITS 2315*22dc650dSSadaf Ebrahimi 2316*22dc650dSSadaf Ebrahimi/\d+/i,utf 2317*22dc650dSSadaf Ebrahimi 123\x{660}456 2318*22dc650dSSadaf Ebrahimi 2319*22dc650dSSadaf Ebrahimi/\d+/i,utf,ucp 2320*22dc650dSSadaf Ebrahimi 123\x{660}456 2321*22dc650dSSadaf Ebrahimi 2322*22dc650dSSadaf Ebrahimi/\d+/i,utf,ucp,ascii_bsd 2323*22dc650dSSadaf Ebrahimi 123\x{660}456 2324*22dc650dSSadaf Ebrahimi 2325*22dc650dSSadaf Ebrahimi/[\d]+/i,utf 2326*22dc650dSSadaf Ebrahimi 123\x{660}456 2327*22dc650dSSadaf Ebrahimi 2328*22dc650dSSadaf Ebrahimi/[\d]+/i,utf,ucp 2329*22dc650dSSadaf Ebrahimi 123\x{660}456 2330*22dc650dSSadaf Ebrahimi 2331*22dc650dSSadaf Ebrahimi/[\d]+/i,utf,ucp,ascii_bsd 2332*22dc650dSSadaf Ebrahimi 123\x{660}456 2333*22dc650dSSadaf Ebrahimi 2334*22dc650dSSadaf Ebrahimi/\d(?aD)\d(?-aD)\d/utf,ucp 2335*22dc650dSSadaf Ebrahimi \x{660}9\x{660} 2336*22dc650dSSadaf Ebrahimi\= Expect no match 2337*22dc650dSSadaf Ebrahimi \x{660}\x{660}\x{660} 2338*22dc650dSSadaf Ebrahimi 2339*22dc650dSSadaf Ebrahimi/\d(?-aD)\d(?aD)\d/utf,ucp,ascii_bsd 2340*22dc650dSSadaf Ebrahimi 999 2341*22dc650dSSadaf Ebrahimi 9\x{660}9 2342*22dc650dSSadaf Ebrahimi 2343*22dc650dSSadaf Ebrahimi/\d(?a)\d(?-a)\d/utf,ucp 2344*22dc650dSSadaf Ebrahimi \x{660}9\x{660} 2345*22dc650dSSadaf Ebrahimi\= Expect no match 2346*22dc650dSSadaf Ebrahimi \x{660}\x{660}\x{660} 2347*22dc650dSSadaf Ebrahimi 2348*22dc650dSSadaf Ebrahimi/\d(?-aD)\d(?aD)\d/utf,ucp,ascii_bsd 2349*22dc650dSSadaf Ebrahimi 999 2350*22dc650dSSadaf Ebrahimi 9\x{660}9 2351*22dc650dSSadaf Ebrahimi 2352*22dc650dSSadaf Ebrahimi# SPACES 2353*22dc650dSSadaf Ebrahimi 2354*22dc650dSSadaf Ebrahimi/>\s+</i,utf 2355*22dc650dSSadaf Ebrahimi > < 2356*22dc650dSSadaf Ebrahimi\= Expect no match 2357*22dc650dSSadaf Ebrahimi >\x{a0} < 2358*22dc650dSSadaf Ebrahimi 2359*22dc650dSSadaf Ebrahimi/>\s+</i,utf,ucp 2360*22dc650dSSadaf Ebrahimi > < 2361*22dc650dSSadaf Ebrahimi >\x{a0} < 2362*22dc650dSSadaf Ebrahimi 2363*22dc650dSSadaf Ebrahimi/>\s+</i,utf,ucp,ascii_bss 2364*22dc650dSSadaf Ebrahimi > < 2365*22dc650dSSadaf Ebrahimi\= Expect no match 2366*22dc650dSSadaf Ebrahimi >\x{a0} < 2367*22dc650dSSadaf Ebrahimi 2368*22dc650dSSadaf Ebrahimi/>[\s]+</i,utf 2369*22dc650dSSadaf Ebrahimi > < 2370*22dc650dSSadaf Ebrahimi\= Expect no match 2371*22dc650dSSadaf Ebrahimi >\x{a0} < 2372*22dc650dSSadaf Ebrahimi 2373*22dc650dSSadaf Ebrahimi/>[\s]+</i,utf,ucp 2374*22dc650dSSadaf Ebrahimi > < 2375*22dc650dSSadaf Ebrahimi >\x{a0} < 2376*22dc650dSSadaf Ebrahimi 2377*22dc650dSSadaf Ebrahimi/>[\s]+</i,utf,ucp,ascii_bss 2378*22dc650dSSadaf Ebrahimi > < 2379*22dc650dSSadaf Ebrahimi\= Expect no match 2380*22dc650dSSadaf Ebrahimi >\x{a0} < 2381*22dc650dSSadaf Ebrahimi 2382*22dc650dSSadaf Ebrahimi/>\s(?aS)\s(?-aS)\s</utf,ucp 2383*22dc650dSSadaf Ebrahimi >\x{a0} \x{a0}< 2384*22dc650dSSadaf Ebrahimi\= Expect no match 2385*22dc650dSSadaf Ebrahimi >\x{a0}\x{a0}\x{a0}< 2386*22dc650dSSadaf Ebrahimi 2387*22dc650dSSadaf Ebrahimi/>\s(?a)\s(?-a)\s</utf,ucp 2388*22dc650dSSadaf Ebrahimi >\x{a0} \x{a0}< 2389*22dc650dSSadaf Ebrahimi\= Expect no match 2390*22dc650dSSadaf Ebrahimi >\x{a0}\x{a0}\x{a0}< 2391*22dc650dSSadaf Ebrahimi 2392*22dc650dSSadaf Ebrahimi# WORDS 2393*22dc650dSSadaf Ebrahimi 2394*22dc650dSSadaf Ebrahimi/\w+/i,utf 2395*22dc650dSSadaf Ebrahimi 123\x{660}abc 2396*22dc650dSSadaf Ebrahimi 2397*22dc650dSSadaf Ebrahimi/\w+/i,utf,ucp 2398*22dc650dSSadaf Ebrahimi 123\x{660}abc 2399*22dc650dSSadaf Ebrahimi 2400*22dc650dSSadaf Ebrahimi/\w+/i,utf,ucp,ascii_bsw 2401*22dc650dSSadaf Ebrahimi 123\x{660}abc 2402*22dc650dSSadaf Ebrahimi 2403*22dc650dSSadaf Ebrahimi/[\w]+/i,utf 2404*22dc650dSSadaf Ebrahimi 123\x{660}abc 2405*22dc650dSSadaf Ebrahimi 2406*22dc650dSSadaf Ebrahimi/[\w]+/i,utf,ucp 2407*22dc650dSSadaf Ebrahimi 123\x{660}abc 2408*22dc650dSSadaf Ebrahimi 2409*22dc650dSSadaf Ebrahimi/[\w]+/i,utf,ucp,ascii_bsw 2410*22dc650dSSadaf Ebrahimi 123\x{660}abc 2411*22dc650dSSadaf Ebrahimi 2412*22dc650dSSadaf Ebrahimi/\w(?aW)\w(?-aW)\w/utf,ucp 2413*22dc650dSSadaf Ebrahimi \x{660}A\x{c0} 2414*22dc650dSSadaf Ebrahimi\= Expect no match 2415*22dc650dSSadaf Ebrahimi \x{660}\x{c0}\x{c0} 2416*22dc650dSSadaf Ebrahimi 2417*22dc650dSSadaf Ebrahimi/\w(?a)\w(?-a)\w/utf,ucp 2418*22dc650dSSadaf Ebrahimi \x{660}A\x{c0} 2419*22dc650dSSadaf Ebrahimi\= Expect no match 2420*22dc650dSSadaf Ebrahimi \x{660}\x{c0}\x{c0} 2421*22dc650dSSadaf Ebrahimi 2422*22dc650dSSadaf Ebrahimi# WORD BOUNDARY 2423*22dc650dSSadaf Ebrahimi 2424*22dc650dSSadaf Ebrahimi/\bABC\b/utf 2425*22dc650dSSadaf Ebrahimi \x{c0}ABC\x{d0} 2426*22dc650dSSadaf Ebrahimi 2427*22dc650dSSadaf Ebrahimi/\bABC\b/utf,ucp 2428*22dc650dSSadaf Ebrahimi\= Expect no match 2429*22dc650dSSadaf Ebrahimi \x{c0}ABC\x{d0} 2430*22dc650dSSadaf Ebrahimi 2431*22dc650dSSadaf Ebrahimi/\bABC\b/utf,ucp,ascii_bsw 2432*22dc650dSSadaf Ebrahimi \x{c0}ABC\x{d0} 2433*22dc650dSSadaf Ebrahimi 2434*22dc650dSSadaf Ebrahimi/\bABC\b/utf,ucp,ascii_all 2435*22dc650dSSadaf Ebrahimi \x{c0}ABC\x{d0} 2436*22dc650dSSadaf Ebrahimi 2437*22dc650dSSadaf Ebrahimi# POSIX 2438*22dc650dSSadaf Ebrahimi 2439*22dc650dSSadaf Ebrahimi/^[[:digit:]]+$/utf,ucp 2440*22dc650dSSadaf Ebrahimi 123456 2441*22dc650dSSadaf Ebrahimi 123\x{660}456 2442*22dc650dSSadaf Ebrahimi 2443*22dc650dSSadaf Ebrahimi/^[[:digit:]]+$/utf,ucp,ascii_digit 2444*22dc650dSSadaf Ebrahimi 123456 2445*22dc650dSSadaf Ebrahimi\= Expect no match 2446*22dc650dSSadaf Ebrahimi 123\x{660}456 2447*22dc650dSSadaf Ebrahimi 2448*22dc650dSSadaf Ebrahimi/[[:digit:]]+/g,utf,ucp,ascii_digit 2449*22dc650dSSadaf Ebrahimi 123\x{660}456 2450*22dc650dSSadaf Ebrahimi 2451*22dc650dSSadaf Ebrahimi/(?-aT)[[:digit:]](?aT)[[:digit:]]/utf,ucp,ascii_digit 2452*22dc650dSSadaf Ebrahimi 11 2453*22dc650dSSadaf Ebrahimi \x{ff11}1 2454*22dc650dSSadaf Ebrahimi\= Expect no match 2455*22dc650dSSadaf Ebrahimi 1\x{ff11} 2456*22dc650dSSadaf Ebrahimi 2457*22dc650dSSadaf Ebrahimi/(?-aT:[[:digit:]])[[:digit:]]/utf,ucp,ascii_digit 2458*22dc650dSSadaf Ebrahimi 11 2459*22dc650dSSadaf Ebrahimi \x{ff11}1 2460*22dc650dSSadaf Ebrahimi\= Expect no match 2461*22dc650dSSadaf Ebrahimi 1\x{ff11} 2462*22dc650dSSadaf Ebrahimi 2463*22dc650dSSadaf Ebrahimi/(?-aT:[[:digit:]])[[:digit:]]/utf,never_ucp,ascii_digit 2464*22dc650dSSadaf Ebrahimi 11 2465*22dc650dSSadaf Ebrahimi\= Expect no match 2466*22dc650dSSadaf Ebrahimi \x{ff11}1 2467*22dc650dSSadaf Ebrahimi 1\x{ff11} 2468*22dc650dSSadaf Ebrahimi 2469*22dc650dSSadaf Ebrahimi/[[:digit:]]+/utf,ucp,ascii_posix 2470*22dc650dSSadaf Ebrahimi 123\x{660}456 2471*22dc650dSSadaf Ebrahimi 2472*22dc650dSSadaf Ebrahimi/(?-aP)[[:digit:]](?aP)[[:digit:]]/utf,ucp,ascii_posix 2473*22dc650dSSadaf Ebrahimi 11 2474*22dc650dSSadaf Ebrahimi \x{ff11}1 2475*22dc650dSSadaf Ebrahimi\= Expect no match 2476*22dc650dSSadaf Ebrahimi 1\x{ff11} 2477*22dc650dSSadaf Ebrahimi 2478*22dc650dSSadaf Ebrahimi/(?-aP:[[:digit:]])[[:digit:]]/utf,ucp,ascii_posix 2479*22dc650dSSadaf Ebrahimi 11 2480*22dc650dSSadaf Ebrahimi \x{ff11}1 2481*22dc650dSSadaf Ebrahimi\= Expect no match 2482*22dc650dSSadaf Ebrahimi 1\x{ff11} 2483*22dc650dSSadaf Ebrahimi 2484*22dc650dSSadaf Ebrahimi/(?-a:[[:digit:]])[[:digit:]]/a,utf,ucp 2485*22dc650dSSadaf Ebrahimi 11 2486*22dc650dSSadaf Ebrahimi \x{ff11}1 2487*22dc650dSSadaf Ebrahimi\= Expect no match 2488*22dc650dSSadaf Ebrahimi 1\x{ff11} 2489*22dc650dSSadaf Ebrahimi 2490*22dc650dSSadaf Ebrahimi/^[[:xdigit:]]+$/utf,ucp 2491*22dc650dSSadaf Ebrahimi f0 2492*22dc650dSSadaf Ebrahimi 1A 2493*22dc650dSSadaf Ebrahimi d\x{ff10} 2494*22dc650dSSadaf Ebrahimi \x{ff26}8 2495*22dc650dSSadaf Ebrahimi\= Expect no match 2496*22dc650dSSadaf Ebrahimi 8g\=no_jit 2497*22dc650dSSadaf Ebrahimi 2498*22dc650dSSadaf Ebrahimi/^[[:xdigit:]]+$/utf,ucp,ascii_digit 2499*22dc650dSSadaf Ebrahimi f0 2500*22dc650dSSadaf Ebrahimi 1A 2501*22dc650dSSadaf Ebrahimi\= Expect no match 2502*22dc650dSSadaf Ebrahimi d\x{ff10} 2503*22dc650dSSadaf Ebrahimi \x{ff26}8 2504*22dc650dSSadaf Ebrahimi 8g 2505*22dc650dSSadaf Ebrahimi 2506*22dc650dSSadaf Ebrahimi/>[[:space:]]+</utf,ucp 2507*22dc650dSSadaf Ebrahimi >\x{a0} \x{a0}< 2508*22dc650dSSadaf Ebrahimi >\x{a0}\x{a0}\x{a0}< 2509*22dc650dSSadaf Ebrahimi 2510*22dc650dSSadaf Ebrahimi/>[[:space:]]+</utf,ucp,ascii_posix 2511*22dc650dSSadaf Ebrahimi\= Expect no match 2512*22dc650dSSadaf Ebrahimi >\x{a0} \x{a0}< 2513*22dc650dSSadaf Ebrahimi 2514*22dc650dSSadaf Ebrahimi/(?aP)[[:alnum:]]+/i,ucp,utf 2515*22dc650dSSadaf Ebrahimi abcáxyz 2516*22dc650dSSadaf Ebrahimi abc\x{660}xyz 2517*22dc650dSSadaf Ebrahimi 2518*22dc650dSSadaf Ebrahimi/(?aP)[[:alnum:]\d]+/i,ucp,utf 2519*22dc650dSSadaf Ebrahimi abc\x{660}xyz 2520*22dc650dSSadaf Ebrahimi 2521*22dc650dSSadaf Ebrahimi/(*UCP)(*UTF)[[:alnum:]](?aP:[[:alnum:]])[[:alnum:]]/ 2522*22dc650dSSadaf Ebrahimi \x{660}A\x{660} 2523*22dc650dSSadaf Ebrahimi\= Expect no match 2524*22dc650dSSadaf Ebrahimi \x{660}\x{660}\x{660} 2525*22dc650dSSadaf Ebrahimi 2526*22dc650dSSadaf Ebrahimi# VARIOUS 2527*22dc650dSSadaf Ebrahimi 2528*22dc650dSSadaf Ebrahimi/[\d\s\w]+/a,ucp,utf 2529*22dc650dSSadaf Ebrahimi 9 A\x{660}À 2530*22dc650dSSadaf Ebrahimi 9 AÀ\x{660} 2531*22dc650dSSadaf Ebrahimi 2532*22dc650dSSadaf Ebrahimi# End PCRE2_EXTRA_ASCII_xxx tests 2533*22dc650dSSadaf Ebrahimi 2534*22dc650dSSadaf Ebrahimi/(?<!(|l ))/utf 2535 (?<!(|l )) 2536 2537# End of testinput5 2538