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 /\x{1000}/8DZ 7 8 /\x{10000}/8DZ 9 10 /\x{100000}/8DZ 11 12 /\x{1000000}/8DZ 13 14 /\x{4000000}/8DZ 15 16 /\x{7fffFFFF}/8DZ 17 18 /[\x{ff}]/8DZ 19 20 /[\x{100}]/8DZ 21 22 /\x{ffffffff}/8 23 24 /\x{100000000}/8 25 26 /^\x{100}a\x{1234}/8 27 \x{100}a\x{1234}bcd 28 29 /\x80/8DZ 30 31 /\xff/8DZ 32 33 /\x{0041}\x{2262}\x{0391}\x{002e}/DZ8 34 \x{0041}\x{2262}\x{0391}\x{002e} 35 36 /\x{D55c}\x{ad6d}\x{C5B4}/DZ8 37 \x{D55c}\x{ad6d}\x{C5B4} 38 39 /\x{65e5}\x{672c}\x{8a9e}/DZ8 40 \x{65e5}\x{672c}\x{8a9e} 41 42 /\x{80}/DZ8 43 44 /\x{084}/DZ8 45 46 /\x{104}/DZ8 47 48 /\x{861}/DZ8 49 50 /\x{212ab}/DZ8 51 52 /.{3,5}X/DZ8 53 \x{212ab}\x{212ab}\x{212ab}\x{861}X 54 55 56 /.{3,5}?/DZ8 57 \x{212ab}\x{212ab}\x{212ab}\x{861} 58 59 /(?<=\C)X/8 60 Should produce an error diagnostic 61 62 /-- This one is here not because it's different to Perl, but because the way 63 the captured single-byte is displayed. (In Perl it becomes a character, and you 64 can't tell the difference.) --/ 65 66 /X(\C)(.*)/8 67 X\x{1234} 68 X\nabc 69 70 /-- This one is here because Perl gives out a grumbly error message (quite 71 correctly, but that messes up comparisons). --/ 72 73 /a\Cb/8 74 *** Failers 75 a\x{100}b 76 77 /^[ab]/8DZ 78 bar 79 *** Failers 80 c 81 \x{ff} 82 \x{100} 83 84 /^[^ab]/8DZ 85 c 86 \x{ff} 87 \x{100} 88 *** Failers 89 aaa 90 91 /[^ab\xC0-\xF0]/8SDZ 92 \x{f1} 93 \x{bf} 94 \x{100} 95 \x{1000} 96 *** Failers 97 \x{c0} 98 \x{f0} 99 100 /{3,4}/8SDZ 101 \x{100}\x{100}\x{100}\x{100\x{100} 102 103 /(\x{100}+|x)/8SDZ 104 105 /(\x{100}*a|x)/8SDZ 106 107 /(\x{100}{0,2}a|x)/8SDZ 108 109 /(\x{100}{1,2}a|x)/8SDZ 110 111 /\x{100}*(\d+|"(?1)")/8 112 1234 113 "1234" 114 \x{100}1234 115 "\x{100}1234" 116 \x{100}\x{100}12ab 117 \x{100}\x{100}"12" 118 *** Failers 119 \x{100}\x{100}abcd 120 121 /\x{100}/8DZ 122 123 /\x{100}*/8DZ 124 125 /a\x{100}*/8DZ 126 127 /ab\x{100}*/8DZ 128 129 /a\x{100}\x{101}*/8DZ 130 131 /a\x{100}\x{101}+/8DZ 132 133 /\x{100}*A/8DZ 134 A 135 136 /\x{100}*\d(?R)/8DZ 137 138 /[^\x{c4}]/DZ 139 140 /[^\x{c4}]/8DZ 141 142 /[\x{100}]/8DZ 143 \x{100} 144 Z\x{100} 145 \x{100}Z 146 *** Failers 147 148 /[Z\x{100}]/8DZ 149 Z\x{100} 150 \x{100} 151 \x{100}Z 152 *** Failers 153 154 /[\x{200}-\x{100}]/8 155 156 /[-]/8 157 \x{100} 158 \x{104} 159 *** Failers 160 \x{105} 161 \x{ff} 162 163 /[z-\x{100}]/8DZ 164 165 /[z\Qa-d]\E]/8DZ 166 \x{100} 167 168 169 /[\xFF]/DZ 170 >\xff< 171 172 /[\xff]/DZ8 173 >\x{ff}< 174 175 /[^\xFF]/DZ 176 177 /[^\xff]/8DZ 178 179 /[-]/8 180 # Matches without Study 181 \x{d6} 182 183 /[-]/8S 184 <-- Same with Study 185 \x{d6} 186 187 /[\x{c4}-\x{dc}]/8 188 # Matches without Study 189 \x{d6} 190 191 /[\x{c4}-\x{dc}]/8S 192 <-- Same with Study 193 \x{d6} 194 195 /[]/8 196 197 //8 198 199 /xxx/8 200 201 /xxx/8?DZ 202 203 /abc/8 204 ] 205 206 207 \? 208 \xe1\x88 209 \P\xe1\x88 210 \P\P\xe1\x88 211 212 /anything/8 213 \xc0\x80 214 \xc1\x8f 215 \xe0\x9f\x80 216 \xf0\x8f\x80\x80 217 \xf8\x87\x80\x80\x80 218 \xfc\x83\x80\x80\x80\x80 219 \xfe\x80\x80\x80\x80\x80 220 \xff\x80\x80\x80\x80\x80 221 \xc3\x8f 222 \xe0\xaf\x80 223 \xe1\x80\x80 224 \xf0\x9f\x80\x80 225 \xf1\x8f\x80\x80 226 \xf8\x88\x80\x80\x80 227 \xf9\x87\x80\x80\x80 228 \xfc\x84\x80\x80\x80\x80 229 \xfd\x83\x80\x80\x80\x80 230 \?\xf8\x88\x80\x80\x80 231 \?\xf9\x87\x80\x80\x80 232 \?\xfc\x84\x80\x80\x80\x80 233 \?\xfd\x83\x80\x80\x80\x80 234 235 /\x{100}abc(xyz(?1))/8DZ 236 237 /[^\x{100}]abc(xyz(?1))/8DZ 238 239 /[ab\x{100}]abc(xyz(?1))/8DZ 240 241 /(\x{100}(b(?2)c))?/DZ8 242 243 /(\x{100}(b(?2)c)){0,2}/DZ8 244 245 /(\x{100}(b(?1)c))?/DZ8 246 247 /(\x{100}(b(?1)c)){0,2}/DZ8 248 249 /\W/8 250 A.B 251 A\x{100}B 252 253 /\w/8 254 \x{100}X 255 256 /a\x{1234}b/P8 257 a\x{1234}b 258 259 /^\/8DZ 260 261 /\777/I 262 263 /\777/8I 264 \x{1ff} 265 \777 266 267 /\x{100}*\d/8DZ 268 269 /\x{100}*\s/8DZ 270 271 /\x{100}*\w/8DZ 272 273 /\x{100}*\D/8DZ 274 275 /\x{100}*\S/8DZ 276 277 /\x{100}*\W/8DZ 278 279 /\x{100}+\x{200}/8DZ 280 281 /\x{100}+X/8DZ 282 283 /X+\x{200}/8DZ 284 285 /()()()()()()()()()() 286 ()()()()()()()()()() 287 ()()()()()()()()()() 288 ()()()()()()()()()() 289 A (x) (?41) B/8x 290 AxxB 291 292 /^[\x{100}\E-\Q\E\x{150}]/BZ8 293 294 /^[\Q\E-\Q\E]/BZ8 295 296 /^[\Q\E-\Q\E/BZ8 297 298 /^abc./mgx8<any> 299 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK 300 301 /abc.$/mgx8<any> 302 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9 303 304 /^a\Rb/8<bsr_unicode> 305 a\nb 306 a\rb 307 a\r\nb 308 a\x0bb 309 a\x0cb 310 a\x{85}b 311 a\x{2028}b 312 a\x{2029}b 313 ** Failers 314 a\n\rb 315 316 /^a\R*b/8<bsr_unicode> 317 ab 318 a\nb 319 a\rb 320 a\r\nb 321 a\x0bb 322 a\x0c\x{2028}\x{2029}b 323 a\x{85}b 324 a\n\rb 325 a\n\r\x{85}\x0cb 326 327 /^a\R+b/8<bsr_unicode> 328 a\nb 329 a\rb 330 a\r\nb 331 a\x0bb 332 a\x0c\x{2028}\x{2029}b 333 a\x{85}b 334 a\n\rb 335 a\n\r\x{85}\x0cb 336 ** Failers 337 ab 338 339 /^a\R{1,3}b/8<bsr_unicode> 340 a\nb 341 a\n\rb 342 a\n\r\x{85}b 343 a\r\n\r\nb 344 a\r\n\r\n\r\nb 345 a\n\r\n\rb 346 a\n\n\r\nb 347 ** Failers 348 a\n\n\n\rb 349 a\r 350 351 /\H\h\V\v/8 352 X X\x0a 353 X\x09X\x0b 354 ** Failers 355 \x{a0} X\x0a 356 357 /\H*\h+\V?\v{3,4}/8 358 \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a 359 \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a 360 \x09\x20\x{a0}\x0a\x0b\x0c 361 ** Failers 362 \x09\x20\x{a0}\x0a\x0b 363 364 /\H\h\V\v/8 365 \x{3001}\x{3000}\x{2030}\x{2028} 366 X\x{180e}X\x{85} 367 ** Failers 368 \x{2009} X\x0a 369 370 /\H*\h+\V?\v{3,4}/8 371 \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a 372 \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a 373 \x09\x20\x{202f}\x0a\x0b\x0c 374 ** Failers 375 \x09\x{200a}\x{a0}\x{2028}\x0b 376 377 /[\h]/8BZ 378 >\x{1680} 379 380 /[\h]{3,}/8BZ 381 >\x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}< 382 383 /[\v]/8BZ 384 385 /[\H]/8BZ 386 387 /[\V]/8BZ 388 389 /.*$/8<any> 390 \x{1ec5} 391 392 /-- This tests the stricter UTF-8 check according to RFC 3629. --/ 393 394 /X/8 395 \x{0}\x{d7ff}\x{e000}\x{10ffff} 396 \x{d800} 397 \x{d800}\? 398 \x{da00} 399 \x{da00}\? 400 \x{dfff} 401 \x{dfff}\? 402 \x{110000} 403 \x{110000}\? 404 \x{2000000} 405 \x{2000000}\? 406 \x{7fffffff} 407 \x{7fffffff}\? 408 409 /a\Rb/I8<bsr_anycrlf> 410 a\rb 411 a\nb 412 a\r\nb 413 ** Failers 414 a\x{85}b 415 a\x0bb 416 417 /a\Rb/I8<bsr_unicode> 418 a\rb 419 a\nb 420 a\r\nb 421 a\x{85}b 422 a\x0bb 423 ** Failers 424 a\x{85}b\<bsr_anycrlf> 425 a\x0bb\<bsr_anycrlf> 426 427 /a\R?b/I8<bsr_anycrlf> 428 a\rb 429 a\nb 430 a\r\nb 431 ** Failers 432 a\x{85}b 433 a\x0bb 434 435 /a\R?b/I8<bsr_unicode> 436 a\rb 437 a\nb 438 a\r\nb 439 a\x{85}b 440 a\x0bb 441 ** Failers 442 a\x{85}b\<bsr_anycrlf> 443 a\x0bb\<bsr_anycrlf> 444 445 /.*a.*=.b.*/8<ANY> 446 QQQ\x{2029}ABCaXYZ=!bPQR 447 ** Failers 448 a\x{2029}b 449 \x61\xe2\x80\xa9\x62 450 451 /[[:a\x{100}b:]]/8 452 453 /a[^]b/<JS>8 454 a\x{1234}b 455 a\nb 456 ** Failers 457 ab 458 459 /a[^]+b/<JS>8 460 aXb 461 a\nX\nX\x{1234}b 462 ** Failers 463 ab 464 465 /(\x{de})\1/ 466 \x{de}\x{de} 467 \x{123} 468 469 /X/8f<any> 470 A\x{1ec5}ABCXYZ 471 472 /(*UTF8)\x{1234}/ 473 abcd\x{1234}pqr 474 475 /(*CRLF)(*UTF8)(*BSR_UNICODE)a\Rb/I 476 477 /Xa{2,4}b/8 478 X\P 479 Xa\P 480 Xaa\P 481 Xaaa\P 482 Xaaaa\P 483 484 /Xa{2,4}?b/8 485 X\P 486 Xa\P 487 Xaa\P 488 Xaaa\P 489 Xaaaa\P 490 491 /Xa{2,4}+b/8 492 X\P 493 Xa\P 494 Xaa\P 495 Xaaa\P 496 Xaaaa\P 497 498 /X\x{123}{2,4}b/8 499 X\P 500 X\x{123}\P 501 X\x{123}\x{123}\P 502 X\x{123}\x{123}\x{123}\P 503 X\x{123}\x{123}\x{123}\x{123}\P 504 505 /X\x{123}{2,4}?b/8 506 X\P 507 X\x{123}\P 508 X\x{123}\x{123}\P 509 X\x{123}\x{123}\x{123}\P 510 X\x{123}\x{123}\x{123}\x{123}\P 511 512 /X\x{123}{2,4}+b/8 513 X\P 514 X\x{123}\P 515 X\x{123}\x{123}\P 516 X\x{123}\x{123}\x{123}\P 517 X\x{123}\x{123}\x{123}\x{123}\P 518 519 /X\x{123}{2,4}b/8 520 Xx\P 521 X\x{123}x\P 522 X\x{123}\x{123}x\P 523 X\x{123}\x{123}\x{123}x\P 524 X\x{123}\x{123}\x{123}\x{123}x\P 525 526 /X\x{123}{2,4}?b/8 527 Xx\P 528 X\x{123}x\P 529 X\x{123}\x{123}x\P 530 X\x{123}\x{123}\x{123}x\P 531 X\x{123}\x{123}\x{123}\x{123}x\P 532 533 /X\x{123}{2,4}+b/8 534 Xx\P 535 X\x{123}x\P 536 X\x{123}\x{123}x\P 537 X\x{123}\x{123}\x{123}x\P 538 X\x{123}\x{123}\x{123}\x{123}x\P 539 540 /X\d{2,4}b/8 541 X\P 542 X3\P 543 X33\P 544 X333\P 545 X3333\P 546 547 /X\d{2,4}?b/8 548 X\P 549 X3\P 550 X33\P 551 X333\P 552 X3333\P 553 554 /X\d{2,4}+b/8 555 X\P 556 X3\P 557 X33\P 558 X333\P 559 X3333\P 560 561 /X\D{2,4}b/8 562 X\P 563 Xa\P 564 Xaa\P 565 Xaaa\P 566 Xaaaa\P 567 568 /X\D{2,4}?b/8 569 X\P 570 Xa\P 571 Xaa\P 572 Xaaa\P 573 Xaaaa\P 574 575 /X\D{2,4}+b/8 576 X\P 577 Xa\P 578 Xaa\P 579 Xaaa\P 580 Xaaaa\P 581 582 /X\D{2,4}b/8 583 X\P 584 X\x{123}\P 585 X\x{123}\x{123}\P 586 X\x{123}\x{123}\x{123}\P 587 X\x{123}\x{123}\x{123}\x{123}\P 588 589 /X\D{2,4}?b/8 590 X\P 591 X\x{123}\P 592 X\x{123}\x{123}\P 593 X\x{123}\x{123}\x{123}\P 594 X\x{123}\x{123}\x{123}\x{123}\P 595 596 /X\D{2,4}+b/8 597 X\P 598 X\x{123}\P 599 X\x{123}\x{123}\P 600 X\x{123}\x{123}\x{123}\P 601 X\x{123}\x{123}\x{123}\x{123}\P 602 603 /X[abc]{2,4}b/8 604 X\P 605 Xa\P 606 Xaa\P 607 Xaaa\P 608 Xaaaa\P 609 610 /X[abc]{2,4}?b/8 611 X\P 612 Xa\P 613 Xaa\P 614 Xaaa\P 615 Xaaaa\P 616 617 /X[abc]{2,4}+b/8 618 X\P 619 Xa\P 620 Xaa\P 621 Xaaa\P 622 Xaaaa\P 623 624 /X[abc\x{123}]{2,4}b/8 625 X\P 626 X\x{123}\P 627 X\x{123}\x{123}\P 628 X\x{123}\x{123}\x{123}\P 629 X\x{123}\x{123}\x{123}\x{123}\P 630 631 /X[abc\x{123}]{2,4}?b/8 632 X\P 633 X\x{123}\P 634 X\x{123}\x{123}\P 635 X\x{123}\x{123}\x{123}\P 636 X\x{123}\x{123}\x{123}\x{123}\P 637 638 /X[abc\x{123}]{2,4}+b/8 639 X\P 640 X\x{123}\P 641 X\x{123}\x{123}\P 642 X\x{123}\x{123}\x{123}\P 643 X\x{123}\x{123}\x{123}\x{123}\P 644 645 /X[^a]{2,4}b/8 646 X\P 647 Xz\P 648 Xzz\P 649 Xzzz\P 650 Xzzzz\P 651 652 /X[^a]{2,4}?b/8 653 X\P 654 Xz\P 655 Xzz\P 656 Xzzz\P 657 Xzzzz\P 658 659 /X[^a]{2,4}+b/8 660 X\P 661 Xz\P 662 Xzz\P 663 Xzzz\P 664 Xzzzz\P 665 666 /X[^a]{2,4}b/8 667 X\P 668 X\x{123}\P 669 X\x{123}\x{123}\P 670 X\x{123}\x{123}\x{123}\P 671 X\x{123}\x{123}\x{123}\x{123}\P 672 673 /X[^a]{2,4}?b/8 674 X\P 675 X\x{123}\P 676 X\x{123}\x{123}\P 677 X\x{123}\x{123}\x{123}\P 678 X\x{123}\x{123}\x{123}\x{123}\P 679 680 /X[^a]{2,4}+b/8 681 X\P 682 X\x{123}\P 683 X\x{123}\x{123}\P 684 X\x{123}\x{123}\x{123}\P 685 X\x{123}\x{123}\x{123}\x{123}\P 686 687 /(Y)X\1{2,4}b/8 688 YX\P 689 YXY\P 690 YXYY\P 691 YXYYY\P 692 YXYYYY\P 693 694 /(Y)X\1{2,4}?b/8 695 YX\P 696 YXY\P 697 YXYY\P 698 YXYYY\P 699 YXYYYY\P 700 701 /(Y)X\1{2,4}+b/8 702 YX\P 703 YXY\P 704 YXYY\P 705 YXYYY\P 706 YXYYYY\P 707 708 /(\x{123})X\1{2,4}b/8 709 \x{123}X\P 710 \x{123}X\x{123}\P 711 \x{123}X\x{123}\x{123}\P 712 \x{123}X\x{123}\x{123}\x{123}\P 713 \x{123}X\x{123}\x{123}\x{123}\x{123}\P 714 715 /(\x{123})X\1{2,4}?b/8 716 \x{123}X\P 717 \x{123}X\x{123}\P 718 \x{123}X\x{123}\x{123}\P 719 \x{123}X\x{123}\x{123}\x{123}\P 720 \x{123}X\x{123}\x{123}\x{123}\x{123}\P 721 722 /(\x{123})X\1{2,4}+b/8 723 \x{123}X\P 724 \x{123}X\x{123}\P 725 \x{123}X\x{123}\x{123}\P 726 \x{123}X\x{123}\x{123}\x{123}\P 727 \x{123}X\x{123}\x{123}\x{123}\x{123}\P 728 729 /\bthe cat\b/8 730 the cat\P 731 the cat\P\P 732 733 /abcd*/8 734 xxxxabcd\P 735 xxxxabcd\P\P 736 737 /abcd*/i8 738 xxxxabcd\P 739 xxxxabcd\P\P 740 XXXXABCD\P 741 XXXXABCD\P\P 742 743 /abc\d*/8 744 xxxxabc1\P 745 xxxxabc1\P\P 746 747 /(a)bc\1*/8 748 xxxxabca\P 749 xxxxabca\P\P 750 751 /abc[de]*/8 752 xxxxabcde\P 753 xxxxabcde\P\P 754 755 /X\W{3}X/8 756 \PX 757 758 /\h/SI 759 760 /\h/SI8 761 ABC\x{09} 762 ABC\x{20} 763 ABC\x{a0} 764 ABC\x{1680} 765 ABC\x{180e} 766 ABC\x{2000} 767 ABC\x{202f} 768 ABC\x{205f} 769 ABC\x{3000} 770 771 /\v/SI 772 773 /\v/SI8 774 ABC\x{0a} 775 ABC\x{0b} 776 ABC\x{0c} 777 ABC\x{0d} 778 ABC\x{85} 779 ABC\x{2028} 780 781 /\R/SI 782 783 /\R/SI8 784 785 /\h*A/SI8 786 CDBABC 787 788 /\v+A/SI8 789 790 /\s?xxx\s/8SI 791 792 /\sxxx\s/8T1 793 AB\x{85}xxx\x{a0}XYZ 794 AB\x{a0}xxx\x{85}XYZ 795 796 /\sxxx\s/I8ST1 797 AB\x{85}xxx\x{a0}XYZ 798 AB\x{a0}xxx\x{85}XYZ 799 800 /\S \S/8T1 801 \x{a2} \x{84} 802 803 /\S \S/I8ST1 804 \x{a2} \x{84} 805 A Z 806 807 'A#'8x<any>BZ 808 809 'A# 810 PQ'8x<any>BZ 811 812 /a+#aa 813 z#XX?/8x<any>BZ 814 815 /a+#aa 816 z#?/8x<any>BZ 817 818 /\g{A}xxx#bXX(?'A'123) (?'A'456)/8x<any>BZ 820 821 /\g{A}xxx#b(?'A'123) (?'A'456)/8x<any>BZ 823 824 /a+/8 825 a\x{123}aa\>1 826 a\x{123}aa\>2 827 a\x{123}aa\>3 828 a\x{123}aa\>4 829 a\x{123}aa\>5 830 a\x{123}aa\>6 831 832 /^\c/8 833 834 /-- End of testinput5 --/ 835