1# This set of tests checks UTF and Unicode property support with the DFA 2# matching functionality of pcre_dfa_match(). A default subject modifier is 3# used to force DFA matching for all tests. 4 5#subject dfa 6#newline_default LF any anyCRLF 7 8/\x{100}ab/utf 9 \x{100}ab 10 11/a\x{100}*b/utf 12 ab 13 a\x{100}b 14 a\x{100}\x{100}b 15 16/a\x{100}+b/utf 17 a\x{100}b 18 a\x{100}\x{100}b 19\= Expect no match 20 ab 21 22/\bX/utf 23 Xoanon 24 +Xoanon 25 \x{300}Xoanon 26\= Expect no match 27 YXoanon 28 29/\BX/utf 30 YXoanon 31\= Expect no match 32 Xoanon 33 +Xoanon 34 \x{300}Xoanon 35 36/X\b/utf 37 X+oanon 38 ZX\x{300}oanon 39 FAX 40\= Expect no match 41 Xoanon 42 43/X\B/utf 44 Xoanon 45\= Expect no match 46 X+oanon 47 ZX\x{300}oanon 48 FAX 49 50/[^a]/utf 51 abcd 52 a\x{100} 53 54/^[abc\x{123}\x{400}-\x{402}]{2,3}\d/utf 55 ab99 56 \x{123}\x{123}45 57 \x{400}\x{401}\x{402}6 58\= Expect no match 59 d99 60 \x{123}\x{122}4 61 \x{400}\x{403}6 62 \x{400}\x{401}\x{402}\x{402}6 63 64/a.b/utf 65 acb 66 a\x7fb 67 a\x{100}b 68\= Expect no match 69 a\nb 70 71/a(.{3})b/utf 72 a\x{4000}xyb 73 a\x{4000}\x7fyb 74 a\x{4000}\x{100}yb 75\= Expect no match 76 a\x{4000}b 77 ac\ncb 78 79/a(.*?)(.)/ 80 a\xc0\x88b 81 82/a(.*?)(.)/utf 83 a\x{100}b 84 85/a(.*)(.)/ 86 a\xc0\x88b 87 88/a(.*)(.)/utf 89 a\x{100}b 90 91/a(.)(.)/ 92 a\xc0\x92bcd 93 94/a(.)(.)/utf 95 a\x{240}bcd 96 97/a(.?)(.)/ 98 a\xc0\x92bcd 99 100/a(.?)(.)/utf 101 a\x{240}bcd 102 103/a(.??)(.)/ 104 a\xc0\x92bcd 105 106/a(.??)(.)/utf 107 a\x{240}bcd 108 109/a(.{3})b/utf 110 a\x{1234}xyb 111 a\x{1234}\x{4321}yb 112 a\x{1234}\x{4321}\x{3412}b 113\= Expect no match 114 a\x{1234}b 115 ac\ncb 116 117/a(.{3,})b/utf 118 a\x{1234}xyb 119 a\x{1234}\x{4321}yb 120 a\x{1234}\x{4321}\x{3412}b 121 axxxxbcdefghijb 122 a\x{1234}\x{4321}\x{3412}\x{3421}b 123\= Expect no match 124 a\x{1234}b 125 126/a(.{3,}?)b/utf 127 a\x{1234}xyb 128 a\x{1234}\x{4321}yb 129 a\x{1234}\x{4321}\x{3412}b 130 axxxxbcdefghijb 131 a\x{1234}\x{4321}\x{3412}\x{3421}b 132\= Expect no match 133 a\x{1234}b 134 135/a(.{3,5})b/utf 136 a\x{1234}xyb 137 a\x{1234}\x{4321}yb 138 a\x{1234}\x{4321}\x{3412}b 139 axxxxbcdefghijb 140 a\x{1234}\x{4321}\x{3412}\x{3421}b 141 axbxxbcdefghijb 142 axxxxxbcdefghijb 143\= Expect no match 144 a\x{1234}b 145 axxxxxxbcdefghijb 146 147/a(.{3,5}?)b/utf 148 a\x{1234}xyb 149 a\x{1234}\x{4321}yb 150 a\x{1234}\x{4321}\x{3412}b 151 axxxxbcdefghijb 152 a\x{1234}\x{4321}\x{3412}\x{3421}b 153 axbxxbcdefghijb 154 axxxxxbcdefghijb 155\= Expect no match 156 a\x{1234}b 157 axxxxxxbcdefghijb 158 159/^[a\x{c0}]/utf 160\= Expect no match 161 \x{100} 162 163/(?<=aXb)cd/utf 164 aXbcd 165 166/(?<=a\x{100}b)cd/utf 167 a\x{100}bcd 168 169/(?<=a\x{100000}b)cd/utf 170 a\x{100000}bcd 171 172/(?:\x{100}){3}b/utf 173 \x{100}\x{100}\x{100}b 174\= Expect no match 175 \x{100}\x{100}b 176 177/\x{ab}/utf 178 \x{ab} 179 \xc2\xab 180\= Expect no match 181 \x00{ab} 182 183/(?<=(.))X/utf 184 WXYZ 185 \x{256}XYZ 186\= Expect no match 187 XYZ 188 189/[^a]+/g,utf 190 bcd 191 \x{100}aY\x{256}Z 192 193/^[^a]{2}/utf 194 \x{100}bc 195 196/^[^a]{2,}/utf 197 \x{100}bcAa 198 199/^[^a]{2,}?/utf 200 \x{100}bca 201 202/[^a]+/gi,utf 203 bcd 204 \x{100}aY\x{256}Z 205 206/^[^a]{2}/i,utf 207 \x{100}bc 208 209/^[^a]{2,}/i,utf 210 \x{100}bcAa 211 212/^[^a]{2,}?/i,utf 213 \x{100}bca 214 215/\x{100}{0,0}/utf 216 abcd 217 218/\x{100}?/utf 219 abcd 220 \x{100}\x{100} 221 222/\x{100}{0,3}/utf 223 \x{100}\x{100} 224 \x{100}\x{100}\x{100}\x{100} 225 226/\x{100}*/utf 227 abce 228 \x{100}\x{100}\x{100}\x{100} 229 230/\x{100}{1,1}/utf 231 abcd\x{100}\x{100}\x{100}\x{100} 232 233/\x{100}{1,3}/utf 234 abcd\x{100}\x{100}\x{100}\x{100} 235 236/\x{100}+/utf 237 abcd\x{100}\x{100}\x{100}\x{100} 238 239/\x{100}{3}/utf 240 abcd\x{100}\x{100}\x{100}XX 241 242/\x{100}{3,5}/utf 243 abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX 244 245/\x{100}{3,}/utf,no_auto_possess 246 abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX 247 248/(?<=a\x{100}{2}b)X/utf 249 Xyyya\x{100}\x{100}bXzzz 250 251/\D*/utf,no_auto_possess 252 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 253 254/\D*/utf,no_auto_possess 255 \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100} 256 257/\D/utf 258 1X2 259 1\x{100}2 260 261/>\S/utf 262 > >X Y 263 > >\x{100} Y 264 265/\d/utf 266 \x{100}3 267 268/\s/utf 269 \x{100} X 270 271/\D+/utf 272 12abcd34 273\= Expect no match 274 1234 275 276/\D{2,3}/utf 277 12abcd34 278 12ab34 279\= Expect no match 280 1234 281 12a34 282 283/\D{2,3}?/utf 284 12abcd34 285 12ab34 286\= Expect no match 287 1234 288 12a34 289 290/\d+/utf 291 12abcd34 292 293/\d{2,3}/utf 294 12abcd34 295 1234abcd 296\= Expect no match 297 1.4 298 299/\d{2,3}?/utf 300 12abcd34 301 1234abcd 302\= Expect no match 303 1.4 304 305/\S+/utf 306 12abcd34 307\= Expect no match 308 \ \ 309 310/\S{2,3}/utf 311 12abcd34 312 1234abcd 313\= Expect no match 314 \ \ 315 316/\S{2,3}?/utf 317 12abcd34 318 1234abcd 319\= Expect no match 320 \ \ 321 322/>\s+</utf 323 12> <34 324 325/>\s{2,3}</utf 326 ab> <cd 327 ab> <ce 328\= Expect no match 329 ab> <cd 330 331/>\s{2,3}?</utf 332 ab> <cd 333 ab> <ce 334\= Expect no match 335 ab> <cd 336 337/\w+/utf 338 12 34 339\= Expect no match 340 +++=*! 341 342/\w{2,3}/utf 343 ab cd 344 abcd ce 345\= Expect no match 346 a.b.c 347 348/\w{2,3}?/utf 349 ab cd 350 abcd ce 351\= Expect no match 352 a.b.c 353 354/\W+/utf 355 12====34 356\= Expect no match 357 abcd 358 359/\W{2,3}/utf 360 ab====cd 361 ab==cd 362\= Expect no match 363 a.b.c 364 365/\W{2,3}?/utf 366 ab====cd 367 ab==cd 368\= Expect no match 369 a.b.c 370 371/[\x{100}]/utf 372 \x{100} 373 Z\x{100} 374 \x{100}Z 375 376/[Z\x{100}]/utf 377 Z\x{100} 378 \x{100} 379 \x{100}Z 380 381/[\x{100}\x{200}]/utf 382 ab\x{100}cd 383 ab\x{200}cd 384 385/[\x{100}-\x{200}]/utf 386 ab\x{100}cd 387 ab\x{200}cd 388 ab\x{111}cd 389 390/[z-\x{200}]/utf 391 ab\x{100}cd 392 ab\x{200}cd 393 ab\x{111}cd 394 abzcd 395 ab|cd 396 397/[Q\x{100}\x{200}]/utf 398 ab\x{100}cd 399 ab\x{200}cd 400 Q? 401 402/[Q\x{100}-\x{200}]/utf 403 ab\x{100}cd 404 ab\x{200}cd 405 ab\x{111}cd 406 Q? 407 408/[Qz-\x{200}]/utf 409 ab\x{100}cd 410 ab\x{200}cd 411 ab\x{111}cd 412 abzcd 413 ab|cd 414 Q? 415 416/[\x{100}\x{200}]{1,3}/utf 417 ab\x{100}cd 418 ab\x{200}cd 419 ab\x{200}\x{100}\x{200}\x{100}cd 420 421/[\x{100}\x{200}]{1,3}?/utf 422 ab\x{100}cd 423 ab\x{200}cd 424 ab\x{200}\x{100}\x{200}\x{100}cd 425 426/[Q\x{100}\x{200}]{1,3}/utf 427 ab\x{100}cd 428 ab\x{200}cd 429 ab\x{200}\x{100}\x{200}\x{100}cd 430 431/[Q\x{100}\x{200}]{1,3}?/utf 432 ab\x{100}cd 433 ab\x{200}cd 434 ab\x{200}\x{100}\x{200}\x{100}cd 435 436/(?<=[\x{100}\x{200}])X/utf 437 abc\x{200}X 438 abc\x{100}X 439\= Expect no match 440 X 441 442/(?<=[Q\x{100}\x{200}])X/utf 443 abc\x{200}X 444 abc\x{100}X 445 abQX 446\= Expect no match 447 X 448 449/(?<=[\x{100}\x{200}]{3})X/utf 450 abc\x{100}\x{200}\x{100}X 451\= Expect no match 452 abc\x{200}X 453 X 454 455/[^\x{100}\x{200}]X/utf 456 AX 457 \x{150}X 458 \x{500}X 459\= Expect no match 460 \x{100}X 461 \x{200}X 462 463/[^Q\x{100}\x{200}]X/utf 464 AX 465 \x{150}X 466 \x{500}X 467\= Expect no match 468 \x{100}X 469 \x{200}X 470 QX 471 472/[^\x{100}-\x{200}]X/utf 473 AX 474 \x{500}X 475\= Expect no match 476 \x{100}X 477 \x{150}X 478 \x{200}X 479 480/[z-\x{100}]/i,utf 481 z 482 Z 483 \x{100} 484\= Expect no match 485 \x{102} 486 y 487 488/[\xFF]/ 489 >\xff< 490 491/[\xff]/utf 492 >\x{ff}< 493 494/[^\xFF]/ 495 XYZ 496 497/[^\xff]/utf 498 XYZ 499 \x{123} 500 501/^[ac]*b/utf 502\= Expect no match 503 xb 504 505/^[ac\x{100}]*b/utf 506\= Expect no match 507 xb 508 509/^[^x]*b/i,utf 510\= Expect no match 511 xb 512 513/^[^x]*b/utf 514\= Expect no match 515 xb 516 517/^\d*b/utf 518\= Expect no match 519 xb 520 521/(|a)/g,utf 522 catac 523 a\x{256}a 524 525/^\x{85}$/i,utf 526 \x{85} 527 528/^abc./gmx,newline=any,utf 529 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK 530 531/abc.$/gmx,newline=any,utf 532 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9 533 534/^a\Rb/bsr=unicode,utf 535 a\nb 536 a\rb 537 a\r\nb 538 a\x0bb 539 a\x0cb 540 a\x{85}b 541 a\x{2028}b 542 a\x{2029}b 543\= Expect no match 544 a\n\rb 545 546/^a\R*b/bsr=unicode,utf 547 ab 548 a\nb 549 a\rb 550 a\r\nb 551 a\x0bb 552 a\x0c\x{2028}\x{2029}b 553 a\x{85}b 554 a\n\rb 555 a\n\r\x{85}\x0cb 556 557/^a\R+b/bsr=unicode,utf 558 a\nb 559 a\rb 560 a\r\nb 561 a\x0bb 562 a\x0c\x{2028}\x{2029}b 563 a\x{85}b 564 a\n\rb 565 a\n\r\x{85}\x0cb 566\= Expect no match 567 ab 568 569/^a\R{1,3}b/bsr=unicode,utf 570 a\nb 571 a\n\rb 572 a\n\r\x{85}b 573 a\r\n\r\nb 574 a\r\n\r\n\r\nb 575 a\n\r\n\rb 576 a\n\n\r\nb 577\= Expect no match 578 a\n\n\n\rb 579 a\r 580 581/\h+\V?\v{3,4}/utf,no_auto_possess 582 \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a 583 584/\V?\v{3,4}/utf,no_auto_possess 585 \x20\x{a0}X\x0a\x0b\x0c\x0d\x0a 586 587/\h+\V?\v{3,4}/utf,no_auto_possess 588 >\x09\x20\x{a0}X\x0a\x0a\x0a< 589 590/\V?\v{3,4}/utf,no_auto_possess 591 >\x09\x20\x{a0}X\x0a\x0a\x0a< 592 593/\H\h\V\v/utf 594 X X\x0a 595 X\x09X\x0b 596\= Expect no match 597 \x{a0} X\x0a 598 599/\H*\h+\V?\v{3,4}/utf,no_auto_possess 600 \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a 601 \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a 602 \x09\x20\x{a0}\x0a\x0b\x0c 603\= Expect no match 604 \x09\x20\x{a0}\x0a\x0b 605 606/\H\h\V\v/utf 607 \x{3001}\x{3000}\x{2030}\x{2028} 608 X\x{180e}X\x{85} 609\= Expect no match 610 \x{2009} X\x0a 611 612/\H*\h+\V?\v{3,4}/utf,no_auto_possess 613 \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a 614 \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a 615 \x09\x20\x{202f}\x0a\x0b\x0c 616\= Expect no match 617 \x09\x{200a}\x{a0}\x{2028}\x0b 618 619/a\Rb/I,bsr=anycrlf,utf 620 a\rb 621 a\nb 622 a\r\nb 623\= Expect no match 624 a\x{85}b 625 a\x0bb 626 627/a\Rb/I,bsr=unicode,utf 628 a\rb 629 a\nb 630 a\r\nb 631 a\x{85}b 632 a\x0bb 633 634/a\R?b/I,bsr=anycrlf,utf 635 a\rb 636 a\nb 637 a\r\nb 638\= Expect no match 639 a\x{85}b 640 a\x0bb 641 642/a\R?b/I,bsr=unicode,utf 643 a\rb 644 a\nb 645 a\r\nb 646 a\x{85}b 647 a\x0bb 648 649/X/newline=any,utf,firstline 650 A\x{1ec5}ABCXYZ 651 652/abcd*/utf 653 xxxxabcd\=ps 654 xxxxabcd\=ph 655 656/abcd*/i,utf 657 xxxxabcd\=ps 658 xxxxabcd\=ph 659 XXXXABCD\=ps 660 XXXXABCD\=ph 661 662/abc\d*/utf 663 xxxxabc1\=ps 664 xxxxabc1\=ph 665 666/abc[de]*/utf 667 xxxxabcde\=ps 668 xxxxabcde\=ph 669 670/\bthe cat\b/utf 671 the cat\=ps 672 the cat\=ph 673 674/./newline=crlf,utf 675 \r\=ps 676 \r\=ph 677 678/.{2,3}/newline=crlf,utf 679 \r\=ps 680 \r\=ph 681 \r\r\=ps 682 \r\r\=ph 683 \r\r\r\=ps 684 \r\r\r\=ph 685 686/.{2,3}?/newline=crlf,utf 687 \r\=ps 688 \r\=ph 689 \r\r\=ps 690 \r\r\=ph 691 \r\r\r\=ps 692 \r\r\r\=ph 693 694/[^\x{100}]/utf 695 \x{100}\x{101}X 696 697/[^\x{100}]+/utf 698 \x{100}\x{101}X 699 700/\pL\P{Nd}/utf 701 AB 702\= Expect no match 703 A0 704 00 705 706/\X./utf 707 AB 708 A\x{300}BC 709 A\x{300}\x{301}\x{302}BC 710\= Expect no match 711 \x{300} 712 713/\X\X/utf 714 ABC 715 A\x{300}B\x{300}\x{301}C 716 A\x{300}\x{301}\x{302}BC 717\= Expect no match 718 \x{300} 719 720/^\pL+/utf 721 abcd 722 a 723 724/^\PL+/utf 725 1234 726 = 727\= Expect no match 728 abcd 729 730/^\X+/utf 731 abcdA\x{300}\x{301}\x{302} 732 A\x{300}\x{301}\x{302} 733 A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302} 734 a 735 \x{300}\x{301}\x{302} 736 737/\X?abc/utf 738 abc 739 A\x{300}abc 740 A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz 741 \x{300}abc 742 743/^\X?abc/utf 744 abc 745 A\x{300}abc 746 \x{300}abc 747\= Expect no match 748 A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz 749 750/\X*abc/utf 751 abc 752 A\x{300}abc 753 A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz 754 \x{300}abc 755 756/^\X*abc/utf 757 abc 758 A\x{300}abc 759 A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz 760 \x{300}abc 761 762/^\pL?=./utf 763 A=b 764 =c 765\= Expect no match 766 1=2 767 AAAA=b 768 769/^\pL*=./utf 770 AAAA=b 771 =c 772\= Expect no match 773 1=2 774 775/^\X{2,3}X/utf 776 A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X 777 A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X 778\= Expect no match 779 X 780 A\x{300}\x{301}\x{302}X 781 A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X 782 783/^\pC\pL\pM\pN\pP\pS\pZ</utf 784 \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}< 785 \np\x{300}9!\$ < 786\= Expect no match 787 ap\x{300}9!\$ < 788 789/^\PC/utf 790 X 791\= Expect no match 792 \x7f 793 794/^\PL/utf 795 9 796\= Expect no match 797 \x{c0} 798 799/^\PM/utf 800 X 801\= Expect no match 802 \x{30f} 803 804/^\PN/utf 805 X 806\= Expect no match 807 \x{660} 808 809/^\PP/utf 810 X 811\= Expect no match 812 \x{66c} 813 814/^\PS/utf 815 X 816\= Expect no match 817 \x{f01} 818 819/^\PZ/utf 820 X 821\= Expect no match 822 \x{1680} 823 824/^\p{Cc}/utf 825 \x{017} 826 \x{09f} 827\= Expect no match 828 \x{0600} 829 830/^\p{Cf}/utf 831 \x{601} 832 \x{180e} 833 \x{061c} 834 \x{2066} 835 \x{2067} 836 \x{2068} 837 \x{2069} 838\= Expect no match 839 \x{09f} 840 841/^\p{Cn}/utf 842\= Expect no match 843 \x{09f} 844 845/^\p{Co}/utf 846 \x{f8ff} 847\= Expect no match 848 \x{09f} 849 850/^\p{Cs}/utf 851 \x{dfff}\=no_utf_check 852\= Expect no match 853 \x{09f} 854 855/^\p{Ll}/utf 856 a 857\= Expect no match 858 Z 859 \x{e000} 860 861/^\p{Lm}/utf 862 \x{2b0} 863\= Expect no match 864 a 865 866/^\p{Lo}/utf 867 \x{1bb} 868\= Expect no match 869 a 870 \x{2b0} 871 872/^\p{Lt}/utf 873 \x{1c5} 874\= Expect no match 875 a 876 \x{2b0} 877 878/^\p{Lu}/utf 879 A 880\= Expect no match 881 \x{2b0} 882 883/^\p{Mc}/utf 884 \x{903} 885\= Expect no match 886 X 887 \x{300} 888 889/^\p{Me}/utf 890 \x{488} 891\= Expect no match 892 X 893 \x{903} 894 \x{300} 895 896/^\p{Mn}/utf 897 \x{300} 898 \x{1a1b} 899\= Expect no match 900 X 901 \x{903} 902 903/^\p{Nd}+/utf,no_auto_possess 904 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a} 905 \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa} 906 \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970} 907\= Expect no match 908 X 909 910/^\p{Nl}/utf 911 \x{16ee} 912\= Expect no match 913 X 914 \x{966} 915 916/^\p{No}/utf 917 \x{b2} 918 \x{b3} 919\= Expect no match 920 X 921 \x{16ee} 922 923/^\p{Pc}/utf 924 \x5f 925 \x{203f} 926\= Expect no match 927 X 928 - 929 \x{58a} 930 931/^\p{Pd}/utf 932 - 933 \x{58a} 934\= Expect no match 935 X 936 \x{203f} 937 938/^\p{Pe}/utf 939 ) 940 ] 941 } 942 \x{f3b} 943 \x{2309} 944 \x{230b} 945\= Expect no match 946 X 947 \x{203f} 948 ( 949 [ 950 { 951 \x{f3c} 952 953/^\p{Pf}/utf 954 \x{bb} 955 \x{2019} 956\= Expect no match 957 X 958 \x{203f} 959 960/^\p{Pi}/utf 961 \x{ab} 962 \x{2018} 963\= Expect no match 964 X 965 \x{203f} 966 967/^\p{Po}/utf 968 ! 969 \x{37e} 970\= Expect no match 971 X 972 \x{203f} 973 974/^\p{Ps}/utf 975 ( 976 [ 977 { 978 \x{f3c} 979 \x{2308} 980 \x{230a} 981\= Expect no match 982 X 983 ) 984 ] 985 } 986 \x{f3b} 987 988/^\p{Sc}+/utf 989 $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6} 990 \x{9f2} 991\= Expect no match 992 X 993 \x{2c2} 994 995/^\p{Sk}/utf 996 \x{2c2} 997\= Expect no match 998 X 999 \x{9f2} 1000 1001/^\p{Sm}+/utf 1002 +<|~\x{ac}\x{2044} 1003\= Expect no match 1004 X 1005 \x{9f2} 1006 1007/^\p{So}/utf 1008 \x{a6} 1009 \x{482} 1010\= Expect no match 1011 X 1012 \x{9f2} 1013 1014/^\p{Zl}/utf 1015 \x{2028} 1016\= Expect no match 1017 X 1018 \x{2029} 1019 1020/^\p{Zp}/utf 1021 \x{2029} 1022\= Expect no match 1023 X 1024 \x{2028} 1025 1026/^\p{Zs}/utf 1027 \ \ 1028 \x{a0} 1029 \x{1680} 1030 \x{2000} 1031 \x{2001} 1032\= Expect no match 1033 \x{2028} 1034 \x{200d} 1035 1036/\p{Nd}+(..)/utf 1037 \x{660}\x{661}\x{662}ABC 1038 1039/\p{Nd}+?(..)/utf 1040 \x{660}\x{661}\x{662}ABC 1041 1042/\p{Nd}{2,}(..)/utf 1043 \x{660}\x{661}\x{662}ABC 1044 1045/\p{Nd}{2,}?(..)/utf 1046 \x{660}\x{661}\x{662}ABC 1047 1048/\p{Nd}*(..)/utf 1049 \x{660}\x{661}\x{662}ABC 1050 1051/\p{Nd}*?(..)/utf 1052 \x{660}\x{661}\x{662}ABC 1053 1054/\p{Nd}{2}(..)/utf 1055 \x{660}\x{661}\x{662}ABC 1056 1057/\p{Nd}{2,3}(..)/utf 1058 \x{660}\x{661}\x{662}ABC 1059 1060/\p{Nd}{2,3}?(..)/utf 1061 \x{660}\x{661}\x{662}ABC 1062 1063/\p{Nd}?(..)/utf 1064 \x{660}\x{661}\x{662}ABC 1065 1066/\p{Nd}??(..)/utf 1067 \x{660}\x{661}\x{662}ABC 1068 1069/\p{Nd}*+(..)/utf 1070 \x{660}\x{661}\x{662}ABC 1071 1072/\p{Nd}*+(...)/utf 1073 \x{660}\x{661}\x{662}ABC 1074 1075/\p{Nd}*+(....)/utf 1076\= Expect no match 1077 \x{660}\x{661}\x{662}ABC 1078 1079/\p{Lu}/i,utf 1080 A 1081 a\x{10a0}B 1082\= Expect no match 1083 a 1084 \x{1d00} 1085 1086/\p{^Lu}/i,utf 1087 1234 1088\= Expect no match 1089 ABC 1090 1091/\P{Lu}/i,utf 1092 1234 1093\= Expect no match 1094 ABC 1095 1096/(?<=A\p{Nd})XYZ/utf 1097 A2XYZ 1098 123A5XYZPQR 1099 ABA\x{660}XYZpqr 1100\= Expect no match 1101 AXYZ 1102 XYZ 1103 1104/(?<!\pL)XYZ/utf 1105 1XYZ 1106 AB=XYZ.. 1107 XYZ 1108\= Expect no match 1109 WXYZ 1110 1111/[\p{Nd}]/utf 1112 1234 1113 1114/[\p{Nd}+-]+/utf 1115 1234 1116 12-34 1117 12+\x{661}-34 1118\= Expect no match 1119 abcd 1120 1121/[\P{Nd}]+/utf 1122 abcd 1123\= Expect no match 1124 1234 1125 1126/\D+/utf,no_auto_possess 1127 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1128\= Expect no match 1129 11111111111111111111111111111111111111111111111111111111111111111111111 1130 1131/\P{Nd}+/utf,no_auto_possess 1132 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1133\= Expect no match 1134 11111111111111111111111111111111111111111111111111111111111111111111111 1135 1136/[\D]+/utf,no_auto_possess 1137 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1138\= Expect no match 1139 11111111111111111111111111111111111111111111111111111111111111111111111 1140 1141/[\P{Nd}]+/utf,no_auto_possess 1142 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1143\= Expect no match 1144 11111111111111111111111111111111111111111111111111111111111111111111111 1145 1146/[\D\P{Nd}]+/utf,no_auto_possess 1147 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1148\= Expect no match 1149 11111111111111111111111111111111111111111111111111111111111111111111111 1150 1151/\pL/utf 1152 a 1153 A 1154 1155/\pL/i,utf 1156 a 1157 A 1158 1159/\p{Lu}/utf 1160 A 1161 aZ 1162\= Expect no match 1163 abc 1164 1165/\p{Lu}/i,utf 1166 A 1167 aZ 1168\= Expect no match 1169 abc 1170 1171/\p{Ll}/utf 1172 a 1173 Az 1174\= Expect no match 1175 ABC 1176 1177/\p{Ll}/i,utf 1178 a 1179 Az 1180\= Expect no match 1181 ABC 1182 1183/^\x{c0}$/i,utf 1184 \x{c0} 1185 \x{e0} 1186 1187/^\x{e0}$/i,utf 1188 \x{c0} 1189 \x{e0} 1190 1191/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf 1192 A\x{391}\x{10427}\x{ff3a}\x{1fb0} 1193\= Expect no match 1194 a\x{391}\x{10427}\x{ff3a}\x{1fb0} 1195 A\x{3b1}\x{10427}\x{ff3a}\x{1fb0} 1196 A\x{391}\x{1044F}\x{ff3a}\x{1fb0} 1197 A\x{391}\x{10427}\x{ff5a}\x{1fb0} 1198 A\x{391}\x{10427}\x{ff3a}\x{1fb8} 1199 1200/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf 1201 A\x{391}\x{10427}\x{ff3a}\x{1fb0} 1202 a\x{391}\x{10427}\x{ff3a}\x{1fb0} 1203 A\x{3b1}\x{10427}\x{ff3a}\x{1fb0} 1204 A\x{391}\x{1044F}\x{ff3a}\x{1fb0} 1205 A\x{391}\x{10427}\x{ff5a}\x{1fb0} 1206 A\x{391}\x{10427}\x{ff3a}\x{1fb8} 1207 1208/\x{391}+/i,utf 1209 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391} 1210 1211/\x{391}{3,5}(.)/i,utf 1212 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X 1213 1214/\x{391}{3,5}?(.)/i,utf 1215 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X 1216 1217/[\x{391}\x{ff3a}]/i,utf 1218 \x{391} 1219 \x{ff3a} 1220 \x{3b1} 1221 \x{ff5a} 1222 1223/[\x{c0}\x{391}]/i,utf 1224 \x{c0} 1225 \x{e0} 1226 1227/[\x{105}-\x{109}]/i,utf 1228 \x{104} 1229 \x{105} 1230 \x{109} 1231\= Expect no match 1232 \x{100} 1233 \x{10a} 1234 1235/[z-\x{100}]/i,utf 1236 Z 1237 z 1238 \x{39c} 1239 \x{178} 1240 | 1241 \x{80} 1242 \x{ff} 1243 \x{100} 1244 \x{101} 1245\= Expect no match 1246 \x{102} 1247 Y 1248 y 1249 1250/[z-\x{100}]/i,utf 1251 1252/^\X/utf 1253 A 1254 A\x{300}BC 1255 A\x{300}\x{301}\x{302}BC 1256 \x{300} 1257 1258/^(\X*)C/utf 1259 A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 1260 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 1261 1262/^(\X*?)C/utf 1263 A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 1264 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 1265 1266/^(\X*)(.)/utf 1267 A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 1268 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 1269 1270/^(\X*?)(.)/utf 1271 A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 1272 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 1273 1274/^\X(.)/utf 1275\= Expect no match 1276 A\x{300}\x{301}\x{302} 1277 1278/^\X{2,3}(.)/utf 1279 A\x{300}\x{301}B\x{300}X 1280 A\x{300}\x{301}B\x{300}C\x{300}\x{301} 1281 A\x{300}\x{301}B\x{300}C\x{300}\x{301}X 1282 A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X 1283 1284/^\X{2,3}?(.)/utf 1285 A\x{300}\x{301}B\x{300}X 1286 A\x{300}\x{301}B\x{300}C\x{300}\x{301} 1287 A\x{300}\x{301}B\x{300}C\x{300}\x{301}X 1288 A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X 1289 1290/^\pN{2,3}X/ 1291 12X 1292 123X 1293\= Expect no match 1294 X 1295 1X 1296 1234X 1297 1298/\x{100}/i,utf 1299 \x{100} 1300 \x{101} 1301 1302/^\p{Han}+/utf 1303 \x{2e81}\x{3007}\x{2f804}\x{31a0} 1304\= Expect no match 1305 \x{2e7f} 1306 1307/^\P{Katakana}+/utf 1308 \x{3105} 1309\= Expect no match 1310 \x{30ff} 1311 1312/^[\p{Arabic}]/utf 1313 \x{06e9} 1314 \x{060b} 1315\= Expect no match 1316 X\x{06e9} 1317 1318/^[\P{Yi}]/utf 1319 \x{2f800} 1320\= Expect no match 1321 \x{a014} 1322 \x{a4c6} 1323 1324/^\p{Any}X/utf 1325 AXYZ 1326 \x{1234}XYZ 1327\= Expect no match 1328 X 1329 1330/^\P{Any}X/utf 1331\= Expect no match 1332 AX 1333 1334/^\p{Any}?X/utf 1335 XYZ 1336 AXYZ 1337 \x{1234}XYZ 1338\= Expect no match 1339 ABXYZ 1340 1341/^\P{Any}?X/utf 1342 XYZ 1343\= Expect no match 1344 AXYZ 1345 \x{1234}XYZ 1346 ABXYZ 1347 1348/^\p{Any}+X/utf 1349 AXYZ 1350 \x{1234}XYZ 1351 A\x{1234}XYZ 1352\= Expect no match 1353 XYZ 1354 1355/^\P{Any}+X/utf 1356\= Expect no match 1357 AXYZ 1358 \x{1234}XYZ 1359 A\x{1234}XYZ 1360 XYZ 1361 1362/^\p{Any}*X/utf 1363 XYZ 1364 AXYZ 1365 \x{1234}XYZ 1366 A\x{1234}XYZ 1367 1368/^\P{Any}*X/utf 1369 XYZ 1370\= Expect no match 1371 AXYZ 1372 \x{1234}XYZ 1373 A\x{1234}XYZ 1374 1375/^[\p{Any}]X/utf 1376 AXYZ 1377 \x{1234}XYZ 1378\= Expect no match 1379 X 1380 1381/^[\P{Any}]X/utf 1382\= Expect no match 1383 AX 1384 1385/^[\p{Any}]?X/utf 1386 XYZ 1387 AXYZ 1388 \x{1234}XYZ 1389\= Expect no match 1390 ABXYZ 1391 1392/^[\P{Any}]?X/utf 1393 XYZ 1394\= Expect no match 1395 AXYZ 1396 \x{1234}XYZ 1397 ABXYZ 1398 1399/^[\p{Any}]+X/utf 1400 AXYZ 1401 \x{1234}XYZ 1402 A\x{1234}XYZ 1403\= Expect no match 1404 XYZ 1405 1406/^[\P{Any}]+X/utf 1407\= Expect no match 1408 AXYZ 1409 \x{1234}XYZ 1410 A\x{1234}XYZ 1411 XYZ 1412 1413/^[\p{Any}]*X/utf 1414 XYZ 1415 AXYZ 1416 \x{1234}XYZ 1417 A\x{1234}XYZ 1418 1419/^[\P{Any}]*X/utf 1420 XYZ 1421\= Expect no match 1422 AXYZ 1423 \x{1234}XYZ 1424 A\x{1234}XYZ 1425 1426/^\p{Any}{3,5}?/utf 1427 abcdefgh 1428 \x{1234}\n\r\x{3456}xyz 1429 1430/^\p{Any}{3,5}/utf 1431 abcdefgh 1432 \x{1234}\n\r\x{3456}xyz 1433 1434/^\P{Any}{3,5}?/utf 1435\= Expect no match 1436 abcdefgh 1437 \x{1234}\n\r\x{3456}xyz 1438 1439/^\p{L&}X/utf 1440 AXY 1441 aXY 1442 \x{1c5}XY 1443\= Expect no match 1444 \x{1bb}XY 1445 \x{2b0}XY 1446 !XY 1447 1448/^[\p{L&}]X/utf 1449 AXY 1450 aXY 1451 \x{1c5}XY 1452\= Expect no match 1453 \x{1bb}XY 1454 \x{2b0}XY 1455 !XY 1456 1457/^\p{L&}+X/utf 1458 AXY 1459 aXY 1460 AbcdeXyz 1461 \x{1c5}AbXY 1462 abcDEXypqreXlmn 1463\= Expect no match 1464 \x{1bb}XY 1465 \x{2b0}XY 1466 !XY 1467 1468/^[\p{L&}]+X/utf 1469 AXY 1470 aXY 1471 AbcdeXyz 1472 \x{1c5}AbXY 1473 abcDEXypqreXlmn 1474\= Expect no match 1475 \x{1bb}XY 1476 \x{2b0}XY 1477 !XY 1478 1479/^\p{L&}+?X/utf 1480 AXY 1481 aXY 1482 AbcdeXyz 1483 \x{1c5}AbXY 1484 abcDEXypqreXlmn 1485\= Expect no match 1486 \x{1bb}XY 1487 \x{2b0}XY 1488 !XY 1489 1490/^[\p{L&}]+?X/utf 1491 AXY 1492 aXY 1493 AbcdeXyz 1494 \x{1c5}AbXY 1495 abcDEXypqreXlmn 1496\= Expect no match 1497 \x{1bb}XY 1498 \x{2b0}XY 1499 !XY 1500 1501/^\P{L&}X/utf 1502 !XY 1503 \x{1bb}XY 1504 \x{2b0}XY 1505\= Expect no match 1506 \x{1c5}XY 1507 AXY 1508 1509/^[\P{L&}]X/utf 1510 !XY 1511 \x{1bb}XY 1512 \x{2b0}XY 1513\= Expect no match 1514 \x{1c5}XY 1515 AXY 1516 1517/^\x{023a}+?(\x{0130}+)/i,utf 1518 \x{023a}\x{2c65}\x{0130} 1519 1520/^\x{023a}+([^X])/i,utf 1521 \x{023a}\x{2c65}X 1522 1523/\x{c0}+\x{116}+/i,utf 1524 \x{c0}\x{e0}\x{116}\x{117} 1525 1526/[\x{c0}\x{116}]+/i,utf 1527 \x{c0}\x{e0}\x{116}\x{117} 1528 1529# Check property support in non-UTF-8 mode 1530 1531/\p{L}{4}/ 1532 123abcdefg 1533 123abc\xc4\xc5zz 1534 1535/\p{Carian}\p{Cham}\p{Kayah_Li}\p{Lepcha}\p{Lycian}\p{Lydian}\p{Ol_Chiki}\p{Rejang}\p{Saurashtra}\p{Sundanese}\p{Vai}/utf 1536 \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}==== 1537 1538/\x{a77d}\x{1d79}/i,utf 1539 \x{a77d}\x{1d79} 1540 \x{1d79}\x{a77d} 1541 1542/\x{a77d}\x{1d79}/utf 1543 \x{a77d}\x{1d79} 1544\= Expect no match 1545 \x{1d79}\x{a77d} 1546 1547/^\p{Xan}/utf 1548 ABCD 1549 1234 1550 \x{6ca} 1551 \x{a6c} 1552 \x{10a7} 1553\= Expect no match 1554 _ABC 1555 1556/^\p{Xan}+/utf 1557 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1558\= Expect no match 1559 _ABC 1560 1561/^\p{Xan}*/utf 1562 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1563 1564/^\p{Xan}{2,9}/utf 1565 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1566 1567/^[\p{Xan}]/utf 1568 ABCD1234_ 1569 1234abcd_ 1570 \x{6ca} 1571 \x{a6c} 1572 \x{10a7} 1573\= Expect no match 1574 _ABC 1575 1576/^[\p{Xan}]+/utf 1577 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1578\= Expect no match 1579 _ABC 1580 1581/^>\p{Xsp}/utf 1582 >\x{1680}\x{2028}\x{0b} 1583\= Expect no match 1584 \x{0b} 1585 1586/^>\p{Xsp}+/utf,no_auto_possess 1587 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1588 1589/^>\p{Xsp}*/utf,no_auto_possess 1590 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1591 1592/^>\p{Xsp}{2,9}/utf,no_auto_possess 1593 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1594 1595/^>[\p{Xsp}]/utf,no_auto_possess 1596 >\x{2028}\x{0b} 1597 1598/^>[\p{Xsp}]+/utf,no_auto_possess 1599 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1600 1601/^>\p{Xps}/utf 1602 >\x{1680}\x{2028}\x{0b} 1603 >\x{a0} 1604\= Expect no match 1605 \x{0b} 1606 1607/^>\p{Xps}+/utf 1608 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1609 1610/^>\p{Xps}+?/utf 1611 >\x{1680}\x{2028}\x{0b} 1612 1613/^>\p{Xps}*/utf 1614 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1615 1616/^>\p{Xps}{2,9}/utf 1617 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1618 1619/^>\p{Xps}{2,9}?/utf 1620 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1621 1622/^>[\p{Xps}]/utf 1623 >\x{2028}\x{0b} 1624 1625/^>[\p{Xps}]+/utf 1626 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1627 1628/^\p{Xwd}/utf 1629 ABCD 1630 1234 1631 \x{6ca} 1632 \x{a6c} 1633 \x{10a7} 1634 _ABC 1635\= Expect no match 1636 [] 1637 1638/^\p{Xwd}+/utf 1639 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1640 1641/^\p{Xwd}*/utf 1642 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1643 1644/^\p{Xwd}{2,9}/utf 1645 A_12\x{6ca}\x{a6c}\x{10a7} 1646 1647/^[\p{Xwd}]/utf 1648 ABCD1234_ 1649 1234abcd_ 1650 \x{6ca} 1651 \x{a6c} 1652 \x{10a7} 1653 _ABC 1654\= Expect no match 1655 [] 1656 1657/^[\p{Xwd}]+/utf 1658 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1659 1660# Unicode properties for \b abd \B 1661 1662/\b...\B/utf,ucp 1663 abc_ 1664 \x{37e}abc\x{376} 1665 \x{37e}\x{376}\x{371}\x{393}\x{394} 1666 !\x{c0}++\x{c1}\x{c2} 1667 !\x{c0}+++++ 1668 1669# Without PCRE_UCP, non-ASCII always fail, even if < 256 1670 1671/\b...\B/utf 1672 abc_ 1673\= Expect no match 1674 \x{37e}abc\x{376} 1675 \x{37e}\x{376}\x{371}\x{393}\x{394} 1676 !\x{c0}++\x{c1}\x{c2} 1677 !\x{c0}+++++ 1678 1679# With PCRE_UCP, non-UTF8 chars that are < 256 still check properties 1680 1681/\b...\B/ucp 1682 abc_ 1683 !\x{c0}++\x{c1}\x{c2} 1684 !\x{c0}+++++ 1685 1686# Caseless single negated characters > 127 need UCP support 1687 1688/[^\x{100}]/i,utf 1689 \x{100}\x{101}X 1690 1691/[^\x{100}]+/i,utf 1692 \x{100}\x{101}XX 1693 1694/^\X/utf 1695 A\=ps 1696 A\=ph 1697 A\x{300}\x{301}\=ps 1698 A\x{300}\x{301}\=ph 1699 A\x{301}\=ps 1700 A\x{301}\=ph 1701 1702/^\X{2,3}/utf 1703 A\=ps 1704 A\=ph 1705 AA\=ps 1706 AA\=ph 1707 A\x{300}\x{301}\=ps 1708 A\x{300}\x{301}\=ph 1709 A\x{300}\x{301}A\x{300}\x{301}\=ps 1710 A\x{300}\x{301}A\x{300}\x{301}\=ph 1711 1712/^\X{2}/utf 1713 AA\=ps 1714 AA\=ph 1715 A\x{300}\x{301}A\x{300}\x{301}\=ps 1716 A\x{300}\x{301}A\x{300}\x{301}\=ph 1717 1718/^\X+/utf 1719 AA\=ps 1720 AA\=ph 1721 1722/^\X+?Z/utf 1723 AA\=ps 1724 AA\=ph 1725 1726# These are tests for extended grapheme clusters 1727 1728/^\X/utf,aftertext 1729 G\x{34e}\x{34e}X 1730 \x{34e}\x{34e}X 1731 \x04X 1732 \x{1100}X 1733 \x{1100}\x{34e}X 1734 \x{1b04}\x{1b04}X 1735\= These match up to the roman letters 1736 \x{1111}\x{1111}L,L 1737 \x{1111}\x{1111}\x{1169}L,L,V 1738 \x{1111}\x{ae4c}L, LV 1739 \x{1111}\x{ad89}L, LVT 1740 \x{1111}\x{ae4c}\x{1169}L, LV, V 1741 \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V 1742 \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T 1743 \x{1111}\x{ad89}\x{11fe}L, LVT, T 1744 \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T 1745 \x{ad89}\x{11fe}\x{11fe}LVT, T, T 1746\= These match just the first codepoint (invalid sequence) 1747 \x{1111}\x{11fe}L, T 1748 \x{ae4c}\x{1111}LV, L 1749 \x{ae4c}\x{ae4c}LV, LV 1750 \x{ae4c}\x{ad89}LV, LVT 1751 \x{1169}\x{1111}V, L 1752 \x{1169}\x{ae4c}V, LV 1753 \x{1169}\x{ad89}V, LVT 1754 \x{ad89}\x{1111}LVT, L 1755 \x{ad89}\x{1169}LVT, V 1756 \x{ad89}\x{ae4c}LVT, LV 1757 \x{ad89}\x{ad89}LVT, LVT 1758 \x{11fe}\x{1111}T, L 1759 \x{11fe}\x{1169}T, V 1760 \x{11fe}\x{ae4c}T, LV 1761 \x{11fe}\x{ad89}T, LVT 1762\= Test extend and spacing mark 1763 \x{1111}\x{ae4c}\x{0711}L, LV, extend 1764 \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark 1765 \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark 1766\= Test CR, LF, and control 1767 \x0d\x{0711}CR, extend 1768 \x0d\x{1b04}CR, spacingmark 1769 \x0a\x{0711}LF, extend 1770 \x0a\x{1b04}LF, spacingmark 1771 \x0b\x{0711}Control, extend 1772 \x09\x{1b04}Control, spacingmark 1773\= There are no Prepend characters, so we can't test Prepend, CR 1774 1775/^(?>\X{2})X/utf,aftertext 1776 \x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1777 1778/^\X{2,4}X/utf,aftertext 1779 \x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1780 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1781 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1782 1783/^\X{2,4}?X/utf,aftertext 1784 \x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1785 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1786 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1787 1788/\x{1e9e}+/i,utf 1789 \x{1e9e}\x{00df} 1790 1791/[z\x{1e9e}]+/i,utf 1792 \x{1e9e}\x{00df} 1793 1794/\x{00df}+/i,utf 1795 \x{1e9e}\x{00df} 1796 1797/[z\x{00df}]+/i,utf 1798 \x{1e9e}\x{00df} 1799 1800/\x{1f88}+/i,utf 1801 \x{1f88}\x{1f80} 1802 1803/[z\x{1f88}]+/i,utf 1804 \x{1f88}\x{1f80} 1805 1806# Perl matches these 1807 1808/\x{00b5}+/i,utf 1809 \x{00b5}\x{039c}\x{03bc} 1810 1811/\x{039c}+/i,utf 1812 \x{00b5}\x{039c}\x{03bc} 1813 1814/\x{03bc}+/i,utf 1815 \x{00b5}\x{039c}\x{03bc} 1816 1817 1818/\x{00c5}+/i,utf 1819 \x{00c5}\x{00e5}\x{212b} 1820 1821/\x{00e5}+/i,utf 1822 \x{00c5}\x{00e5}\x{212b} 1823 1824/\x{212b}+/i,utf 1825 \x{00c5}\x{00e5}\x{212b} 1826 1827/\x{01c4}+/i,utf 1828 \x{01c4}\x{01c5}\x{01c6} 1829 1830/\x{01c5}+/i,utf 1831 \x{01c4}\x{01c5}\x{01c6} 1832 1833/\x{01c6}+/i,utf 1834 \x{01c4}\x{01c5}\x{01c6} 1835 1836/\x{01c7}+/i,utf 1837 \x{01c7}\x{01c8}\x{01c9} 1838 1839/\x{01c8}+/i,utf 1840 \x{01c7}\x{01c8}\x{01c9} 1841 1842/\x{01c9}+/i,utf 1843 \x{01c7}\x{01c8}\x{01c9} 1844 1845 1846/\x{01ca}+/i,utf 1847 \x{01ca}\x{01cb}\x{01cc} 1848 1849/\x{01cb}+/i,utf 1850 \x{01ca}\x{01cb}\x{01cc} 1851 1852/\x{01cc}+/i,utf 1853 \x{01ca}\x{01cb}\x{01cc} 1854 1855/\x{01f1}+/i,utf 1856 \x{01f1}\x{01f2}\x{01f3} 1857 1858/\x{01f2}+/i,utf 1859 \x{01f1}\x{01f2}\x{01f3} 1860 1861/\x{01f3}+/i,utf 1862 \x{01f1}\x{01f2}\x{01f3} 1863 1864/\x{0345}+/i,utf 1865 \x{0345}\x{0399}\x{03b9}\x{1fbe} 1866 1867/\x{0399}+/i,utf 1868 \x{0345}\x{0399}\x{03b9}\x{1fbe} 1869 1870/\x{03b9}+/i,utf 1871 \x{0345}\x{0399}\x{03b9}\x{1fbe} 1872 1873/\x{1fbe}+/i,utf 1874 \x{0345}\x{0399}\x{03b9}\x{1fbe} 1875 1876/\x{0392}+/i,utf 1877 \x{0392}\x{03b2}\x{03d0} 1878 1879/\x{03b2}+/i,utf 1880 \x{0392}\x{03b2}\x{03d0} 1881 1882/\x{03d0}+/i,utf 1883 \x{0392}\x{03b2}\x{03d0} 1884 1885 1886/\x{0395}+/i,utf 1887 \x{0395}\x{03b5}\x{03f5} 1888 1889/\x{03b5}+/i,utf 1890 \x{0395}\x{03b5}\x{03f5} 1891 1892/\x{03f5}+/i,utf 1893 \x{0395}\x{03b5}\x{03f5} 1894 1895/\x{0398}+/i,utf 1896 \x{0398}\x{03b8}\x{03d1}\x{03f4} 1897 1898/\x{03b8}+/i,utf 1899 \x{0398}\x{03b8}\x{03d1}\x{03f4} 1900 1901/\x{03d1}+/i,utf 1902 \x{0398}\x{03b8}\x{03d1}\x{03f4} 1903 1904/\x{03f4}+/i,utf 1905 \x{0398}\x{03b8}\x{03d1}\x{03f4} 1906 1907/\x{039a}+/i,utf 1908 \x{039a}\x{03ba}\x{03f0} 1909 1910/\x{03ba}+/i,utf 1911 \x{039a}\x{03ba}\x{03f0} 1912 1913/\x{03f0}+/i,utf 1914 \x{039a}\x{03ba}\x{03f0} 1915 1916/\x{03a0}+/i,utf 1917 \x{03a0}\x{03c0}\x{03d6} 1918 1919/\x{03c0}+/i,utf 1920 \x{03a0}\x{03c0}\x{03d6} 1921 1922/\x{03d6}+/i,utf 1923 \x{03a0}\x{03c0}\x{03d6} 1924 1925/\x{03a1}+/i,utf 1926 \x{03a1}\x{03c1}\x{03f1} 1927 1928/\x{03c1}+/i,utf 1929 \x{03a1}\x{03c1}\x{03f1} 1930 1931/\x{03f1}+/i,utf 1932 \x{03a1}\x{03c1}\x{03f1} 1933 1934/\x{03a3}+/i,utf 1935 \x{03A3}\x{03C2}\x{03C3} 1936 1937/\x{03c2}+/i,utf 1938 \x{03A3}\x{03C2}\x{03C3} 1939 1940/\x{03c3}+/i,utf 1941 \x{03A3}\x{03C2}\x{03C3} 1942 1943/\x{03a6}+/i,utf 1944 \x{03a6}\x{03c6}\x{03d5} 1945 1946/\x{03c6}+/i,utf 1947 \x{03a6}\x{03c6}\x{03d5} 1948 1949/\x{03d5}+/i,utf 1950 \x{03a6}\x{03c6}\x{03d5} 1951 1952/\x{03c9}+/i,utf 1953 \x{03c9}\x{03a9}\x{2126} 1954 1955/\x{03a9}+/i,utf 1956 \x{03c9}\x{03a9}\x{2126} 1957 1958/\x{2126}+/i,utf 1959 \x{03c9}\x{03a9}\x{2126} 1960 1961/\x{1e60}+/i,utf 1962 \x{1e60}\x{1e61}\x{1e9b} 1963 1964/\x{1e61}+/i,utf 1965 \x{1e60}\x{1e61}\x{1e9b} 1966 1967/\x{1e9b}+/i,utf 1968 \x{1e60}\x{1e61}\x{1e9b} 1969 1970/\x{1e9e}+/i,utf 1971 \x{1e9e}\x{00df} 1972 1973/\x{00df}+/i,utf 1974 \x{1e9e}\x{00df} 1975 1976/\x{1f88}+/i,utf 1977 \x{1f88}\x{1f80} 1978 1979/\x{1f80}+/i,utf 1980 \x{1f88}\x{1f80} 1981 1982/\x{004b}+/i,utf 1983 \x{004b}\x{006b}\x{212a} 1984 1985/\x{006b}+/i,utf 1986 \x{004b}\x{006b}\x{212a} 1987 1988/\x{212a}+/i,utf 1989 \x{004b}\x{006b}\x{212a} 1990 1991/\x{0053}+/i,utf 1992 \x{0053}\x{0073}\x{017f} 1993 1994/\x{0073}+/i,utf 1995 \x{0053}\x{0073}\x{017f} 1996 1997/\x{017f}+/i,utf 1998 \x{0053}\x{0073}\x{017f} 1999 2000/ist/i,utf 2001\= Expect no match 2002 ikt 2003 2004/is+t/i,utf 2005 iSs\x{17f}t 2006\= Expect no match 2007 ikt 2008 2009/is+?t/i,utf 2010\= Expect no match 2011 ikt 2012 2013/is?t/i,utf 2014\= Expect no match 2015 ikt 2016 2017/is{2}t/i,utf 2018\= Expect no match 2019 iskt 2020 2021/^\p{Xuc}/utf 2022 $abc 2023 @abc 2024 `abc 2025 \x{1234}abc 2026\= Expect no match 2027 abc 2028 2029/^\p{Xuc}+/utf 2030 $@`\x{a0}\x{1234}\x{e000}** 2031\= Expect no match 2032 \x{9f} 2033 2034/^\p{Xuc}+?/utf 2035 $@`\x{a0}\x{1234}\x{e000}** 2036\= Expect no match 2037 \x{9f} 2038 2039/^\p{Xuc}+?\*/utf 2040 $@`\x{a0}\x{1234}\x{e000}** 2041\= Expect no match 2042 \x{9f} 2043 2044/^\p{Xuc}++/utf 2045 $@`\x{a0}\x{1234}\x{e000}** 2046\= Expect no match 2047 \x{9f} 2048 2049/^\p{Xuc}{3,5}/utf 2050 $@`\x{a0}\x{1234}\x{e000}** 2051\= Expect no match 2052 \x{9f} 2053 2054/^\p{Xuc}{3,5}?/utf 2055 $@`\x{a0}\x{1234}\x{e000}** 2056\= Expect no match 2057 \x{9f} 2058 2059/^[\p{Xuc}]/utf 2060 $@`\x{a0}\x{1234}\x{e000}** 2061\= Expect no match 2062 \x{9f} 2063 2064/^[\p{Xuc}]+/utf 2065 $@`\x{a0}\x{1234}\x{e000}** 2066\= Expect no match 2067 \x{9f} 2068 2069/^\P{Xuc}/utf 2070 abc 2071\= Expect no match 2072 $abc 2073 @abc 2074 `abc 2075 \x{1234}abc 2076 2077/^[\P{Xuc}]/utf 2078 abc 2079\= Expect no match 2080 $abc 2081 @abc 2082 `abc 2083 \x{1234}abc 2084 2085/^A\s+Z/utf,ucp 2086 A\x{2005}Z 2087 A\x{85}\x{180e}\x{2005}Z 2088 2089/^A[\s]+Z/utf,ucp 2090 A\x{2005}Z 2091 A\x{85}\x{180e}\x{2005}Z 2092 2093/(?<=\x{100})\x{200}(?=\x{300})/utf,allusedtext 2094 \x{100}\x{200}\x{300} 2095 2096# End of testinput7 2097