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