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