1 /-- This set of tests check Unicode property support with the DFA matching 2 functionality of pcre_dfa_exec(). The -dfa flag must be used with pcretest 3 when running it. --/ 4 5 /\pL\P{Nd}/8 6 AB 7 *** Failers 8 A0 9 00 10 11 /\X./8 12 AB 13 A\x{300}BC 14 A\x{300}\x{301}\x{302}BC 15 *** Failers 16 \x{300} 17 18 /\X\X/8 19 ABC 20 A\x{300}B\x{300}\x{301}C 21 A\x{300}\x{301}\x{302}BC 22 *** Failers 23 \x{300} 24 25 /^\pL+/8 26 abcd 27 a 28 *** Failers 29 30 /^\PL+/8 31 1234 32 = 33 *** Failers 34 abcd 35 36 /^\X+/8 37 abcdA\x{300}\x{301}\x{302} 38 A\x{300}\x{301}\x{302} 39 A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302} 40 a 41 *** Failers 42 \x{300}\x{301}\x{302} 43 44 /\X?abc/8 45 abc 46 A\x{300}abc 47 A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz 48 \x{300}abc 49 *** Failers 50 51 /^\X?abc/8 52 abc 53 A\x{300}abc 54 *** Failers 55 A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz 56 \x{300}abc 57 58 /\X*abc/8 59 abc 60 A\x{300}abc 61 A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz 62 \x{300}abc 63 *** Failers 64 65 /^\X*abc/8 66 abc 67 A\x{300}abc 68 A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz 69 *** Failers 70 \x{300}abc 71 72 /^\pL?=./8 73 A=b 74 =c 75 *** Failers 76 1=2 77 AAAA=b 78 79 /^\pL*=./8 80 AAAA=b 81 =c 82 *** Failers 83 1=2 84 85 /^\X{2,3}X/8 86 A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X 87 A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X 88 *** Failers 89 X 90 A\x{300}\x{301}\x{302}X 91 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 92 93 /^\pC\pL\pM\pN\pP\pS\pZ</8 94 \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}< 95 \np\x{300}9!\$ < 96 ** Failers 97 ap\x{300}9!\$ < 98 99 /^\PC/8 100 X 101 ** Failers 102 \x7f 103 104 /^\PL/8 105 9 106 ** Failers 107 \x{c0} 108 109 /^\PM/8 110 X 111 ** Failers 112 \x{30f} 113 114 /^\PN/8 115 X 116 ** Failers 117 \x{660} 118 119 /^\PP/8 120 X 121 ** Failers 122 \x{66c} 123 124 /^\PS/8 125 X 126 ** Failers 127 \x{f01} 128 129 /^\PZ/8 130 X 131 ** Failers 132 \x{1680} 133 134 /^\p{Cc}/8 135 \x{017} 136 \x{09f} 137 ** Failers 138 \x{0600} 139 140 /^\p{Cf}/8 141 \x{601} 142 \x{180e} 143 \x{061c} 144 \x{2066} 145 \x{2067} 146 \x{2068} 147 \x{2069} 148 ** Failers 149 \x{09f} 150 151 /^\p{Cn}/8 152 ** Failers 153 \x{09f} 154 155 /^\p{Co}/8 156 \x{f8ff} 157 ** Failers 158 \x{09f} 159 160 /^\p{Cs}/8 161 \?\x{dfff} 162 ** Failers 163 \x{09f} 164 165 /^\p{Ll}/8 166 a 167 ** Failers 168 Z 169 \x{e000} 170 171 /^\p{Lm}/8 172 \x{2b0} 173 ** Failers 174 a 175 176 /^\p{Lo}/8 177 \x{1bb} 178 ** Failers 179 a 180 \x{2b0} 181 182 /^\p{Lt}/8 183 \x{1c5} 184 ** Failers 185 a 186 \x{2b0} 187 188 /^\p{Lu}/8 189 A 190 ** Failers 191 \x{2b0} 192 193 /^\p{Mc}/8 194 \x{903} 195 ** Failers 196 X 197 \x{300} 198 199 /^\p{Me}/8 200 \x{488} 201 ** Failers 202 X 203 \x{903} 204 \x{300} 205 206 /^\p{Mn}/8 207 \x{300} 208 \x{1a1b} 209 ** Failers 210 X 211 \x{903} 212 213 /^\p{Nd}+/8O 214 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a} 215 \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa} 216 \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970} 217 ** Failers 218 X 219 220 /^\p{Nl}/8 221 \x{16ee} 222 ** Failers 223 X 224 \x{966} 225 226 /^\p{No}/8 227 \x{b2} 228 \x{b3} 229 ** Failers 230 X 231 \x{16ee} 232 233 /^\p{Pc}/8 234 \x5f 235 \x{203f} 236 ** Failers 237 X 238 - 239 \x{58a} 240 241 /^\p{Pd}/8 242 - 243 \x{58a} 244 ** Failers 245 X 246 \x{203f} 247 248 /^\p{Pe}/8 249 ) 250 ] 251 } 252 \x{f3b} 253 \x{2309} 254 \x{230b} 255 ** Failers 256 X 257 \x{203f} 258 ( 259 [ 260 { 261 \x{f3c} 262 263 /^\p{Pf}/8 264 \x{bb} 265 \x{2019} 266 ** Failers 267 X 268 \x{203f} 269 270 /^\p{Pi}/8 271 \x{ab} 272 \x{2018} 273 ** Failers 274 X 275 \x{203f} 276 277 /^\p{Po}/8 278 ! 279 \x{37e} 280 ** Failers 281 X 282 \x{203f} 283 284 /^\p{Ps}/8 285 ( 286 [ 287 { 288 \x{f3c} 289 \x{2308} 290 \x{230a} 291 ** Failers 292 X 293 ) 294 ] 295 } 296 \x{f3b} 297 298 /^\p{Sc}+/8 299 $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6} 300 \x{9f2} 301 ** Failers 302 X 303 \x{2c2} 304 305 /^\p{Sk}/8 306 \x{2c2} 307 ** Failers 308 X 309 \x{9f2} 310 311 /^\p{Sm}+/8 312 +<|~\x{ac}\x{2044} 313 ** Failers 314 X 315 \x{9f2} 316 317 /^\p{So}/8 318 \x{a6} 319 \x{482} 320 ** Failers 321 X 322 \x{9f2} 323 324 /^\p{Zl}/8 325 \x{2028} 326 ** Failers 327 X 328 \x{2029} 329 330 /^\p{Zp}/8 331 \x{2029} 332 ** Failers 333 X 334 \x{2028} 335 336 /^\p{Zs}/8 337 \ \ 338 \x{a0} 339 \x{1680} 340 \x{2000} 341 \x{2001} 342 ** Failers 343 \x{2028} 344 \x{200d} 345 346 /\p{Nd}+(..)/8 347 \x{660}\x{661}\x{662}ABC 348 349 /\p{Nd}+?(..)/8 350 \x{660}\x{661}\x{662}ABC 351 352 /\p{Nd}{2,}(..)/8 353 \x{660}\x{661}\x{662}ABC 354 355 /\p{Nd}{2,}?(..)/8 356 \x{660}\x{661}\x{662}ABC 357 358 /\p{Nd}*(..)/8 359 \x{660}\x{661}\x{662}ABC 360 361 /\p{Nd}*?(..)/8 362 \x{660}\x{661}\x{662}ABC 363 364 /\p{Nd}{2}(..)/8 365 \x{660}\x{661}\x{662}ABC 366 367 /\p{Nd}{2,3}(..)/8 368 \x{660}\x{661}\x{662}ABC 369 370 /\p{Nd}{2,3}?(..)/8 371 \x{660}\x{661}\x{662}ABC 372 373 /\p{Nd}?(..)/8 374 \x{660}\x{661}\x{662}ABC 375 376 /\p{Nd}??(..)/8 377 \x{660}\x{661}\x{662}ABC 378 379 /\p{Nd}*+(..)/8 380 \x{660}\x{661}\x{662}ABC 381 382 /\p{Nd}*+(...)/8 383 \x{660}\x{661}\x{662}ABC 384 385 /\p{Nd}*+(....)/8 386 ** Failers 387 \x{660}\x{661}\x{662}ABC 388 389 /\p{Lu}/8i 390 A 391 a\x{10a0}B 392 ** Failers 393 a 394 \x{1d00} 395 396 /\p{^Lu}/8i 397 1234 398 ** Failers 399 ABC 400 401 /\P{Lu}/8i 402 1234 403 ** Failers 404 ABC 405 406 /(?<=A\p{Nd})XYZ/8 407 A2XYZ 408 123A5XYZPQR 409 ABA\x{660}XYZpqr 410 ** Failers 411 AXYZ 412 XYZ 413 414 /(?<!\pL)XYZ/8 415 1XYZ 416 AB=XYZ.. 417 XYZ 418 ** Failers 419 WXYZ 420 421 /[\p{Nd}]/8 422 1234 423 424 /[\p{Nd}+-]+/8 425 1234 426 12-34 427 12+\x{661}-34 428 ** Failers 429 abcd 430 431 /[\P{Nd}]+/8 432 abcd 433 ** Failers 434 1234 435 436 /\D+/8O 437 11111111111111111111111111111111111111111111111111111111111111111111111 438 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 439 440 /\P{Nd}+/8O 441 11111111111111111111111111111111111111111111111111111111111111111111111 442 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 443 444 /[\D]+/8O 445 11111111111111111111111111111111111111111111111111111111111111111111111 446 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 447 448 /[\P{Nd}]+/8O 449 11111111111111111111111111111111111111111111111111111111111111111111111 450 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 451 452 /[\D\P{Nd}]+/8O 453 11111111111111111111111111111111111111111111111111111111111111111111111 454 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 455 456 /\pL/8 457 a 458 A 459 460 /\pL/8i 461 a 462 A 463 464 /\p{Lu}/8 465 A 466 aZ 467 ** Failers 468 abc 469 470 /\p{Lu}/8i 471 A 472 aZ 473 ** Failers 474 abc 475 476 /\p{Ll}/8 477 a 478 Az 479 ** Failers 480 ABC 481 482 /\p{Ll}/8i 483 a 484 Az 485 ** Failers 486 ABC 487 488 /^\x{c0}$/8i 489 \x{c0} 490 \x{e0} 491 492 /^\x{e0}$/8i 493 \x{c0} 494 \x{e0} 495 496 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8 497 A\x{391}\x{10427}\x{ff3a}\x{1fb0} 498 ** Failers 499 a\x{391}\x{10427}\x{ff3a}\x{1fb0} 500 A\x{3b1}\x{10427}\x{ff3a}\x{1fb0} 501 A\x{391}\x{1044F}\x{ff3a}\x{1fb0} 502 A\x{391}\x{10427}\x{ff5a}\x{1fb0} 503 A\x{391}\x{10427}\x{ff3a}\x{1fb8} 504 505 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8i 506 A\x{391}\x{10427}\x{ff3a}\x{1fb0} 507 a\x{391}\x{10427}\x{ff3a}\x{1fb0} 508 A\x{3b1}\x{10427}\x{ff3a}\x{1fb0} 509 A\x{391}\x{1044F}\x{ff3a}\x{1fb0} 510 A\x{391}\x{10427}\x{ff5a}\x{1fb0} 511 A\x{391}\x{10427}\x{ff3a}\x{1fb8} 512 513 /\x{391}+/8i 514 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391} 515 516 /\x{391}{3,5}(.)/8i 517 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X 518 519 /\x{391}{3,5}?(.)/8i 520 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X 521 522 /[\x{391}\x{ff3a}]/8i 523 \x{391} 524 \x{ff3a} 525 \x{3b1} 526 \x{ff5a} 527 528 /[\x{c0}\x{391}]/8i 529 \x{c0} 530 \x{e0} 531 532 /[\x{105}-\x{109}]/8i 533 \x{104} 534 \x{105} 535 \x{109} 536 ** Failers 537 \x{100} 538 \x{10a} 539 540 /[z-\x{100}]/8i 541 Z 542 z 543 \x{39c} 544 \x{178} 545 | 546 \x{80} 547 \x{ff} 548 \x{100} 549 \x{101} 550 ** Failers 551 \x{102} 552 Y 553 y 554 555 /[z-\x{100}]/8i 556 557 /^\X/8 558 A 559 A\x{300}BC 560 A\x{300}\x{301}\x{302}BC 561 *** Failers 562 \x{300} 563 564 /^[\X]/8 565 X123 566 *** Failers 567 AXYZ 568 569 /^(\X*)C/8 570 A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 571 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 572 573 /^(\X*?)C/8 574 A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 575 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 576 577 /^(\X*)(.)/8 578 A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 579 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 580 581 /^(\X*?)(.)/8 582 A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 583 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 584 585 /^\X(.)/8 586 *** Failers 587 A\x{300}\x{301}\x{302} 588 589 /^\X{2,3}(.)/8 590 A\x{300}\x{301}B\x{300}X 591 A\x{300}\x{301}B\x{300}C\x{300}\x{301} 592 A\x{300}\x{301}B\x{300}C\x{300}\x{301}X 593 A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X 594 595 /^\X{2,3}?(.)/8 596 A\x{300}\x{301}B\x{300}X 597 A\x{300}\x{301}B\x{300}C\x{300}\x{301} 598 A\x{300}\x{301}B\x{300}C\x{300}\x{301}X 599 A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X 600 601 /^\pN{2,3}X/ 602 12X 603 123X 604 *** Failers 605 X 606 1X 607 1234X 608 609 /\x{100}/i8 610 \x{100} 611 \x{101} 612 613 /^\p{Han}+/8 614 \x{2e81}\x{3007}\x{2f804}\x{31a0} 615 ** Failers 616 \x{2e7f} 617 618 /^\P{Katakana}+/8 619 \x{3105} 620 ** Failers 621 \x{30ff} 622 623 /^[\p{Arabic}]/8 624 \x{06e9} 625 \x{060b} 626 ** Failers 627 X\x{06e9} 628 629 /^[\P{Yi}]/8 630 \x{2f800} 631 ** Failers 632 \x{a014} 633 \x{a4c6} 634 635 /^\p{Any}X/8 636 AXYZ 637 \x{1234}XYZ 638 ** Failers 639 X 640 641 /^\P{Any}X/8 642 ** Failers 643 AX 644 645 /^\p{Any}?X/8 646 XYZ 647 AXYZ 648 \x{1234}XYZ 649 ** Failers 650 ABXYZ 651 652 /^\P{Any}?X/8 653 XYZ 654 ** Failers 655 AXYZ 656 \x{1234}XYZ 657 ABXYZ 658 659 /^\p{Any}+X/8 660 AXYZ 661 \x{1234}XYZ 662 A\x{1234}XYZ 663 ** Failers 664 XYZ 665 666 /^\P{Any}+X/8 667 ** Failers 668 AXYZ 669 \x{1234}XYZ 670 A\x{1234}XYZ 671 XYZ 672 673 /^\p{Any}*X/8 674 XYZ 675 AXYZ 676 \x{1234}XYZ 677 A\x{1234}XYZ 678 ** Failers 679 680 /^\P{Any}*X/8 681 XYZ 682 ** Failers 683 AXYZ 684 \x{1234}XYZ 685 A\x{1234}XYZ 686 687 /^[\p{Any}]X/8 688 AXYZ 689 \x{1234}XYZ 690 ** Failers 691 X 692 693 /^[\P{Any}]X/8 694 ** Failers 695 AX 696 697 /^[\p{Any}]?X/8 698 XYZ 699 AXYZ 700 \x{1234}XYZ 701 ** Failers 702 ABXYZ 703 704 /^[\P{Any}]?X/8 705 XYZ 706 ** Failers 707 AXYZ 708 \x{1234}XYZ 709 ABXYZ 710 711 /^[\p{Any}]+X/8 712 AXYZ 713 \x{1234}XYZ 714 A\x{1234}XYZ 715 ** Failers 716 XYZ 717 718 /^[\P{Any}]+X/8 719 ** Failers 720 AXYZ 721 \x{1234}XYZ 722 A\x{1234}XYZ 723 XYZ 724 725 /^[\p{Any}]*X/8 726 XYZ 727 AXYZ 728 \x{1234}XYZ 729 A\x{1234}XYZ 730 ** Failers 731 732 /^[\P{Any}]*X/8 733 XYZ 734 ** Failers 735 AXYZ 736 \x{1234}XYZ 737 A\x{1234}XYZ 738 739 /^\p{Any}{3,5}?/8 740 abcdefgh 741 \x{1234}\n\r\x{3456}xyz 742 743 /^\p{Any}{3,5}/8 744 abcdefgh 745 \x{1234}\n\r\x{3456}xyz 746 747 /^\P{Any}{3,5}?/8 748 ** Failers 749 abcdefgh 750 \x{1234}\n\r\x{3456}xyz 751 752 /^\p{L&}X/8 753 AXY 754 aXY 755 \x{1c5}XY 756 ** Failers 757 \x{1bb}XY 758 \x{2b0}XY 759 !XY 760 761 /^[\p{L&}]X/8 762 AXY 763 aXY 764 \x{1c5}XY 765 ** Failers 766 \x{1bb}XY 767 \x{2b0}XY 768 !XY 769 770 /^\p{L&}+X/8 771 AXY 772 aXY 773 AbcdeXyz 774 \x{1c5}AbXY 775 abcDEXypqreXlmn 776 ** Failers 777 \x{1bb}XY 778 \x{2b0}XY 779 !XY 780 781 /^[\p{L&}]+X/8 782 AXY 783 aXY 784 AbcdeXyz 785 \x{1c5}AbXY 786 abcDEXypqreXlmn 787 ** Failers 788 \x{1bb}XY 789 \x{2b0}XY 790 !XY 791 792 /^\p{L&}+?X/8 793 AXY 794 aXY 795 AbcdeXyz 796 \x{1c5}AbXY 797 abcDEXypqreXlmn 798 ** Failers 799 \x{1bb}XY 800 \x{2b0}XY 801 !XY 802 803 /^[\p{L&}]+?X/8 804 AXY 805 aXY 806 AbcdeXyz 807 \x{1c5}AbXY 808 abcDEXypqreXlmn 809 ** Failers 810 \x{1bb}XY 811 \x{2b0}XY 812 !XY 813 814 /^\P{L&}X/8 815 !XY 816 \x{1bb}XY 817 \x{2b0}XY 818 ** Failers 819 \x{1c5}XY 820 AXY 821 822 /^[\P{L&}]X/8 823 !XY 824 \x{1bb}XY 825 \x{2b0}XY 826 ** Failers 827 \x{1c5}XY 828 AXY 829 830 /^\x{023a}+?(\x{0130}+)/8i 831 \x{023a}\x{2c65}\x{0130} 832 833 /^\x{023a}+([^X])/8i 834 \x{023a}\x{2c65}X 835 836 /\x{c0}+\x{116}+/8i 837 \x{c0}\x{e0}\x{116}\x{117} 838 839 /[\x{c0}\x{116}]+/8i 840 \x{c0}\x{e0}\x{116}\x{117} 841 842 /Check property support in non-UTF-8 mode/ 843 844 /\p{L}{4}/ 845 123abcdefg 846 123abc\xc4\xc5zz 847 848 /\p{Carian}\p{Cham}\p{Kayah_Li}\p{Lepcha}\p{Lycian}\p{Lydian}\p{Ol_Chiki}\p{Rejang}\p{Saurashtra}\p{Sundanese}\p{Vai}/8 849 \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}==== 850 851 /\x{a77d}\x{1d79}/8i 852 \x{a77d}\x{1d79} 853 \x{1d79}\x{a77d} 854 855 /\x{a77d}\x{1d79}/8 856 \x{a77d}\x{1d79} 857 ** Failers 858 \x{1d79}\x{a77d} 859 860 /^\p{Xan}/8 861 ABCD 862 1234 863 \x{6ca} 864 \x{a6c} 865 \x{10a7} 866 ** Failers 867 _ABC 868 869 /^\p{Xan}+/8 870 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 871 ** Failers 872 _ABC 873 874 /^\p{Xan}*/8 875 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 876 877 /^\p{Xan}{2,9}/8 878 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 879 880 /^[\p{Xan}]/8 881 ABCD1234_ 882 1234abcd_ 883 \x{6ca} 884 \x{a6c} 885 \x{10a7} 886 ** Failers 887 _ABC 888 889 /^[\p{Xan}]+/8 890 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 891 ** Failers 892 _ABC 893 894 /^>\p{Xsp}/8 895 >\x{1680}\x{2028}\x{0b} 896 ** Failers 897 \x{0b} 898 899 /^>\p{Xsp}+/8O 900 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 901 902 /^>\p{Xsp}*/8O 903 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 904 905 /^>\p{Xsp}{2,9}/8O 906 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 907 908 /^>[\p{Xsp}]/8O 909 >\x{2028}\x{0b} 910 911 /^>[\p{Xsp}]+/8O 912 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 913 914 /^>\p{Xps}/8 915 >\x{1680}\x{2028}\x{0b} 916 >\x{a0} 917 ** Failers 918 \x{0b} 919 920 /^>\p{Xps}+/8 921 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 922 923 /^>\p{Xps}+?/8 924 >\x{1680}\x{2028}\x{0b} 925 926 /^>\p{Xps}*/8 927 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 928 929 /^>\p{Xps}{2,9}/8 930 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 931 932 /^>\p{Xps}{2,9}?/8 933 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 934 935 /^>[\p{Xps}]/8 936 >\x{2028}\x{0b} 937 938 /^>[\p{Xps}]+/8 939 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 940 941 /^\p{Xwd}/8 942 ABCD 943 1234 944 \x{6ca} 945 \x{a6c} 946 \x{10a7} 947 _ABC 948 ** Failers 949 [] 950 951 /^\p{Xwd}+/8 952 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 953 954 /^\p{Xwd}*/8 955 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 956 957 /^\p{Xwd}{2,9}/8 958 A_12\x{6ca}\x{a6c}\x{10a7} 959 960 /^[\p{Xwd}]/8 961 ABCD1234_ 962 1234abcd_ 963 \x{6ca} 964 \x{a6c} 965 \x{10a7} 966 _ABC 967 ** Failers 968 [] 969 970 /^[\p{Xwd}]+/8 971 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 972 973 /-- Unicode properties for \b abd \B --/ 974 975 /\b...\B/8W 976 abc_ 977 \x{37e}abc\x{376} 978 \x{37e}\x{376}\x{371}\x{393}\x{394} 979 !\x{c0}++\x{c1}\x{c2} 980 !\x{c0}+++++ 981 982 /-- Without PCRE_UCP, non-ASCII always fail, even if < 256 --/ 983 984 /\b...\B/8 985 abc_ 986 ** Failers 987 \x{37e}abc\x{376} 988 \x{37e}\x{376}\x{371}\x{393}\x{394} 989 !\x{c0}++\x{c1}\x{c2} 990 !\x{c0}+++++ 991 992 /-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties --/ 993 994 /\b...\B/W 995 abc_ 996 !\x{c0}++\x{c1}\x{c2} 997 !\x{c0}+++++ 998 999 /-- Caseless single negated characters > 127 need UCP support --/ 1000 1001 /[^\x{100}]/8i 1002 \x{100}\x{101}X 1003 1004 /[^\x{100}]+/8i 1005 \x{100}\x{101}XX 1006 1007 /^\X/8 1008 A\P 1009 A\P\P 1010 A\x{300}\x{301}\P 1011 A\x{300}\x{301}\P\P 1012 A\x{301}\P 1013 A\x{301}\P\P 1014 1015 /^\X{2,3}/8 1016 A\P 1017 A\P\P 1018 AA\P 1019 AA\P\P 1020 A\x{300}\x{301}\P 1021 A\x{300}\x{301}\P\P 1022 A\x{300}\x{301}A\x{300}\x{301}\P 1023 A\x{300}\x{301}A\x{300}\x{301}\P\P 1024 1025 /^\X{2}/8 1026 AA\P 1027 AA\P\P 1028 A\x{300}\x{301}A\x{300}\x{301}\P 1029 A\x{300}\x{301}A\x{300}\x{301}\P\P 1030 1031 /^\X+/8 1032 AA\P 1033 AA\P\P 1034 1035 /^\X+?Z/8 1036 AA\P 1037 AA\P\P 1038 1039 /-- These are tests for extended grapheme clusters --/ 1040 1041 /^\X/8+ 1042 G\x{34e}\x{34e}X 1043 \x{34e}\x{34e}X 1044 \x04X 1045 \x{1100}X 1046 \x{1100}\x{34e}X 1047 \x{1b04}\x{1b04}X 1048 *These match up to the roman letters 1049 \x{1111}\x{1111}L,L 1050 \x{1111}\x{1111}\x{1169}L,L,V 1051 \x{1111}\x{ae4c}L, LV 1052 \x{1111}\x{ad89}L, LVT 1053 \x{1111}\x{ae4c}\x{1169}L, LV, V 1054 \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V 1055 \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T 1056 \x{1111}\x{ad89}\x{11fe}L, LVT, T 1057 \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T 1058 \x{ad89}\x{11fe}\x{11fe}LVT, T, T 1059 *These match just the first codepoint (invalid sequence) 1060 \x{1111}\x{11fe}L, T 1061 \x{ae4c}\x{1111}LV, L 1062 \x{ae4c}\x{ae4c}LV, LV 1063 \x{ae4c}\x{ad89}LV, LVT 1064 \x{1169}\x{1111}V, L 1065 \x{1169}\x{ae4c}V, LV 1066 \x{1169}\x{ad89}V, LVT 1067 \x{ad89}\x{1111}LVT, L 1068 \x{ad89}\x{1169}LVT, V 1069 \x{ad89}\x{ae4c}LVT, LV 1070 \x{ad89}\x{ad89}LVT, LVT 1071 \x{11fe}\x{1111}T, L 1072 \x{11fe}\x{1169}T, V 1073 \x{11fe}\x{ae4c}T, LV 1074 \x{11fe}\x{ad89}T, LVT 1075 *Test extend and spacing mark 1076 \x{1111}\x{ae4c}\x{0711}L, LV, extend 1077 \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark 1078 \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark 1079 *Test CR, LF, and control 1080 \x0d\x{0711}CR, extend 1081 \x0d\x{1b04}CR, spacingmark 1082 \x0a\x{0711}LF, extend 1083 \x0a\x{1b04}LF, spacingmark 1084 \x0b\x{0711}Control, extend 1085 \x09\x{1b04}Control, spacingmark 1086 *There are no Prepend characters, so we can't test Prepend, CR 1087 1088 /^(?>\X{2})X/8+ 1089 \x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1090 1091 /^\X{2,4}X/8+ 1092 \x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1093 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1094 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1095 1096 /^\X{2,4}?X/8+ 1097 \x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1098 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1099 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1100 1101 /-- --/ 1102 1103 /\x{1e9e}+/8i 1104 \x{1e9e}\x{00df} 1105 1106 /[z\x{1e9e}]+/8i 1107 \x{1e9e}\x{00df} 1108 1109 /\x{00df}+/8i 1110 \x{1e9e}\x{00df} 1111 1112 /[z\x{00df}]+/8i 1113 \x{1e9e}\x{00df} 1114 1115 /\x{1f88}+/8i 1116 \x{1f88}\x{1f80} 1117 1118 /[z\x{1f88}]+/8i 1119 \x{1f88}\x{1f80} 1120 1121 /-- Perl matches these --/ 1122 1123 /\x{00b5}+/8i 1124 \x{00b5}\x{039c}\x{03bc} 1125 1126 /\x{039c}+/8i 1127 \x{00b5}\x{039c}\x{03bc} 1128 1129 /\x{03bc}+/8i 1130 \x{00b5}\x{039c}\x{03bc} 1131 1132 1133 /\x{00c5}+/8i 1134 \x{00c5}\x{00e5}\x{212b} 1135 1136 /\x{00e5}+/8i 1137 \x{00c5}\x{00e5}\x{212b} 1138 1139 /\x{212b}+/8i 1140 \x{00c5}\x{00e5}\x{212b} 1141 1142 1143 /\x{01c4}+/8i 1144 \x{01c4}\x{01c5}\x{01c6} 1145 1146 /\x{01c5}+/8i 1147 \x{01c4}\x{01c5}\x{01c6} 1148 1149 /\x{01c6}+/8i 1150 \x{01c4}\x{01c5}\x{01c6} 1151 1152 1153 /\x{01c7}+/8i 1154 \x{01c7}\x{01c8}\x{01c9} 1155 1156 /\x{01c8}+/8i 1157 \x{01c7}\x{01c8}\x{01c9} 1158 1159 /\x{01c9}+/8i 1160 \x{01c7}\x{01c8}\x{01c9} 1161 1162 1163 /\x{01ca}+/8i 1164 \x{01ca}\x{01cb}\x{01cc} 1165 1166 /\x{01cb}+/8i 1167 \x{01ca}\x{01cb}\x{01cc} 1168 1169 /\x{01cc}+/8i 1170 \x{01ca}\x{01cb}\x{01cc} 1171 1172 1173 /\x{01f1}+/8i 1174 \x{01f1}\x{01f2}\x{01f3} 1175 1176 /\x{01f2}+/8i 1177 \x{01f1}\x{01f2}\x{01f3} 1178 1179 /\x{01f3}+/8i 1180 \x{01f1}\x{01f2}\x{01f3} 1181 1182 1183 /\x{0345}+/8i 1184 \x{0345}\x{0399}\x{03b9}\x{1fbe} 1185 1186 /\x{0399}+/8i 1187 \x{0345}\x{0399}\x{03b9}\x{1fbe} 1188 1189 /\x{03b9}+/8i 1190 \x{0345}\x{0399}\x{03b9}\x{1fbe} 1191 1192 /\x{1fbe}+/8i 1193 \x{0345}\x{0399}\x{03b9}\x{1fbe} 1194 1195 1196 /\x{0392}+/8i 1197 \x{0392}\x{03b2}\x{03d0} 1198 1199 /\x{03b2}+/8i 1200 \x{0392}\x{03b2}\x{03d0} 1201 1202 /\x{03d0}+/8i 1203 \x{0392}\x{03b2}\x{03d0} 1204 1205 1206 /\x{0395}+/8i 1207 \x{0395}\x{03b5}\x{03f5} 1208 1209 /\x{03b5}+/8i 1210 \x{0395}\x{03b5}\x{03f5} 1211 1212 /\x{03f5}+/8i 1213 \x{0395}\x{03b5}\x{03f5} 1214 1215 1216 /\x{0398}+/8i 1217 \x{0398}\x{03b8}\x{03d1}\x{03f4} 1218 1219 /\x{03b8}+/8i 1220 \x{0398}\x{03b8}\x{03d1}\x{03f4} 1221 1222 /\x{03d1}+/8i 1223 \x{0398}\x{03b8}\x{03d1}\x{03f4} 1224 1225 /\x{03f4}+/8i 1226 \x{0398}\x{03b8}\x{03d1}\x{03f4} 1227 1228 1229 /\x{039a}+/8i 1230 \x{039a}\x{03ba}\x{03f0} 1231 1232 /\x{03ba}+/8i 1233 \x{039a}\x{03ba}\x{03f0} 1234 1235 /\x{03f0}+/8i 1236 \x{039a}\x{03ba}\x{03f0} 1237 1238 1239 /\x{03a0}+/8i 1240 \x{03a0}\x{03c0}\x{03d6} 1241 1242 /\x{03c0}+/8i 1243 \x{03a0}\x{03c0}\x{03d6} 1244 1245 /\x{03d6}+/8i 1246 \x{03a0}\x{03c0}\x{03d6} 1247 1248 1249 /\x{03a1}+/8i 1250 \x{03a1}\x{03c1}\x{03f1} 1251 1252 /\x{03c1}+/8i 1253 \x{03a1}\x{03c1}\x{03f1} 1254 1255 /\x{03f1}+/8i 1256 \x{03a1}\x{03c1}\x{03f1} 1257 1258 1259 /\x{03a3}+/8i 1260 \x{03A3}\x{03C2}\x{03C3} 1261 1262 /\x{03c2}+/8i 1263 \x{03A3}\x{03C2}\x{03C3} 1264 1265 /\x{03c3}+/8i 1266 \x{03A3}\x{03C2}\x{03C3} 1267 1268 1269 /\x{03a6}+/8i 1270 \x{03a6}\x{03c6}\x{03d5} 1271 1272 /\x{03c6}+/8i 1273 \x{03a6}\x{03c6}\x{03d5} 1274 1275 /\x{03d5}+/8i 1276 \x{03a6}\x{03c6}\x{03d5} 1277 1278 1279 /\x{03c9}+/8i 1280 \x{03c9}\x{03a9}\x{2126} 1281 1282 /\x{03a9}+/8i 1283 \x{03c9}\x{03a9}\x{2126} 1284 1285 /\x{2126}+/8i 1286 \x{03c9}\x{03a9}\x{2126} 1287 1288 1289 /\x{1e60}+/8i 1290 \x{1e60}\x{1e61}\x{1e9b} 1291 1292 /\x{1e61}+/8i 1293 \x{1e60}\x{1e61}\x{1e9b} 1294 1295 /\x{1e9b}+/8i 1296 \x{1e60}\x{1e61}\x{1e9b} 1297 1298 1299 /\x{1e9e}+/8i 1300 \x{1e9e}\x{00df} 1301 1302 /\x{00df}+/8i 1303 \x{1e9e}\x{00df} 1304 1305 1306 /\x{1f88}+/8i 1307 \x{1f88}\x{1f80} 1308 1309 /\x{1f80}+/8i 1310 \x{1f88}\x{1f80} 1311 1312 /\x{004b}+/8i 1313 \x{004b}\x{006b}\x{212a} 1314 1315 /\x{006b}+/8i 1316 \x{004b}\x{006b}\x{212a} 1317 1318 /\x{212a}+/8i 1319 \x{004b}\x{006b}\x{212a} 1320 1321 1322 /\x{0053}+/8i 1323 \x{0053}\x{0073}\x{017f} 1324 1325 /\x{0073}+/8i 1326 \x{0053}\x{0073}\x{017f} 1327 1328 /\x{017f}+/8i 1329 \x{0053}\x{0073}\x{017f} 1330 1331 /ist/8i 1332 ikt 1333 1334 /is+t/8i 1335 iSs\x{17f}t 1336 ikt 1337 1338 /is+?t/8i 1339 ikt 1340 1341 /is?t/8i 1342 ikt 1343 1344 /is{2}t/8i 1345 iskt 1346 1347 /^\p{Xuc}/8 1348 $abc 1349 @abc 1350 `abc 1351 \x{1234}abc 1352 ** Failers 1353 abc 1354 1355 /^\p{Xuc}+/8 1356 $@`\x{a0}\x{1234}\x{e000}** 1357 ** Failers 1358 \x{9f} 1359 1360 /^\p{Xuc}+?/8 1361 $@`\x{a0}\x{1234}\x{e000}** 1362 ** Failers 1363 \x{9f} 1364 1365 /^\p{Xuc}+?\*/8 1366 $@`\x{a0}\x{1234}\x{e000}** 1367 ** Failers 1368 \x{9f} 1369 1370 /^\p{Xuc}++/8 1371 $@`\x{a0}\x{1234}\x{e000}** 1372 ** Failers 1373 \x{9f} 1374 1375 /^\p{Xuc}{3,5}/8 1376 $@`\x{a0}\x{1234}\x{e000}** 1377 ** Failers 1378 \x{9f} 1379 1380 /^\p{Xuc}{3,5}?/8 1381 $@`\x{a0}\x{1234}\x{e000}** 1382 ** Failers 1383 \x{9f} 1384 1385 /^[\p{Xuc}]/8 1386 $@`\x{a0}\x{1234}\x{e000}** 1387 ** Failers 1388 \x{9f} 1389 1390 /^[\p{Xuc}]+/8 1391 $@`\x{a0}\x{1234}\x{e000}** 1392 ** Failers 1393 \x{9f} 1394 1395 /^\P{Xuc}/8 1396 abc 1397 ** Failers 1398 $abc 1399 @abc 1400 `abc 1401 \x{1234}abc 1402 1403 /^[\P{Xuc}]/8 1404 abc 1405 ** Failers 1406 $abc 1407 @abc 1408 `abc 1409 \x{1234}abc 1410 1411 /^A\s+Z/8W 1412 A\x{2005}Z 1413 A\x{85}\x{180e}\x{2005}Z 1414 1415 /^A[\s]+Z/8W 1416 A\x{2005}Z 1417 A\x{85}\x{180e}\x{2005}Z 1418 1419 /-- End of testinput10 --/ 1420