1 /-- These tests for Unicode property support test PCRE's API and show some of 2 the compiled code. They are not Perl-compatible. --/ 3 4 /[\p{L}]/DZ 5 ------------------------------------------------------------------ 6 Bra 7 [\p{L}] 8 Ket 9 End 10 ------------------------------------------------------------------ 11 Capturing subpattern count = 0 12 No options 13 No first char 14 No need char 15 16 /[\p{^L}]/DZ 17 ------------------------------------------------------------------ 18 Bra 19 [\P{L}] 20 Ket 21 End 22 ------------------------------------------------------------------ 23 Capturing subpattern count = 0 24 No options 25 No first char 26 No need char 27 28 /[\P{L}]/DZ 29 ------------------------------------------------------------------ 30 Bra 31 [\P{L}] 32 Ket 33 End 34 ------------------------------------------------------------------ 35 Capturing subpattern count = 0 36 No options 37 No first char 38 No need char 39 40 /[\P{^L}]/DZ 41 ------------------------------------------------------------------ 42 Bra 43 [\p{L}] 44 Ket 45 End 46 ------------------------------------------------------------------ 47 Capturing subpattern count = 0 48 No options 49 No first char 50 No need char 51 52 /[abc\p{L}\x{0660}]/8DZ 53 ------------------------------------------------------------------ 54 Bra 55 [a-c\p{L}\x{660}] 56 Ket 57 End 58 ------------------------------------------------------------------ 59 Capturing subpattern count = 0 60 Options: utf 61 No first char 62 No need char 63 64 /[\p{Nd}]/8DZ 65 ------------------------------------------------------------------ 66 Bra 67 [\p{Nd}] 68 Ket 69 End 70 ------------------------------------------------------------------ 71 Capturing subpattern count = 0 72 Options: utf 73 No first char 74 No need char 75 1234 76 0: 1 77 78 /[\p{Nd}+-]+/8DZ 79 ------------------------------------------------------------------ 80 Bra 81 [+\-\p{Nd}]++ 82 Ket 83 End 84 ------------------------------------------------------------------ 85 Capturing subpattern count = 0 86 Options: utf 87 No first char 88 No need char 89 1234 90 0: 1234 91 12-34 92 0: 12-34 93 12+\x{661}-34 94 0: 12+\x{661}-34 95 ** Failers 96 No match 97 abcd 98 No match 99 100 /[\x{105}-\x{109}]/8iDZ 101 ------------------------------------------------------------------ 102 Bra 103 [\x{104}-\x{109}] 104 Ket 105 End 106 ------------------------------------------------------------------ 107 Capturing subpattern count = 0 108 Options: caseless utf 109 No first char 110 No need char 111 \x{104} 112 0: \x{104} 113 \x{105} 114 0: \x{105} 115 \x{109} 116 0: \x{109} 117 ** Failers 118 No match 119 \x{100} 120 No match 121 \x{10a} 122 No match 123 124 /[z-\x{100}]/8iDZ 125 ------------------------------------------------------------------ 126 Bra 127 [Zz-\xff\x{39c}\x{3bc}\x{212b}\x{1e9e}\x{212b}\x{178}\x{100}-\x{101}] 128 Ket 129 End 130 ------------------------------------------------------------------ 131 Capturing subpattern count = 0 132 Options: caseless utf 133 No first char 134 No need char 135 Z 136 0: Z 137 z 138 0: z 139 \x{39c} 140 0: \x{39c} 141 \x{178} 142 0: \x{178} 143 | 144 0: | 145 \x{80} 146 0: \x{80} 147 \x{ff} 148 0: \x{ff} 149 \x{100} 150 0: \x{100} 151 \x{101} 152 0: \x{101} 153 ** Failers 154 No match 155 \x{102} 156 No match 157 Y 158 No match 159 y 160 No match 161 162 /[z-\x{100}]/8DZi 163 ------------------------------------------------------------------ 164 Bra 165 [Zz-\xff\x{39c}\x{3bc}\x{212b}\x{1e9e}\x{212b}\x{178}\x{100}-\x{101}] 166 Ket 167 End 168 ------------------------------------------------------------------ 169 Capturing subpattern count = 0 170 Options: caseless utf 171 No first char 172 No need char 173 174 /(?:[\PPa*]*){8,}/ 175 176 /[\P{Any}]/BZ 177 ------------------------------------------------------------------ 178 Bra 179 [\P{Any}] 180 Ket 181 End 182 ------------------------------------------------------------------ 183 184 /[\P{Any}\E]/BZ 185 ------------------------------------------------------------------ 186 Bra 187 [\P{Any}] 188 Ket 189 End 190 ------------------------------------------------------------------ 191 192 /(\P{Yi}+\277)/ 193 194 /(\P{Yi}+\277)?/ 195 196 /(?<=\P{Yi}{3}A)X/ 197 198 /\p{Yi}+(\P{Yi}+)(?1)/ 199 200 /(\P{Yi}{2}\277)?/ 201 202 /[\P{Yi}A]/ 203 204 /[\P{Yi}\P{Yi}\P{Yi}A]/ 205 206 /[^\P{Yi}A]/ 207 208 /[^\P{Yi}\P{Yi}\P{Yi}A]/ 209 210 /(\P{Yi}*\277)*/ 211 212 /(\P{Yi}*?\277)*/ 213 214 /(\p{Yi}*+\277)*/ 215 216 /(\P{Yi}?\277)*/ 217 218 /(\P{Yi}??\277)*/ 219 220 /(\p{Yi}?+\277)*/ 221 222 /(\P{Yi}{0,3}\277)*/ 223 224 /(\P{Yi}{0,3}?\277)*/ 225 226 /(\p{Yi}{0,3}+\277)*/ 227 228 /\p{Zl}{2,3}+/8BZ 229 ------------------------------------------------------------------ 230 Bra 231 prop Zl {2} 232 prop Zl ?+ 233 Ket 234 End 235 ------------------------------------------------------------------ 236 239 0: \x{2028}\x{2028} 240 \x{2028}\x{2028}\x{2028} 241 0: \x{2028}\x{2028}\x{2028} 242 243 /\p{Zl}/8BZ 244 ------------------------------------------------------------------ 245 Bra 246 prop Zl 247 Ket 248 End 249 ------------------------------------------------------------------ 250 251 /\p{Lu}{3}+/8BZ 252 ------------------------------------------------------------------ 253 Bra 254 prop Lu {3} 255 Ket 256 End 257 ------------------------------------------------------------------ 258 259 /\pL{2}+/8BZ 260 ------------------------------------------------------------------ 261 Bra 262 prop L {2} 263 Ket 264 End 265 ------------------------------------------------------------------ 266 267 /\p{Cc}{2}+/8BZ 268 ------------------------------------------------------------------ 269 Bra 270 prop Cc {2} 271 Ket 272 End 273 ------------------------------------------------------------------ 274 275 /^\p{Cf}/8 276 \x{180e} 277 0: \x{180e} 278 \x{061c} 279 0: \x{61c} 280 \x{2066} 281 0: \x{2066} 282 \x{2067} 283 0: \x{2067} 284 \x{2068} 285 0: \x{2068} 286 \x{2069} 287 0: \x{2069} 288 289 /^\p{Cs}/8 290 \?\x{dfff} 291 0: \x{dfff} 292 ** Failers 293 No match 294 \x{09f} 295 No match 296 297 /^\p{Mn}/8 298 \x{1a1b} 299 0: \x{1a1b} 300 301 /^\p{Pe}/8 302 \x{2309} 303 0: \x{2309} 304 \x{230b} 305 0: \x{230b} 306 307 /^\p{Ps}/8 308 \x{2308} 309 0: \x{2308} 310 \x{230a} 311 0: \x{230a} 312 313 /^\p{Sc}+/8 314 $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6} 315 0: $\x{a2}\x{a3}\x{a4}\x{a5} 316 \x{9f2} 317 0: \x{9f2} 318 ** Failers 319 No match 320 X 321 No match 322 \x{2c2} 323 No match 324 325 /^\p{Zs}/8 326 \ \ 327 0: 328 \x{a0} 329 0: \x{a0} 330 \x{1680} 331 0: \x{1680} 332 \x{2000} 333 0: \x{2000} 334 \x{2001} 335 0: \x{2001} 336 ** Failers 337 No match 338 \x{2028} 339 No match 340 \x{200d} 341 No match 342 343 /-- These are here rather than in test 6 because Perl has problems with 344 the negative versions of the properties and behaves has changed how 345 it behaves for caseless matching. --/ 346 347 /\p{^Lu}/8i 348 1234 349 0: 1 350 ** Failers 351 0: * 352 ABC 353 No match 354 355 /\P{Lu}/8i 356 1234 357 0: 1 358 ** Failers 359 0: * 360 ABC 361 No match 362 363 /\p{Ll}/8i 364 a 365 0: a 366 Az 367 0: z 368 ** Failers 369 0: a 370 ABC 371 No match 372 373 /\p{Lu}/8i 374 A 375 0: A 376 a\x{10a0}B 377 0: \x{10a0} 378 ** Failers 379 0: F 380 a 381 No match 382 \x{1d00} 383 No match 384 385 /\p{Lu}/8i 386 A 387 0: A 388 aZ 389 0: Z 390 ** Failers 391 0: F 392 abc 393 No match 394 395 /[\x{c0}\x{391}]/8i 396 \x{c0} 397 0: \x{c0} 398 \x{e0} 399 0: \x{e0} 400 401 /-- The next two are special cases where the lengths of the different cases of 402 the same character differ. The first went wrong with heap frame storage; the 403 second was broken in all cases. --/ 404 405 /^\x{023a}+?(\x{0130}+)/8i 406 \x{023a}\x{2c65}\x{0130} 407 0: \x{23a}\x{2c65}\x{130} 408 1: \x{130} 409 410 /^\x{023a}+([^X])/8i 411 \x{023a}\x{2c65}X 412 0: \x{23a}\x{2c65} 413 1: \x{2c65} 414 415 /\x{c0}+\x{116}+/8i 416 \x{c0}\x{e0}\x{116}\x{117} 417 0: \x{c0}\x{e0}\x{116}\x{117} 418 419 /[\x{c0}\x{116}]+/8i 420 \x{c0}\x{e0}\x{116}\x{117} 421 0: \x{c0}\x{e0}\x{116}\x{117} 422 423 /(\x{de})\1/8i 424 \x{de}\x{de} 425 0: \x{de}\x{de} 426 1: \x{de} 427 \x{de}\x{fe} 428 0: \x{de}\x{fe} 429 1: \x{de} 430 \x{fe}\x{fe} 431 0: \x{fe}\x{fe} 432 1: \x{fe} 433 \x{fe}\x{de} 434 0: \x{fe}\x{de} 435 1: \x{fe} 436 437 /^\x{c0}$/8i 438 \x{c0} 439 0: \x{c0} 440 \x{e0} 441 0: \x{e0} 442 443 /^\x{e0}$/8i 444 \x{c0} 445 0: \x{c0} 446 \x{e0} 447 0: \x{e0} 448 449 /-- The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE 450 will match it only with UCP support, because without that it has no notion 451 of case for anything other than the ASCII letters. --/ 452 453 /((?i)[\x{c0}])/8 454 \x{c0} 455 0: \x{c0} 456 1: \x{c0} 457 \x{e0} 458 0: \x{e0} 459 1: \x{e0} 460 461 /(?i:[\x{c0}])/8 462 \x{c0} 463 0: \x{c0} 464 \x{e0} 465 0: \x{e0} 466 467 /-- These are PCRE's extra properties to help with Unicodizing \d etc. --/ 468 469 /^\p{Xan}/8 470 ABCD 471 0: A 472 1234 473 0: 1 474 \x{6ca} 475 0: \x{6ca} 476 \x{a6c} 477 0: \x{a6c} 478 \x{10a7} 479 0: \x{10a7} 480 ** Failers 481 No match 482 _ABC 483 No match 484 485 /^\p{Xan}+/8 486 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 487 0: ABCD1234\x{6ca}\x{a6c}\x{10a7} 488 ** Failers 489 No match 490 _ABC 491 No match 492 493 /^\p{Xan}+?/8 494 \x{6ca}\x{a6c}\x{10a7}_ 495 0: \x{6ca} 496 497 /^\p{Xan}*/8 498 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 499 0: ABCD1234\x{6ca}\x{a6c}\x{10a7} 500 501 /^\p{Xan}{2,9}/8 502 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 503 0: ABCD1234\x{6ca} 504 505 /^\p{Xan}{2,9}?/8 506 \x{6ca}\x{a6c}\x{10a7}_ 507 0: \x{6ca}\x{a6c} 508 509 /^[\p{Xan}]/8 510 ABCD1234_ 511 0: A 512 1234abcd_ 513 0: 1 514 \x{6ca} 515 0: \x{6ca} 516 \x{a6c} 517 0: \x{a6c} 518 \x{10a7} 519 0: \x{10a7} 520 ** Failers 521 No match 522 _ABC 523 No match 524 525 /^[\p{Xan}]+/8 526 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 527 0: ABCD1234\x{6ca}\x{a6c}\x{10a7} 528 ** Failers 529 No match 530 _ABC 531 No match 532 533 /^>\p{Xsp}/8 534 >\x{1680}\x{2028}\x{0b} 535 0: >\x{1680} 536 >\x{a0} 537 0: >\x{a0} 538 ** Failers 539 No match 540 \x{0b} 541 No match 542 543 /^>\p{Xsp}+/8 544 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 545 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 546 547 /^>\p{Xsp}+?/8 548 >\x{1680}\x{2028}\x{0b} 549 0: >\x{1680} 550 551 /^>\p{Xsp}*/8 552 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 553 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 554 555 /^>\p{Xsp}{2,9}/8 556 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 557 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 558 559 /^>\p{Xsp}{2,9}?/8 560 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 561 0: > \x{09} 562 563 /^>[\p{Xsp}]/8 564 >\x{2028}\x{0b} 565 0: >\x{2028} 566 567 /^>[\p{Xsp}]+/8 568 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 569 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 570 571 /^>\p{Xps}/8 572 >\x{1680}\x{2028}\x{0b} 573 0: >\x{1680} 574 >\x{a0} 575 0: >\x{a0} 576 ** Failers 577 No match 578 \x{0b} 579 No match 580 581 /^>\p{Xps}+/8 582 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 583 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 584 585 /^>\p{Xps}+?/8 586 >\x{1680}\x{2028}\x{0b} 587 0: >\x{1680} 588 589 /^>\p{Xps}*/8 590 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 591 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 592 593 /^>\p{Xps}{2,9}/8 594 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 595 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 596 597 /^>\p{Xps}{2,9}?/8 598 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 599 0: > \x{09} 600 601 /^>[\p{Xps}]/8 602 >\x{2028}\x{0b} 603 0: >\x{2028} 604 605 /^>[\p{Xps}]+/8 606 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 607 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 608 609 /^\p{Xwd}/8 610 ABCD 611 0: A 612 1234 613 0: 1 614 \x{6ca} 615 0: \x{6ca} 616 \x{a6c} 617 0: \x{a6c} 618 \x{10a7} 619 0: \x{10a7} 620 _ABC 621 0: _ 622 ** Failers 623 No match 624 [] 625 No match 626 627 /^\p{Xwd}+/8 628 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 629 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 630 631 /^\p{Xwd}+?/8 632 \x{6ca}\x{a6c}\x{10a7}_ 633 0: \x{6ca} 634 635 /^\p{Xwd}*/8 636 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 637 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 638 639 /^\p{Xwd}{2,9}/8 640 A_B12\x{6ca}\x{a6c}\x{10a7} 641 0: A_B12\x{6ca}\x{a6c}\x{10a7} 642 643 /^\p{Xwd}{2,9}?/8 644 \x{6ca}\x{a6c}\x{10a7}_ 645 0: \x{6ca}\x{a6c} 646 647 /^[\p{Xwd}]/8 648 ABCD1234_ 649 0: A 650 1234abcd_ 651 0: 1 652 \x{6ca} 653 0: \x{6ca} 654 \x{a6c} 655 0: \x{a6c} 656 \x{10a7} 657 0: \x{10a7} 658 _ABC 659 0: _ 660 ** Failers 661 No match 662 [] 663 No match 664 665 /^[\p{Xwd}]+/8 666 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 667 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 668 669 /-- A check not in UTF-8 mode --/ 670 671 /^[\p{Xwd}]+/ 672 ABCD1234_ 673 0: ABCD1234_ 674 675 /-- Some negative checks --/ 676 677 /^[\P{Xwd}]+/8 678 !.+\x{019}\x{35a}AB 679 0: !.+\x{19}\x{35a} 680 681 /^[\p{^Xwd}]+/8 682 !.+\x{019}\x{35a}AB 683 0: !.+\x{19}\x{35a} 684 685 /[\D]/WBZ8 686 ------------------------------------------------------------------ 687 Bra 688 [\P{Nd}] 689 Ket 690 End 691 ------------------------------------------------------------------ 692 1\x{3c8}2 693 0: \x{3c8} 694 695 /[\d]/WBZ8 696 ------------------------------------------------------------------ 697 Bra 698 [\p{Nd}] 699 Ket 700 End 701 ------------------------------------------------------------------ 702 >\x{6f4}< 703 0: \x{6f4} 704 705 /[\S]/WBZ8 706 ------------------------------------------------------------------ 707 Bra 708 [\P{Xsp}] 709 Ket 710 End 711 ------------------------------------------------------------------ 712 \x{1680}\x{6f4}\x{1680} 713 0: \x{6f4} 714 715 /[\s]/WBZ8 716 ------------------------------------------------------------------ 717 Bra 718 [\p{Xsp}] 719 Ket 720 End 721 ------------------------------------------------------------------ 722 >\x{1680}< 723 0: \x{1680} 724 725 /[\W]/WBZ8 726 ------------------------------------------------------------------ 727 Bra 728 [\P{Xwd}] 729 Ket 730 End 731 ------------------------------------------------------------------ 732 A\x{1712}B 733 0: \x{1712} 734 735 /[\w]/WBZ8 736 ------------------------------------------------------------------ 737 Bra 738 [\p{Xwd}] 739 Ket 740 End 741 ------------------------------------------------------------------ 742 >\x{1723}< 743 0: \x{1723} 744 745 /\D/WBZ8 746 ------------------------------------------------------------------ 747 Bra 748 notprop Nd 749 Ket 750 End 751 ------------------------------------------------------------------ 752 1\x{3c8}2 753 0: \x{3c8} 754 755 /\d/WBZ8 756 ------------------------------------------------------------------ 757 Bra 758 prop Nd 759 Ket 760 End 761 ------------------------------------------------------------------ 762 >\x{6f4}< 763 0: \x{6f4} 764 765 /\S/WBZ8 766 ------------------------------------------------------------------ 767 Bra 768 notprop Xsp 769 Ket 770 End 771 ------------------------------------------------------------------ 772 \x{1680}\x{6f4}\x{1680} 773 0: \x{6f4} 774 775 /\s/WBZ8 776 ------------------------------------------------------------------ 777 Bra 778 prop Xsp 779 Ket 780 End 781 ------------------------------------------------------------------ 782 >\x{1680}> 783 0: \x{1680} 784 785 /\W/WBZ8 786 ------------------------------------------------------------------ 787 Bra 788 notprop Xwd 789 Ket 790 End 791 ------------------------------------------------------------------ 792 A\x{1712}B 793 0: \x{1712} 794 795 /\w/WBZ8 796 ------------------------------------------------------------------ 797 Bra 798 prop Xwd 799 Ket 800 End 801 ------------------------------------------------------------------ 802 >\x{1723}< 803 0: \x{1723} 804 805 /[[:alpha:]]/WBZ 806 ------------------------------------------------------------------ 807 Bra 808 [\p{L}] 809 Ket 810 End 811 ------------------------------------------------------------------ 812 813 /[[:lower:]]/WBZ 814 ------------------------------------------------------------------ 815 Bra 816 [\p{Ll}] 817 Ket 818 End 819 ------------------------------------------------------------------ 820 821 /[[:upper:]]/WBZ 822 ------------------------------------------------------------------ 823 Bra 824 [\p{Lu}] 825 Ket 826 End 827 ------------------------------------------------------------------ 828 829 /[[:alnum:]]/WBZ 830 ------------------------------------------------------------------ 831 Bra 832 [\p{Xan}] 833 Ket 834 End 835 ------------------------------------------------------------------ 836 837 /[[:ascii:]]/WBZ 838 ------------------------------------------------------------------ 839 Bra 840 [\x00-\x7f] 841 Ket 842 End 843 ------------------------------------------------------------------ 844 845 /[[:cntrl:]]/WBZ 846 ------------------------------------------------------------------ 847 Bra 848 [\x00-\x1f\x7f] 849 Ket 850 End 851 ------------------------------------------------------------------ 852 853 /[[:digit:]]/WBZ 854 ------------------------------------------------------------------ 855 Bra 856 [\p{Nd}] 857 Ket 858 End 859 ------------------------------------------------------------------ 860 861 /[[:graph:]]/WBZ 862 ------------------------------------------------------------------ 863 Bra 864 [[:graph:]] 865 Ket 866 End 867 ------------------------------------------------------------------ 868 869 /[[:print:]]/WBZ 870 ------------------------------------------------------------------ 871 Bra 872 [[:print:]] 873 Ket 874 End 875 ------------------------------------------------------------------ 876 877 /[[:punct:]]/WBZ 878 ------------------------------------------------------------------ 879 Bra 880 [[:punct:]] 881 Ket 882 End 883 ------------------------------------------------------------------ 884 885 /[[:space:]]/WBZ 886 ------------------------------------------------------------------ 887 Bra 888 [\p{Xps}] 889 Ket 890 End 891 ------------------------------------------------------------------ 892 893 /[[:word:]]/WBZ 894 ------------------------------------------------------------------ 895 Bra 896 [\p{Xwd}] 897 Ket 898 End 899 ------------------------------------------------------------------ 900 901 /[[:xdigit:]]/WBZ 902 ------------------------------------------------------------------ 903 Bra 904 [0-9A-Fa-f] 905 Ket 906 End 907 ------------------------------------------------------------------ 908 909 /-- Unicode properties for \b abd \B --/ 910 911 /\b...\B/8W 912 abc_ 913 0: abc 914 \x{37e}abc\x{376} 915 0: abc 916 \x{37e}\x{376}\x{371}\x{393}\x{394} 917 0: \x{376}\x{371}\x{393} 918 !\x{c0}++\x{c1}\x{c2} 919 0: ++\x{c1} 920 !\x{c0}+++++ 921 0: \x{c0}++ 922 923 /-- Without PCRE_UCP, non-ASCII always fail, even if < 256 --/ 924 925 /\b...\B/8 926 abc_ 927 0: abc 928 ** Failers 929 0: Fai 930 \x{37e}abc\x{376} 931 No match 932 \x{37e}\x{376}\x{371}\x{393}\x{394} 933 No match 934 !\x{c0}++\x{c1}\x{c2} 935 No match 936 !\x{c0}+++++ 937 No match 938 939 /-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties --/ 940 941 /\b...\B/W 942 abc_ 943 0: abc 944 !\x{c0}++\x{c1}\x{c2} 945 0: ++\xc1 946 !\x{c0}+++++ 947 0: \xc0++ 948 949 /-- Some of these are silly, but they check various combinations --/ 950 951 /[[:^alpha:][:^cntrl:]]+/8WBZ 952 ------------------------------------------------------------------ 953 Bra 954 [ -~\x80-\xff\P{L}]++ 955 Ket 956 End 957 ------------------------------------------------------------------ 958 123 959 0: 123 960 abc 961 0: abc 962 963 /[[:^cntrl:][:^alpha:]]+/8WBZ 964 ------------------------------------------------------------------ 965 Bra 966 [ -~\x80-\xff\P{L}]++ 967 Ket 968 End 969 ------------------------------------------------------------------ 970 123 971 0: 123 972 abc 973 0: abc 974 975 /[[:alpha:]]+/8WBZ 976 ------------------------------------------------------------------ 977 Bra 978 [\p{L}]++ 979 Ket 980 End 981 ------------------------------------------------------------------ 982 abc 983 0: abc 984 985 /[[:^alpha:]\S]+/8WBZ 986 ------------------------------------------------------------------ 987 Bra 988 [\P{L}\P{Xsp}]++ 989 Ket 990 End 991 ------------------------------------------------------------------ 992 123 993 0: 123 994 abc 995 0: abc 996 997 /[^\d]+/8WBZ 998 ------------------------------------------------------------------ 999 Bra 1000 [^\p{Nd}]++ 1001 Ket 1002 End 1003 ------------------------------------------------------------------ 1004 abc123 1005 0: abc 1006 abc\x{123} 1007 0: abc\x{123} 1008 \x{660}abc 1009 0: abc 1010 1011 /\p{Lu}+9\p{Lu}+B\p{Lu}+b/BZ 1012 ------------------------------------------------------------------ 1013 Bra 1014 prop Lu ++ 1015 9 1016 prop Lu + 1017 B 1018 prop Lu ++ 1019 b 1020 Ket 1021 End 1022 ------------------------------------------------------------------ 1023 1024 /\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/BZ 1025 ------------------------------------------------------------------ 1026 Bra 1027 notprop Lu + 1028 9 1029 notprop Lu ++ 1030 B 1031 notprop Lu + 1032 b 1033 Ket 1034 End 1035 ------------------------------------------------------------------ 1036 1037 /\P{Lu}+9\P{Lu}+B\P{Lu}+b/BZ 1038 ------------------------------------------------------------------ 1039 Bra 1040 notprop Lu + 1041 9 1042 notprop Lu ++ 1043 B 1044 notprop Lu + 1045 b 1046 Ket 1047 End 1048 ------------------------------------------------------------------ 1049 1050 /\p{Han}+X\p{Greek}+\x{370}/BZ8 1051 ------------------------------------------------------------------ 1052 Bra 1053 prop Han ++ 1054 X 1055 prop Greek + 1056 \x{370} 1057 Ket 1058 End 1059 ------------------------------------------------------------------ 1060 1061 /\p{Xan}+!\p{Xan}+A/BZ 1062 ------------------------------------------------------------------ 1063 Bra 1064 prop Xan ++ 1065 ! 1066 prop Xan + 1067 A 1068 Ket 1069 End 1070 ------------------------------------------------------------------ 1071 1072 /\p{Xsp}+!\p{Xsp}\t/BZ 1073 ------------------------------------------------------------------ 1074 Bra 1075 prop Xsp ++ 1076 ! 1077 prop Xsp 1078 \x09 1079 Ket 1080 End 1081 ------------------------------------------------------------------ 1082 1083 /\p{Xps}+!\p{Xps}\t/BZ 1084 ------------------------------------------------------------------ 1085 Bra 1086 prop Xps ++ 1087 ! 1088 prop Xps 1089 \x09 1090 Ket 1091 End 1092 ------------------------------------------------------------------ 1093 1094 /\p{Xwd}+!\p{Xwd}_/BZ 1095 ------------------------------------------------------------------ 1096 Bra 1097 prop Xwd ++ 1098 ! 1099 prop Xwd 1100 _ 1101 Ket 1102 End 1103 ------------------------------------------------------------------ 1104 1105 /A+\p{N}A+\dB+\p{N}*B+\d*/WBZ 1106 ------------------------------------------------------------------ 1107 Bra 1108 A++ 1109 prop N 1110 A++ 1111 prop Nd 1112 B+ 1113 prop N *+ 1114 B++ 1115 prop Nd *+ 1116 Ket 1117 End 1118 ------------------------------------------------------------------ 1119 1120 /-- These behaved oddly in Perl, so they are kept in this test --/ 1121 1122 /(\x{23a}\x{23a}\x{23a})?\1/8i 1123 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} 1124 No match 1125 1126 /()?\1/8i 1127 1128 No match 1129 1130 /(\x{23a}\x{23a}\x{23a})?\1/8i 1131 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 1132 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 1133 1: \x{23a}\x{23a}\x{23a} 1134 1135 /()?\1/8i 1136 1137 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 1138 1: \x{23a}\x{23a}\x{23a} 1139 1140 /(\x{23a}\x{23a}\x{23a})\1/8i 1141 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} 1142 No match 1143 1144 /()\1/8i 1145 1146 No match 1147 1148 /(\x{23a}\x{23a}\x{23a})\1/8i 1149 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 1150 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 1151 1: \x{23a}\x{23a}\x{23a} 1152 1153 /()\1/8i 1154 1155 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 1156 1: \x{23a}\x{23a}\x{23a} 1157 1158 /(\x{2c65}\x{2c65})\1/8i 1159 \x{2c65}\x{2c65}\x{23a}\x{23a} 1160 0: \x{2c65}\x{2c65}\x{23a}\x{23a} 1161 1: \x{2c65}\x{2c65} 1162 1163 /()\1/8i 1164 1165 0: \x{2c65}\x{2c65}\x{23a}\x{23a} 1166 1: \x{2c65}\x{2c65} 1167 1168 /(\x{23a}\x{23a}\x{23a})\1Y/8i 1169 X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ 1170 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}Y 1171 1: \x{23a}\x{23a}\x{23a} 1172 1173 /(\x{2c65}\x{2c65})\1Y/8i 1174 X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ 1175 0: \x{2c65}\x{2c65}\x{23a}\x{23a}Y 1176 1: \x{2c65}\x{2c65} 1177 1178 /-- --/ 1179 1180 /-- These scripts weren't yet in Perl when I added Unicode 6.0.0 to PCRE --/ 1181 1182 /^[\p{Batak}]/8 1183 \x{1bc0} 1184 0: \x{1bc0} 1185 \x{1bff} 1186 0: \x{1bff} 1187 ** Failers 1188 No match 1189 \x{1bf4} 1190 No match 1191 1192 /^[\p{Brahmi}]/8 1193 \x{11000} 1194 0: \x{11000} 1195 \x{1106f} 1196 0: \x{1106f} 1197 ** Failers 1198 No match 1199 \x{1104e} 1200 No match 1201 1202 /^[\p{Mandaic}]/8 1203 \x{840} 1204 0: \x{840} 1205 \x{85e} 1206 0: \x{85e} 1207 ** Failers 1208 No match 1209 \x{85c} 1210 No match 1211 \x{85d} 1212 No match 1213 1214 /-- --/ 1215 1216 /(\X*)(.)/s8 1217 A\x{300} 1218 0: A 1219 1: 1220 2: A 1221 1222 /^S(\X*)e(\X*)$/8 1223 Stereo 1224 0: Ste\x{301}re\x{301}o 1225 1: te\x{301}r 1226 2: \x{301}o 1227 1228 /^\X/8 1229 reo 1230 0: \x{301} 1231 1232 /^a\X41z/<JS> 1233 aX41z 1234 0: aX41z 1235 *** Failers 1236 No match 1237 aAz 1238 No match 1239 1240 /(?<=ab\Cde)X/8 1241 Failed: \C not allowed in lookbehind assertion at offset 10 1242 1243 /\X/ 1244 a\P 1245 0: a 1246 a\P\P 1247 Partial match: a 1248 1249 /\Xa/ 1250 aa\P 1251 0: aa 1252 aa\P\P 1253 0: aa 1254 1255 /\X{2}/ 1256 aa\P 1257 0: aa 1258 aa\P\P 1259 Partial match: aa 1260 1261 /\X+a/ 1262 a\P 1263 Partial match: a 1264 aa\P 1265 0: aa 1266 aa\P\P 1267 Partial match: aa 1268 1269 /\X+?a/ 1270 a\P 1271 Partial match: a 1272 ab\P 1273 Partial match: ab 1274 aa\P 1275 0: aa 1276 aa\P\P 1277 0: aa 1278 aba\P 1279 0: aba 1280 1281 /-- These Unicode 6.1.0 scripts are not known to Perl. --/ 1282 1283 /\p{Chakma}\d/8W 1284 \x{11100}\x{1113c} 1285 0: \x{11100}\x{1113c} 1286 1287 /\p{Takri}\d/8W 1288 \x{11680}\x{116c0} 1289 0: \x{11680}\x{116c0} 1290 1291 /^\X/8 1292 A\P 1293 0: A 1294 A\P\P 1295 Partial match: A 1296 A\x{300}\x{301}\P 1297 0: A\x{300}\x{301} 1298 A\x{300}\x{301}\P\P 1299 Partial match: A\x{300}\x{301} 1300 A\x{301}\P 1301 0: A\x{301} 1302 A\x{301}\P\P 1303 Partial match: A\x{301} 1304 1305 /^\X{2,3}/8 1306 A\P 1307 Partial match: A 1308 A\P\P 1309 Partial match: A 1310 AA\P 1311 0: AA 1312 AA\P\P 1313 Partial match: AA 1314 A\x{300}\x{301}\P 1315 Partial match: A\x{300}\x{301} 1316 A\x{300}\x{301}\P\P 1317 Partial match: A\x{300}\x{301} 1318 A\x{300}\x{301}A\x{300}\x{301}\P 1319 0: A\x{300}\x{301}A\x{300}\x{301} 1320 A\x{300}\x{301}A\x{300}\x{301}\P\P 1321 Partial match: A\x{300}\x{301}A\x{300}\x{301} 1322 1323 /^\X{2}/8 1324 AA\P 1325 0: AA 1326 AA\P\P 1327 Partial match: AA 1328 A\x{300}\x{301}A\x{300}\x{301}\P 1329 0: A\x{300}\x{301}A\x{300}\x{301} 1330 A\x{300}\x{301}A\x{300}\x{301}\P\P 1331 Partial match: A\x{300}\x{301}A\x{300}\x{301} 1332 1333 /^\X+/8 1334 AA\P 1335 0: AA 1336 AA\P\P 1337 Partial match: AA 1338 1339 /^\X+?Z/8 1340 AA\P 1341 Partial match: AA 1342 AA\P\P 1343 Partial match: AA 1344 1345 /A\x{3a3}B/8iDZ 1346 ------------------------------------------------------------------ 1347 Bra 1348 /i A 1349 clist 03a3 03c2 03c3 1350 /i B 1351 Ket 1352 End 1353 ------------------------------------------------------------------ 1354 Capturing subpattern count = 0 1355 Options: caseless utf 1356 First char = 'A' (caseless) 1357 Need char = 'B' (caseless) 1358 1359 /\x{3a3}B/8iDZ 1360 ------------------------------------------------------------------ 1361 Bra 1362 clist 03a3 03c2 03c3 1363 /i B 1364 Ket 1365 End 1366 ------------------------------------------------------------------ 1367 Capturing subpattern count = 0 1368 Options: caseless utf 1369 No first char 1370 Need char = 'B' (caseless) 1371 1372 /[\x{3a3}]/8iBZ 1373 ------------------------------------------------------------------ 1374 Bra 1375 clist 03a3 03c2 03c3 1376 Ket 1377 End 1378 ------------------------------------------------------------------ 1379 1380 /[^\x{3a3}]/8iBZ 1381 ------------------------------------------------------------------ 1382 Bra 1383 not clist 03a3 03c2 03c3 1384 Ket 1385 End 1386 ------------------------------------------------------------------ 1387 1388 /[\x{3a3}]+/8iBZ 1389 ------------------------------------------------------------------ 1390 Bra 1391 clist 03a3 03c2 03c3 ++ 1392 Ket 1393 End 1394 ------------------------------------------------------------------ 1395 1396 /[^\x{3a3}]+/8iBZ 1397 ------------------------------------------------------------------ 1398 Bra 1399 not clist 03a3 03c2 03c3 ++ 1400 Ket 1401 End 1402 ------------------------------------------------------------------ 1403 1404 /a*\x{3a3}/8iBZ 1405 ------------------------------------------------------------------ 1406 Bra 1407 /i a*+ 1408 clist 03a3 03c2 03c3 1409 Ket 1410 End 1411 ------------------------------------------------------------------ 1412 1413 /\x{3a3}+a/8iBZ 1414 ------------------------------------------------------------------ 1415 Bra 1416 clist 03a3 03c2 03c3 ++ 1417 /i a 1418 Ket 1419 End 1420 ------------------------------------------------------------------ 1421 1422 /\x{3a3}*\x{3c2}/8iBZ 1423 ------------------------------------------------------------------ 1424 Bra 1425 clist 03a3 03c2 03c3 * 1426 clist 03a3 03c2 03c3 1427 Ket 1428 End 1429 ------------------------------------------------------------------ 1430 1431 /\x{3a3}{3}/8i+ 1432 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 1433 0: \x{3a3}\x{3c3}\x{3c2} 1434 0+ \x{3a3}\x{3c3}\x{3c2} 1435 1436 /\x{3a3}{2,4}/8i+ 1437 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 1438 0: \x{3a3}\x{3c3}\x{3c2}\x{3a3} 1439 0+ \x{3c3}\x{3c2} 1440 1441 /\x{3a3}{2,4}?/8i+ 1442 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 1443 0: \x{3a3}\x{3c3} 1444 0+ \x{3c2}\x{3a3}\x{3c3}\x{3c2} 1445 1446 /\x{3a3}+./8i+ 1447 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 1448 0: \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 1449 0+ 1450 1451 /\x{3a3}++./8i+ 1452 ** Failers 1453 No match 1454 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 1455 No match 1456 1457 /\x{3a3}*\x{3c2}/8iBZ 1458 ------------------------------------------------------------------ 1459 Bra 1460 clist 03a3 03c2 03c3 * 1461 clist 03a3 03c2 03c3 1462 Ket 1463 End 1464 ------------------------------------------------------------------ 1465 1466 /[^\x{3a3}]*\x{3c2}/8iBZ 1467 ------------------------------------------------------------------ 1468 Bra 1469 not clist 03a3 03c2 03c3 *+ 1470 clist 03a3 03c2 03c3 1471 Ket 1472 End 1473 ------------------------------------------------------------------ 1474 1475 /[^a]*\x{3c2}/8iBZ 1476 ------------------------------------------------------------------ 1477 Bra 1478 /i [^a]* 1479 clist 03a3 03c2 03c3 1480 Ket 1481 End 1482 ------------------------------------------------------------------ 1483 1484 /ist/8iBZ 1485 ------------------------------------------------------------------ 1486 Bra 1487 /i i 1488 clist 0053 0073 017f 1489 /i t 1490 Ket 1491 End 1492 ------------------------------------------------------------------ 1493 ikt 1494 No match 1495 1496 /is+t/8i 1497 iSs\x{17f}t 1498 0: iSs\x{17f}t 1499 ikt 1500 No match 1501 1502 /is+?t/8i 1503 ikt 1504 No match 1505 1506 /is?t/8i 1507 ikt 1508 No match 1509 1510 /is{2}t/8i 1511 iskt 1512 No match 1513 1514 /-- This property is a PCRE special --/ 1515 1516 /^\p{Xuc}/8 1517 $abc 1518 0: $ 1519 @abc 1520 0: @ 1521 `abc 1522 0: ` 1523 \x{1234}abc 1524 0: \x{1234} 1525 ** Failers 1526 No match 1527 abc 1528 No match 1529 1530 /^\p{Xuc}+/8 1531 $@`\x{a0}\x{1234}\x{e000}** 1532 0: $@`\x{a0}\x{1234}\x{e000} 1533 ** Failers 1534 No match 1535 \x{9f} 1536 No match 1537 1538 /^\p{Xuc}+?/8 1539 $@`\x{a0}\x{1234}\x{e000}** 1540 0: $ 1541 ** Failers 1542 No match 1543 \x{9f} 1544 No match 1545 1546 /^\p{Xuc}+?\*/8 1547 $@`\x{a0}\x{1234}\x{e000}** 1548 0: $@`\x{a0}\x{1234}\x{e000}* 1549 ** Failers 1550 No match 1551 \x{9f} 1552 No match 1553 1554 /^\p{Xuc}++/8 1555 $@`\x{a0}\x{1234}\x{e000}** 1556 0: $@`\x{a0}\x{1234}\x{e000} 1557 ** Failers 1558 No match 1559 \x{9f} 1560 No match 1561 1562 /^\p{Xuc}{3,5}/8 1563 $@`\x{a0}\x{1234}\x{e000}** 1564 0: $@`\x{a0}\x{1234} 1565 ** Failers 1566 No match 1567 \x{9f} 1568 No match 1569 1570 /^\p{Xuc}{3,5}?/8 1571 $@`\x{a0}\x{1234}\x{e000}** 1572 0: $@` 1573 ** Failers 1574 No match 1575 \x{9f} 1576 No match 1577 1578 /^[\p{Xuc}]/8 1579 $@`\x{a0}\x{1234}\x{e000}** 1580 0: $ 1581 ** Failers 1582 No match 1583 \x{9f} 1584 No match 1585 1586 /^[\p{Xuc}]+/8 1587 $@`\x{a0}\x{1234}\x{e000}** 1588 0: $@`\x{a0}\x{1234}\x{e000} 1589 ** Failers 1590 No match 1591 \x{9f} 1592 No match 1593 1594 /^\P{Xuc}/8 1595 abc 1596 0: a 1597 ** Failers 1598 0: * 1599 $abc 1600 No match 1601 @abc 1602 No match 1603 `abc 1604 No match 1605 \x{1234}abc 1606 No match 1607 1608 /^[\P{Xuc}]/8 1609 abc 1610 0: a 1611 ** Failers 1612 0: * 1613 $abc 1614 No match 1615 @abc 1616 No match 1617 `abc 1618 No match 1619 \x{1234}abc 1620 No match 1621 1622 /-- Some auto-possessification tests --/ 1623 1624 /\pN+\z/BZ 1625 ------------------------------------------------------------------ 1626 Bra 1627 prop N ++ 1628 \z 1629 Ket 1630 End 1631 ------------------------------------------------------------------ 1632 1633 /\PN+\z/BZ 1634 ------------------------------------------------------------------ 1635 Bra 1636 notprop N ++ 1637 \z 1638 Ket 1639 End 1640 ------------------------------------------------------------------ 1641 1642 /\pN+/BZ 1643 ------------------------------------------------------------------ 1644 Bra 1645 prop N ++ 1646 Ket 1647 End 1648 ------------------------------------------------------------------ 1649 1650 /\PN+/BZ 1651 ------------------------------------------------------------------ 1652 Bra 1653 notprop N ++ 1654 Ket 1655 End 1656 ------------------------------------------------------------------ 1657 1658 /\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}/BWZx 1659 ------------------------------------------------------------------ 1660 Bra 1661 prop Any + 1662 prop Any 1663 prop Any + 1664 notprop Any 1665 prop Any + 1666 prop L& 1667 prop Any + 1668 prop L 1669 prop Any + 1670 prop Lu 1671 prop Any + 1672 prop Han 1673 prop Any + 1674 prop Xan 1675 prop Any + 1676 prop Xsp 1677 prop Any + 1678 prop Xps 1679 prop Xwd + 1680 prop Any 1681 prop Any + 1682 prop Xuc 1683 Ket 1684 End 1685 ------------------------------------------------------------------ 1686 1687 /\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}/BWZx 1688 ------------------------------------------------------------------ 1689 Bra 1690 prop L& + 1691 prop Any 1692 prop L& + 1693 prop L& 1694 notprop L& ++ 1695 prop L& 1696 prop L& + 1697 prop L 1698 prop L& + 1699 prop Lu 1700 prop L& + 1701 prop Han 1702 prop L& + 1703 prop Xan 1704 prop L& ++ 1705 notprop Xan 1706 prop L& ++ 1707 prop Xsp 1708 prop L& ++ 1709 prop Xps 1710 prop Xwd + 1711 prop L& 1712 prop L& + 1713 prop Xuc 1714 Ket 1715 End 1716 ------------------------------------------------------------------ 1717 1718 /\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}/BWZx 1719 ------------------------------------------------------------------ 1720 Bra 1721 prop N + 1722 prop Any 1723 prop N + 1724 prop L& 1725 prop N ++ 1726 prop L 1727 prop N + 1728 notprop L 1729 prop N ++ 1730 notprop N 1731 prop N ++ 1732 prop Lu 1733 prop N + 1734 prop Han 1735 prop N + 1736 prop Xan 1737 prop N ++ 1738 prop Xsp 1739 prop N ++ 1740 prop Xps 1741 prop Xwd + 1742 prop N 1743 prop N + 1744 prop Xuc 1745 Ket 1746 End 1747 ------------------------------------------------------------------ 1748 1749 /\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}/BWZx 1750 ------------------------------------------------------------------ 1751 Bra 1752 prop Lu + 1753 prop Any 1754 prop Lu + 1755 prop L& 1756 prop Lu + 1757 prop L 1758 prop Lu + 1759 prop Lu 1760 notprop Lu ++ 1761 prop Lu 1762 prop Lu ++ 1763 prop Nd 1764 prop Lu + 1765 notprop Nd 1766 prop Lu + 1767 prop Han 1768 prop Lu + 1769 prop Xan 1770 prop Lu ++ 1771 prop Xsp 1772 prop Lu ++ 1773 prop Xps 1774 prop Xwd + 1775 prop Lu 1776 prop Lu + 1777 prop Xuc 1778 Ket 1779 End 1780 ------------------------------------------------------------------ 1781 1782 /\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}/BWZx 1783 ------------------------------------------------------------------ 1784 Bra 1785 prop Han + 1786 prop Lu 1787 prop Han + 1788 prop L& 1789 prop Han + 1790 prop L 1791 prop Han + 1792 prop Lu 1793 prop Han ++ 1794 prop Arabic 1795 prop Arabic + 1796 prop Arabic 1797 prop Han + 1798 prop Xan 1799 prop Han + 1800 prop Xsp 1801 prop Han + 1802 prop Xps 1803 prop Xwd + 1804 prop Han 1805 prop Han + 1806 prop Xuc 1807 Ket 1808 End 1809 ------------------------------------------------------------------ 1810 1811 /\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}/BWZx 1812 ------------------------------------------------------------------ 1813 Bra 1814 prop Xan + 1815 prop Any 1816 prop Xan + 1817 prop L& 1818 notprop Xan ++ 1819 prop L& 1820 prop Xan + 1821 prop L 1822 prop Xan + 1823 prop Lu 1824 prop Xan + 1825 prop Han 1826 prop Xan + 1827 prop Xan 1828 prop Xan ++ 1829 notprop Xan 1830 prop Xan ++ 1831 prop Xsp 1832 prop Xan ++ 1833 prop Xps 1834 prop Xwd + 1835 prop Xan 1836 prop Xan + 1837 prop Xuc 1838 Ket 1839 End 1840 ------------------------------------------------------------------ 1841 1842 /\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}/BWZx 1843 ------------------------------------------------------------------ 1844 Bra 1845 prop Xsp + 1846 prop Any 1847 prop Xsp ++ 1848 prop L& 1849 prop Xsp ++ 1850 prop L 1851 prop Xsp ++ 1852 prop Lu 1853 prop Xsp + 1854 prop Han 1855 prop Xsp ++ 1856 prop Xan 1857 prop Xsp + 1858 prop Xsp 1859 notprop Xsp ++ 1860 prop Xsp 1861 prop Xsp + 1862 prop Xps 1863 prop Xwd ++ 1864 prop Xsp 1865 prop Xsp + 1866 prop Xuc 1867 Ket 1868 End 1869 ------------------------------------------------------------------ 1870 1871 /\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}/BWZx 1872 ------------------------------------------------------------------ 1873 Bra 1874 prop Xwd + 1875 prop Any 1876 prop Xwd + 1877 prop L& 1878 prop Xwd + 1879 prop L 1880 prop Xwd + 1881 prop Lu 1882 prop Xwd + 1883 prop Han 1884 prop Xwd + 1885 prop Xan 1886 prop Xwd ++ 1887 prop Xsp 1888 prop Xwd ++ 1889 prop Xps 1890 prop Xwd + 1891 prop Xwd 1892 prop Xwd ++ 1893 notprop Xwd 1894 prop Xwd + 1895 prop Xuc 1896 Ket 1897 End 1898 ------------------------------------------------------------------ 1899 1900 /\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}/BWZx 1901 ------------------------------------------------------------------ 1902 Bra 1903 prop Xuc + 1904 prop Any 1905 prop Xuc + 1906 prop L& 1907 prop Xuc + 1908 prop L 1909 prop Xuc + 1910 prop Lu 1911 prop Xuc + 1912 prop Han 1913 prop Xuc + 1914 prop Xan 1915 prop Xuc + 1916 prop Xsp 1917 prop Xuc + 1918 prop Xps 1919 prop Xwd + 1920 prop Xuc 1921 prop Xuc + 1922 prop Xuc 1923 prop Xuc ++ 1924 notprop Xuc 1925 Ket 1926 End 1927 ------------------------------------------------------------------ 1928 1929 /\p{N}+\p{Ll} \p{N}+\p{Nd} \p{N}+\P{Nd}/BWZx 1930 ------------------------------------------------------------------ 1931 Bra 1932 prop N ++ 1933 prop Ll 1934 prop N + 1935 prop Nd 1936 prop N + 1937 notprop Nd 1938 Ket 1939 End 1940 ------------------------------------------------------------------ 1941 1942 /\p{Xan}+\p{L} \p{Xan}+\p{N} \p{Xan}+\p{C} \p{Xan}+\P{L} \P{Xan}+\p{N} \p{Xan}+\P{C}/BWZx 1943 ------------------------------------------------------------------ 1944 Bra 1945 prop Xan + 1946 prop L 1947 prop Xan + 1948 prop N 1949 prop Xan ++ 1950 prop C 1951 prop Xan + 1952 notprop L 1953 notprop Xan ++ 1954 prop N 1955 prop Xan + 1956 notprop C 1957 Ket 1958 End 1959 ------------------------------------------------------------------ 1960 1961 /\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}/BWZx 1962 ------------------------------------------------------------------ 1963 Bra 1964 prop L + 1965 prop Xan 1966 prop N + 1967 prop Xan 1968 prop C ++ 1969 prop Xan 1970 notprop L + 1971 prop Xan 1972 prop N + 1973 prop Xan 1974 notprop C + 1975 prop Xan 1976 prop L ++ 1977 notprop Xan 1978 Ket 1979 End 1980 ------------------------------------------------------------------ 1981 1982 /\p{Xan}+\p{Lu} \p{Xan}+\p{Nd} \p{Xan}+\p{Cc} \p{Xan}+\P{Ll} \P{Xan}+\p{No} \p{Xan}+\P{Cf}/BWZx 1983 ------------------------------------------------------------------ 1984 Bra 1985 prop Xan + 1986 prop Lu 1987 prop Xan + 1988 prop Nd 1989 prop Xan ++ 1990 prop Cc 1991 prop Xan + 1992 notprop Ll 1993 notprop Xan ++ 1994 prop No 1995 prop Xan + 1996 notprop Cf 1997 Ket 1998 End 1999 ------------------------------------------------------------------ 2000 2001 /\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}/BWZx 2002 ------------------------------------------------------------------ 2003 Bra 2004 prop Lu + 2005 prop Xan 2006 prop Nd + 2007 prop Xan 2008 prop Cs ++ 2009 prop Xan 2010 notprop Lt + 2011 prop Xan 2012 prop Nl + 2013 prop Xan 2014 notprop Cc + 2015 prop Xan 2016 prop Lt ++ 2017 notprop Xan 2018 Ket 2019 End 2020 ------------------------------------------------------------------ 2021 2022 /\w+\p{P} \w+\p{Po} \w+\s \p{Xan}+\s \s+\p{Xan} \s+\w/BWZx 2023 ------------------------------------------------------------------ 2024 Bra 2025 prop Xwd + 2026 prop P 2027 prop Xwd + 2028 prop Po 2029 prop Xwd ++ 2030 prop Xsp 2031 prop Xan ++ 2032 prop Xsp 2033 prop Xsp ++ 2034 prop Xan 2035 prop Xsp ++ 2036 prop Xwd 2037 Ket 2038 End 2039 ------------------------------------------------------------------ 2040 2041 /\w+\P{P} \W+\p{Po} \w+\S \P{Xan}+\s \s+\P{Xan} \s+\W/BWZx 2042 ------------------------------------------------------------------ 2043 Bra 2044 prop Xwd + 2045 notprop P 2046 notprop Xwd + 2047 prop Po 2048 prop Xwd + 2049 notprop Xsp 2050 notprop Xan + 2051 prop Xsp 2052 prop Xsp + 2053 notprop Xan 2054 prop Xsp + 2055 notprop Xwd 2056 Ket 2057 End 2058 ------------------------------------------------------------------ 2059 2060 /\w+\p{Po} \w+\p{Pc} \W+\p{Po} \W+\p{Pc} \w+\P{Po} \w+\P{Pc}/BWZx 2061 ------------------------------------------------------------------ 2062 Bra 2063 prop Xwd + 2064 prop Po 2065 prop Xwd ++ 2066 prop Pc 2067 notprop Xwd + 2068 prop Po 2069 notprop Xwd + 2070 prop Pc 2071 prop Xwd + 2072 notprop Po 2073 prop Xwd + 2074 notprop Pc 2075 Ket 2076 End 2077 ------------------------------------------------------------------ 2078 2079 /\p{Nl}+\p{Xan} \P{Nl}+\p{Xan} \p{Nl}+\P{Xan} \P{Nl}+\P{Xan}/BWZx 2080 ------------------------------------------------------------------ 2081 Bra 2082 prop Nl + 2083 prop Xan 2084 notprop Nl + 2085 prop Xan 2086 prop Nl ++ 2087 notprop Xan 2088 notprop Nl + 2089 notprop Xan 2090 Ket 2091 End 2092 ------------------------------------------------------------------ 2093 2094 /\p{Xan}+\p{Nl} \P{Xan}+\p{Nl} \p{Xan}+\P{Nl} \P{Xan}+\P{Nl}/BWZx 2095 ------------------------------------------------------------------ 2096 Bra 2097 prop Xan + 2098 prop Nl 2099 notprop Xan ++ 2100 prop Nl 2101 prop Xan + 2102 notprop Nl 2103 notprop Xan + 2104 notprop Nl 2105 Ket 2106 End 2107 ------------------------------------------------------------------ 2108 2109 /\p{Xan}+\p{Nd} \P{Xan}+\p{Nd} \p{Xan}+\P{Nd} \P{Xan}+\P{Nd}/BWZx 2110 ------------------------------------------------------------------ 2111 Bra 2112 prop Xan + 2113 prop Nd 2114 notprop Xan ++ 2115 prop Nd 2116 prop Xan + 2117 notprop Nd 2118 notprop Xan + 2119 notprop Nd 2120 Ket 2121 End 2122 ------------------------------------------------------------------ 2123 2124 /-- End auto-possessification tests --/ 2125 2126 /\w+/8CWBZ 2127 ------------------------------------------------------------------ 2128 Bra 2129 Callout 255 0 3 2130 prop Xwd ++ 2131 Callout 255 3 0 2132 Ket 2133 End 2134 ------------------------------------------------------------------ 2135 abcd 2136 --->abcd 2137 +0 ^ \w+ 2138 +3 ^ ^ 2139 0: abcd 2140 2141 /[\p{N}]?+/BZO 2142 ------------------------------------------------------------------ 2143 Bra 2144 [\p{N}]?+ 2145 Ket 2146 End 2147 ------------------------------------------------------------------ 2148 2149 /[\p{L}ab]{2,3}+/BZO 2150 ------------------------------------------------------------------ 2151 Bra 2152 [ab\p{L}]{2,3}+ 2153 Ket 2154 End 2155 ------------------------------------------------------------------ 2156 2157 /\D+\X \d+\X \S+\X \s+\X \W+\X \w+\X \C+\X \R+\X \H+\X \h+\X \V+\X \v+\X a+\X \n+\X .+\X/BZx 2158 ------------------------------------------------------------------ 2159 Bra 2160 \D+ 2161 extuni 2162 \d+ 2163 extuni 2164 \S+ 2165 extuni 2166 \s+ 2167 extuni 2168 \W+ 2169 extuni 2170 \w+ 2171 extuni 2172 AllAny+ 2173 extuni 2174 \R+ 2175 extuni 2176 \H+ 2177 extuni 2178 \h+ 2179 extuni 2180 \V+ 2181 extuni 2182 \v+ 2183 extuni 2184 a+ 2185 extuni 2186 \x0a+ 2187 extuni 2188 Any+ 2189 extuni 2190 Ket 2191 End 2192 ------------------------------------------------------------------ 2193 2194 /.+\X/BZxs 2195 ------------------------------------------------------------------ 2196 Bra 2197 AllAny+ 2198 extuni 2199 Ket 2200 End 2201 ------------------------------------------------------------------ 2202 2203 /\X+$/BZxm 2204 ------------------------------------------------------------------ 2205 Bra 2206 extuni+ 2207 /m $ 2208 Ket 2209 End 2210 ------------------------------------------------------------------ 2211 2212 /\X+\D \X+\d \X+\S \X+\s \X+\W \X+\w \X+. \X+\C \X+\R \X+\H \X+\h \X+\V \X+\v \X+\X \X+\Z \X+\z \X+$/BZx 2213 ------------------------------------------------------------------ 2214 Bra 2215 extuni+ 2216 \D 2217 extuni+ 2218 \d 2219 extuni+ 2220 \S 2221 extuni+ 2222 \s 2223 extuni+ 2224 \W 2225 extuni+ 2226 \w 2227 extuni+ 2228 Any 2229 extuni+ 2230 AllAny 2231 extuni+ 2232 \R 2233 extuni+ 2234 \H 2235 extuni+ 2236 \h 2237 extuni+ 2238 \V 2239 extuni+ 2240 \v 2241 extuni+ 2242 extuni 2243 extuni+ 2244 \Z 2245 extuni++ 2246 \z 2247 extuni+ 2248 $ 2249 Ket 2250 End 2251 ------------------------------------------------------------------ 2252 2253 /\d+\s{0,5}=\s*\S?=\w{0,4}\W*/8WBZ 2254 ------------------------------------------------------------------ 2255 Bra 2256 prop Nd ++ 2257 prop Xsp {0,5}+ 2258 = 2259 prop Xsp *+ 2260 notprop Xsp ? 2261 = 2262 prop Xwd {0,4}+ 2263 notprop Xwd *+ 2264 Ket 2265 End 2266 ------------------------------------------------------------------ 2267 2268 /[RST]+/8iWBZ 2269 ------------------------------------------------------------------ 2270 Bra 2271 [R-Tr-t\x{17f}]++ 2272 Ket 2273 End 2274 ------------------------------------------------------------------ 2275 2276 /[R-T]+/8iWBZ 2277 ------------------------------------------------------------------ 2278 Bra 2279 [R-Tr-t\x{17f}]++ 2280 Ket 2281 End 2282 ------------------------------------------------------------------ 2283 2284 /[Q-U]+/8iWBZ 2285 ------------------------------------------------------------------ 2286 Bra 2287 [Q-Uq-u\x{17f}]++ 2288 Ket 2289 End 2290 ------------------------------------------------------------------ 2291 2292 /^s?c/mi8I 2293 Capturing subpattern count = 0 2294 Options: caseless multiline utf 2295 First char at start or follows newline 2296 Need char = 'c' (caseless) 2297 scat 2298 0: sc 2299 2300 /-- End of testinput7 --/ 2301