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