1/-- This set of tests is for UTF-8 support but not Unicode property support, 2 and is relevant only to the 8-bit library. --/ 3 4< forbid W 5 6/X(\C{3})/8 7 X\x{1234} 8 0: X\x{1234} 9 1: \x{1234} 10 11/X(\C{4})/8 12 X\x{1234}YZ 13 0: X\x{1234}Y 14 1: \x{1234}Y 15 16/X\C*/8 17 XYZabcdce 18 0: XYZabcdce 19 20/X\C*?/8 21 XYZabcde 22 0: X 23 24/X\C{3,5}/8 25 Xabcdefg 26 0: Xabcde 27 X\x{1234} 28 0: X\x{1234} 29 X\x{1234}YZ 30 0: X\x{1234}YZ 31 X\x{1234}\x{512} 32 0: X\x{1234}\x{512} 33 X\x{1234}\x{512}YZ 34 0: X\x{1234}\x{512} 35 36/X\C{3,5}?/8 37 Xabcdefg 38 0: Xabc 39 X\x{1234} 40 0: X\x{1234} 41 X\x{1234}YZ 42 0: X\x{1234} 43 X\x{1234}\x{512} 44 0: X\x{1234} 45 46/a\Cb/8 47 aXb 48 0: aXb 49 a\nb 50 0: a\x{0a}b 51 52/a\C\Cb/8 53 a\x{100}b 54 0: a\x{100}b 55 56/ab\Cde/8 57 abXde 58 0: abXde 59 60/a\C\Cb/8 61 a\x{100}b 62 0: a\x{100}b 63 ** Failers 64No match 65 a\x{12257}b 66No match 67 68/[�]/8 69Failed: invalid UTF-8 string at offset 1 70 71/�/8 72Failed: invalid UTF-8 string at offset 0 73 74/���xxx/8 75Failed: invalid UTF-8 string at offset 0 76 77/���xxx/8?DZSSO 78------------------------------------------------------------------ 79 Bra 80 \X{c0}\X{c0}\X{c0}xxx 81 Ket 82 End 83------------------------------------------------------------------ 84Capturing subpattern count = 0 85Options: no_auto_possessify utf no_utf_check 86First char = \x{c3} 87Need char = 'x' 88 89/badutf/8 90 \xdf 91Error -10 (bad UTF-8 string) offset=0 reason=1 92 \xef 93Error -10 (bad UTF-8 string) offset=0 reason=2 94 \xef\x80 95Error -10 (bad UTF-8 string) offset=0 reason=1 96 \xf7 97Error -10 (bad UTF-8 string) offset=0 reason=3 98 \xf7\x80 99Error -10 (bad UTF-8 string) offset=0 reason=2 100 \xf7\x80\x80 101Error -10 (bad UTF-8 string) offset=0 reason=1 102 \xfb 103Error -10 (bad UTF-8 string) offset=0 reason=4 104 \xfb\x80 105Error -10 (bad UTF-8 string) offset=0 reason=3 106 \xfb\x80\x80 107Error -10 (bad UTF-8 string) offset=0 reason=2 108 \xfb\x80\x80\x80 109Error -10 (bad UTF-8 string) offset=0 reason=1 110 \xfd 111Error -10 (bad UTF-8 string) offset=0 reason=5 112 \xfd\x80 113Error -10 (bad UTF-8 string) offset=0 reason=4 114 \xfd\x80\x80 115Error -10 (bad UTF-8 string) offset=0 reason=3 116 \xfd\x80\x80\x80 117Error -10 (bad UTF-8 string) offset=0 reason=2 118 \xfd\x80\x80\x80\x80 119Error -10 (bad UTF-8 string) offset=0 reason=1 120 \xdf\x7f 121Error -10 (bad UTF-8 string) offset=0 reason=6 122 \xef\x7f\x80 123Error -10 (bad UTF-8 string) offset=0 reason=6 124 \xef\x80\x7f 125Error -10 (bad UTF-8 string) offset=0 reason=7 126 \xf7\x7f\x80\x80 127Error -10 (bad UTF-8 string) offset=0 reason=6 128 \xf7\x80\x7f\x80 129Error -10 (bad UTF-8 string) offset=0 reason=7 130 \xf7\x80\x80\x7f 131Error -10 (bad UTF-8 string) offset=0 reason=8 132 \xfb\x7f\x80\x80\x80 133Error -10 (bad UTF-8 string) offset=0 reason=6 134 \xfb\x80\x7f\x80\x80 135Error -10 (bad UTF-8 string) offset=0 reason=7 136 \xfb\x80\x80\x7f\x80 137Error -10 (bad UTF-8 string) offset=0 reason=8 138 \xfb\x80\x80\x80\x7f 139Error -10 (bad UTF-8 string) offset=0 reason=9 140 \xfd\x7f\x80\x80\x80\x80 141Error -10 (bad UTF-8 string) offset=0 reason=6 142 \xfd\x80\x7f\x80\x80\x80 143Error -10 (bad UTF-8 string) offset=0 reason=7 144 \xfd\x80\x80\x7f\x80\x80 145Error -10 (bad UTF-8 string) offset=0 reason=8 146 \xfd\x80\x80\x80\x7f\x80 147Error -10 (bad UTF-8 string) offset=0 reason=9 148 \xfd\x80\x80\x80\x80\x7f 149Error -10 (bad UTF-8 string) offset=0 reason=10 150 \xed\xa0\x80 151Error -10 (bad UTF-8 string) offset=0 reason=14 152 \xc0\x8f 153Error -10 (bad UTF-8 string) offset=0 reason=15 154 \xe0\x80\x8f 155Error -10 (bad UTF-8 string) offset=0 reason=16 156 \xf0\x80\x80\x8f 157Error -10 (bad UTF-8 string) offset=0 reason=17 158 \xf8\x80\x80\x80\x8f 159Error -10 (bad UTF-8 string) offset=0 reason=18 160 \xfc\x80\x80\x80\x80\x8f 161Error -10 (bad UTF-8 string) offset=0 reason=19 162 \x80 163Error -10 (bad UTF-8 string) offset=0 reason=20 164 \xfe 165Error -10 (bad UTF-8 string) offset=0 reason=21 166 \xff 167Error -10 (bad UTF-8 string) offset=0 reason=21 168 169/badutf/8 170 \xfb\x80\x80\x80\x80 171Error -10 (bad UTF-8 string) offset=0 reason=11 172 \xfd\x80\x80\x80\x80\x80 173Error -10 (bad UTF-8 string) offset=0 reason=12 174 \xf7\xbf\xbf\xbf 175Error -10 (bad UTF-8 string) offset=0 reason=13 176 177/shortutf/8 178 \P\P\xdf 179Error -25 (short UTF-8 string) offset=0 reason=1 180 \P\P\xef 181Error -25 (short UTF-8 string) offset=0 reason=2 182 \P\P\xef\x80 183Error -25 (short UTF-8 string) offset=0 reason=1 184 \P\P\xf7 185Error -25 (short UTF-8 string) offset=0 reason=3 186 \P\P\xf7\x80 187Error -25 (short UTF-8 string) offset=0 reason=2 188 \P\P\xf7\x80\x80 189Error -25 (short UTF-8 string) offset=0 reason=1 190 \P\P\xfb 191Error -25 (short UTF-8 string) offset=0 reason=4 192 \P\P\xfb\x80 193Error -25 (short UTF-8 string) offset=0 reason=3 194 \P\P\xfb\x80\x80 195Error -25 (short UTF-8 string) offset=0 reason=2 196 \P\P\xfb\x80\x80\x80 197Error -25 (short UTF-8 string) offset=0 reason=1 198 \P\P\xfd 199Error -25 (short UTF-8 string) offset=0 reason=5 200 \P\P\xfd\x80 201Error -25 (short UTF-8 string) offset=0 reason=4 202 \P\P\xfd\x80\x80 203Error -25 (short UTF-8 string) offset=0 reason=3 204 \P\P\xfd\x80\x80\x80 205Error -25 (short UTF-8 string) offset=0 reason=2 206 \P\P\xfd\x80\x80\x80\x80 207Error -25 (short UTF-8 string) offset=0 reason=1 208 209/anything/8 210 \xc0\x80 211Error -10 (bad UTF-8 string) offset=0 reason=15 212 \xc1\x8f 213Error -10 (bad UTF-8 string) offset=0 reason=15 214 \xe0\x9f\x80 215Error -10 (bad UTF-8 string) offset=0 reason=16 216 \xf0\x8f\x80\x80 217Error -10 (bad UTF-8 string) offset=0 reason=17 218 \xf8\x87\x80\x80\x80 219Error -10 (bad UTF-8 string) offset=0 reason=18 220 \xfc\x83\x80\x80\x80\x80 221Error -10 (bad UTF-8 string) offset=0 reason=19 222 \xfe\x80\x80\x80\x80\x80 223Error -10 (bad UTF-8 string) offset=0 reason=21 224 \xff\x80\x80\x80\x80\x80 225Error -10 (bad UTF-8 string) offset=0 reason=21 226 \xc3\x8f 227No match 228 \xe0\xaf\x80 229No match 230 \xe1\x80\x80 231No match 232 \xf0\x9f\x80\x80 233No match 234 \xf1\x8f\x80\x80 235No match 236 \xf8\x88\x80\x80\x80 237Error -10 (bad UTF-8 string) offset=0 reason=11 238 \xf9\x87\x80\x80\x80 239Error -10 (bad UTF-8 string) offset=0 reason=11 240 \xfc\x84\x80\x80\x80\x80 241Error -10 (bad UTF-8 string) offset=0 reason=12 242 \xfd\x83\x80\x80\x80\x80 243Error -10 (bad UTF-8 string) offset=0 reason=12 244 \?\xf8\x88\x80\x80\x80 245No match 246 \?\xf9\x87\x80\x80\x80 247No match 248 \?\xfc\x84\x80\x80\x80\x80 249No match 250 \?\xfd\x83\x80\x80\x80\x80 251No match 252 253/\x{100}/8DZ 254------------------------------------------------------------------ 255 Bra 256 \x{100} 257 Ket 258 End 259------------------------------------------------------------------ 260Capturing subpattern count = 0 261Options: utf 262First char = \x{c4} 263Need char = \x{80} 264 265/\x{1000}/8DZ 266------------------------------------------------------------------ 267 Bra 268 \x{1000} 269 Ket 270 End 271------------------------------------------------------------------ 272Capturing subpattern count = 0 273Options: utf 274First char = \x{e1} 275Need char = \x{80} 276 277/\x{10000}/8DZ 278------------------------------------------------------------------ 279 Bra 280 \x{10000} 281 Ket 282 End 283------------------------------------------------------------------ 284Capturing subpattern count = 0 285Options: utf 286First char = \x{f0} 287Need char = \x{80} 288 289/\x{100000}/8DZ 290------------------------------------------------------------------ 291 Bra 292 \x{100000} 293 Ket 294 End 295------------------------------------------------------------------ 296Capturing subpattern count = 0 297Options: utf 298First char = \x{f4} 299Need char = \x{80} 300 301/\x{10ffff}/8DZ 302------------------------------------------------------------------ 303 Bra 304 \x{10ffff} 305 Ket 306 End 307------------------------------------------------------------------ 308Capturing subpattern count = 0 309Options: utf 310First char = \x{f4} 311Need char = \x{bf} 312 313/[\x{ff}]/8DZ 314------------------------------------------------------------------ 315 Bra 316 \x{ff} 317 Ket 318 End 319------------------------------------------------------------------ 320Capturing subpattern count = 0 321Options: utf 322First char = \x{c3} 323Need char = \x{bf} 324 325/[\x{100}]/8DZ 326------------------------------------------------------------------ 327 Bra 328 \x{100} 329 Ket 330 End 331------------------------------------------------------------------ 332Capturing subpattern count = 0 333Options: utf 334First char = \x{c4} 335Need char = \x{80} 336 337/\x80/8DZ 338------------------------------------------------------------------ 339 Bra 340 \x{80} 341 Ket 342 End 343------------------------------------------------------------------ 344Capturing subpattern count = 0 345Options: utf 346First char = \x{c2} 347Need char = \x{80} 348 349/\xff/8DZ 350------------------------------------------------------------------ 351 Bra 352 \x{ff} 353 Ket 354 End 355------------------------------------------------------------------ 356Capturing subpattern count = 0 357Options: utf 358First char = \x{c3} 359Need char = \x{bf} 360 361/\x{D55c}\x{ad6d}\x{C5B4}/DZ8 362------------------------------------------------------------------ 363 Bra 364 \x{d55c}\x{ad6d}\x{c5b4} 365 Ket 366 End 367------------------------------------------------------------------ 368Capturing subpattern count = 0 369Options: utf 370First char = \x{ed} 371Need char = \x{b4} 372 \x{D55c}\x{ad6d}\x{C5B4} 373 0: \x{d55c}\x{ad6d}\x{c5b4} 374 375/\x{65e5}\x{672c}\x{8a9e}/DZ8 376------------------------------------------------------------------ 377 Bra 378 \x{65e5}\x{672c}\x{8a9e} 379 Ket 380 End 381------------------------------------------------------------------ 382Capturing subpattern count = 0 383Options: utf 384First char = \x{e6} 385Need char = \x{9e} 386 \x{65e5}\x{672c}\x{8a9e} 387 0: \x{65e5}\x{672c}\x{8a9e} 388 389/\x{80}/DZ8 390------------------------------------------------------------------ 391 Bra 392 \x{80} 393 Ket 394 End 395------------------------------------------------------------------ 396Capturing subpattern count = 0 397Options: utf 398First char = \x{c2} 399Need char = \x{80} 400 401/\x{084}/DZ8 402------------------------------------------------------------------ 403 Bra 404 \x{84} 405 Ket 406 End 407------------------------------------------------------------------ 408Capturing subpattern count = 0 409Options: utf 410First char = \x{c2} 411Need char = \x{84} 412 413/\x{104}/DZ8 414------------------------------------------------------------------ 415 Bra 416 \x{104} 417 Ket 418 End 419------------------------------------------------------------------ 420Capturing subpattern count = 0 421Options: utf 422First char = \x{c4} 423Need char = \x{84} 424 425/\x{861}/DZ8 426------------------------------------------------------------------ 427 Bra 428 \x{861} 429 Ket 430 End 431------------------------------------------------------------------ 432Capturing subpattern count = 0 433Options: utf 434First char = \x{e0} 435Need char = \x{a1} 436 437/\x{212ab}/DZ8 438------------------------------------------------------------------ 439 Bra 440 \x{212ab} 441 Ket 442 End 443------------------------------------------------------------------ 444Capturing subpattern count = 0 445Options: utf 446First char = \x{f0} 447Need char = \x{ab} 448 449/-- This one is here not because it's different to Perl, but because the way 450the captured single-byte is displayed. (In Perl it becomes a character, and you 451can't tell the difference.) --/ 452 453/X(\C)(.*)/8 454 X\x{1234} 455 0: X\x{1234} 456 1: \x{e1} 457 2: \x{88}\x{b4} 458 X\nabc 459 0: X\x{0a}abc 460 1: \x{0a} 461 2: abc 462 463/-- This one is here because Perl gives out a grumbly error message (quite 464correctly, but that messes up comparisons). --/ 465 466/a\Cb/8 467 *** Failers 468No match 469 a\x{100}b 470No match 471 472/[^ab\xC0-\xF0]/8SDZ 473------------------------------------------------------------------ 474 Bra 475 [\x00-`c-\xbf\xf1-\xff] (neg) 476 Ket 477 End 478------------------------------------------------------------------ 479Capturing subpattern count = 0 480Options: utf 481No first char 482No need char 483Subject length lower bound = 1 484Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 485 \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 486 \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 487 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 488 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 489 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce \xcf \xd0 490 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd \xde \xdf 491 \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec \xed \xee 492 \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb \xfc \xfd 493 \xfe \xff 494 \x{f1} 495 0: \x{f1} 496 \x{bf} 497 0: \x{bf} 498 \x{100} 499 0: \x{100} 500 \x{1000} 501 0: \x{1000} 502 *** Failers 503 0: * 504 \x{c0} 505No match 506 \x{f0} 507No match 508 509/Ā{3,4}/8SDZ 510------------------------------------------------------------------ 511 Bra 512 \x{100}{3} 513 \x{100}?+ 514 Ket 515 End 516------------------------------------------------------------------ 517Capturing subpattern count = 0 518Options: utf 519First char = \x{c4} 520Need char = \x{80} 521Subject length lower bound = 3 522No starting char list 523 \x{100}\x{100}\x{100}\x{100\x{100} 524 0: \x{100}\x{100}\x{100} 525 526/(\x{100}+|x)/8SDZ 527------------------------------------------------------------------ 528 Bra 529 CBra 1 530 \x{100}++ 531 Alt 532 x 533 Ket 534 Ket 535 End 536------------------------------------------------------------------ 537Capturing subpattern count = 1 538Options: utf 539No first char 540No need char 541Subject length lower bound = 1 542Starting chars: x \xc4 543 544/(\x{100}*a|x)/8SDZ 545------------------------------------------------------------------ 546 Bra 547 CBra 1 548 \x{100}*+ 549 a 550 Alt 551 x 552 Ket 553 Ket 554 End 555------------------------------------------------------------------ 556Capturing subpattern count = 1 557Options: utf 558No first char 559No need char 560Subject length lower bound = 1 561Starting chars: a x \xc4 562 563/(\x{100}{0,2}a|x)/8SDZ 564------------------------------------------------------------------ 565 Bra 566 CBra 1 567 \x{100}{0,2}+ 568 a 569 Alt 570 x 571 Ket 572 Ket 573 End 574------------------------------------------------------------------ 575Capturing subpattern count = 1 576Options: utf 577No first char 578No need char 579Subject length lower bound = 1 580Starting chars: a x \xc4 581 582/(\x{100}{1,2}a|x)/8SDZ 583------------------------------------------------------------------ 584 Bra 585 CBra 1 586 \x{100} 587 \x{100}{0,1}+ 588 a 589 Alt 590 x 591 Ket 592 Ket 593 End 594------------------------------------------------------------------ 595Capturing subpattern count = 1 596Options: utf 597No first char 598No need char 599Subject length lower bound = 1 600Starting chars: x \xc4 601 602/\x{100}/8DZ 603------------------------------------------------------------------ 604 Bra 605 \x{100} 606 Ket 607 End 608------------------------------------------------------------------ 609Capturing subpattern count = 0 610Options: utf 611First char = \x{c4} 612Need char = \x{80} 613 614/a\x{100}\x{101}*/8DZ 615------------------------------------------------------------------ 616 Bra 617 a\x{100} 618 \x{101}*+ 619 Ket 620 End 621------------------------------------------------------------------ 622Capturing subpattern count = 0 623Options: utf 624First char = 'a' 625Need char = \x{80} 626 627/a\x{100}\x{101}+/8DZ 628------------------------------------------------------------------ 629 Bra 630 a\x{100} 631 \x{101}++ 632 Ket 633 End 634------------------------------------------------------------------ 635Capturing subpattern count = 0 636Options: utf 637First char = 'a' 638Need char = \x{81} 639 640/[^\x{c4}]/DZ 641------------------------------------------------------------------ 642 Bra 643 [^\x{c4}] 644 Ket 645 End 646------------------------------------------------------------------ 647Capturing subpattern count = 0 648No options 649No first char 650No need char 651 652/[\x{100}]/8DZ 653------------------------------------------------------------------ 654 Bra 655 \x{100} 656 Ket 657 End 658------------------------------------------------------------------ 659Capturing subpattern count = 0 660Options: utf 661First char = \x{c4} 662Need char = \x{80} 663 \x{100} 664 0: \x{100} 665 Z\x{100} 666 0: \x{100} 667 \x{100}Z 668 0: \x{100} 669 *** Failers 670No match 671 672/[\xff]/DZ8 673------------------------------------------------------------------ 674 Bra 675 \x{ff} 676 Ket 677 End 678------------------------------------------------------------------ 679Capturing subpattern count = 0 680Options: utf 681First char = \x{c3} 682Need char = \x{bf} 683 >\x{ff}< 684 0: \x{ff} 685 686/[^\xff]/8DZ 687------------------------------------------------------------------ 688 Bra 689 [^\x{ff}] 690 Ket 691 End 692------------------------------------------------------------------ 693Capturing subpattern count = 0 694Options: utf 695No first char 696No need char 697 698/\x{100}abc(xyz(?1))/8DZ 699------------------------------------------------------------------ 700 Bra 701 \x{100}abc 702 CBra 1 703 xyz 704 Recurse 705 Ket 706 Ket 707 End 708------------------------------------------------------------------ 709Capturing subpattern count = 1 710Options: utf 711First char = \x{c4} 712Need char = 'z' 713 714/a\x{1234}b/P8 715 a\x{1234}b 716 0: a\x{1234}b 717 718/\777/8I 719Capturing subpattern count = 0 720Options: utf 721First char = \x{c7} 722Need char = \x{bf} 723 \x{1ff} 724 0: \x{1ff} 725 \777 726 0: \x{1ff} 727 728/\x{100}+\x{200}/8DZ 729------------------------------------------------------------------ 730 Bra 731 \x{100}++ 732 \x{200} 733 Ket 734 End 735------------------------------------------------------------------ 736Capturing subpattern count = 0 737Options: utf 738First char = \x{c4} 739Need char = \x{80} 740 741/\x{100}+X/8DZ 742------------------------------------------------------------------ 743 Bra 744 \x{100}++ 745 X 746 Ket 747 End 748------------------------------------------------------------------ 749Capturing subpattern count = 0 750Options: utf 751First char = \x{c4} 752Need char = 'X' 753 754/^[\QĀ\E-\QŐ\E/BZ8 755Failed: missing terminating ] for character class at offset 15 756 757/-- This tests the stricter UTF-8 check according to RFC 3629. --/ 758 759/X/8 760 \x{d800} 761Error -10 (bad UTF-8 string) offset=0 reason=14 762 \x{d800}\? 763No match 764 \x{da00} 765Error -10 (bad UTF-8 string) offset=0 reason=14 766 \x{da00}\? 767No match 768 \x{dfff} 769Error -10 (bad UTF-8 string) offset=0 reason=14 770 \x{dfff}\? 771No match 772 \x{110000} 773Error -10 (bad UTF-8 string) offset=0 reason=13 774 \x{110000}\? 775No match 776 \x{2000000} 777Error -10 (bad UTF-8 string) offset=0 reason=11 778 \x{2000000}\? 779No match 780 \x{7fffffff} 781Error -10 (bad UTF-8 string) offset=0 reason=12 782 \x{7fffffff}\? 783No match 784 785/(*UTF8)\x{1234}/ 786 abcd\x{1234}pqr 787 0: \x{1234} 788 789/(*CRLF)(*UTF)(*BSR_UNICODE)a\Rb/I 790Capturing subpattern count = 0 791Options: bsr_unicode utf 792Forced newline sequence: CRLF 793First char = 'a' 794Need char = 'b' 795 796/\h/SI8 797Capturing subpattern count = 0 798Options: utf 799No first char 800No need char 801Subject length lower bound = 1 802Starting chars: \x09 \x20 \xc2 \xe1 \xe2 \xe3 803 ABC\x{09} 804 0: \x{09} 805 ABC\x{20} 806 0: 807 ABC\x{a0} 808 0: \x{a0} 809 ABC\x{1680} 810 0: \x{1680} 811 ABC\x{180e} 812 0: \x{180e} 813 ABC\x{2000} 814 0: \x{2000} 815 ABC\x{202f} 816 0: \x{202f} 817 ABC\x{205f} 818 0: \x{205f} 819 ABC\x{3000} 820 0: \x{3000} 821 822/\v/SI8 823Capturing subpattern count = 0 824Options: utf 825No first char 826No need char 827Subject length lower bound = 1 828Starting chars: \x0a \x0b \x0c \x0d \xc2 \xe2 829 ABC\x{0a} 830 0: \x{0a} 831 ABC\x{0b} 832 0: \x{0b} 833 ABC\x{0c} 834 0: \x{0c} 835 ABC\x{0d} 836 0: \x{0d} 837 ABC\x{85} 838 0: \x{85} 839 ABC\x{2028} 840 0: \x{2028} 841 842/\h*A/SI8 843Capturing subpattern count = 0 844Options: utf 845No first char 846Need char = 'A' 847Subject length lower bound = 1 848Starting chars: \x09 \x20 A \xc2 \xe1 \xe2 \xe3 849 CDBABC 850 0: A 851 852/\v+A/SI8 853Capturing subpattern count = 0 854Options: utf 855No first char 856Need char = 'A' 857Subject length lower bound = 2 858Starting chars: \x0a \x0b \x0c \x0d \xc2 \xe2 859 860/\s?xxx\s/8SI 861Capturing subpattern count = 0 862Options: utf 863No first char 864Need char = 'x' 865Subject length lower bound = 4 866Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 x 867 868/\sxxx\s/I8ST1 869Capturing subpattern count = 0 870Options: utf 871No first char 872Need char = 'x' 873Subject length lower bound = 5 874Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 \xc2 875 AB\x{85}xxx\x{a0}XYZ 876 0: \x{85}xxx\x{a0} 877 AB\x{a0}xxx\x{85}XYZ 878 0: \x{a0}xxx\x{85} 879 880/\S \S/I8ST1 881Capturing subpattern count = 0 882Options: utf 883No first char 884Need char = ' ' 885Subject length lower bound = 3 886Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0e \x0f 887 \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1b \x1c \x1d \x1e 888 \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C 889 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 f g h 890 i j k l m n o p q r s t u v w x y z { | } ~ \x7f \xc0 \xc1 \xc2 \xc3 \xc4 891 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 892 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 893 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec \xed \xee \xef \xf0 \xf1 894 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb \xfc \xfd \xfe \xff 895 \x{a2} \x{84} 896 0: \x{a2} \x{84} 897 A Z 898 0: A Z 899 900/a+/8 901 a\x{123}aa\>1 902 0: aa 903 a\x{123}aa\>2 904Error -11 (bad UTF-8 offset) 905 a\x{123}aa\>3 906 0: aa 907 a\x{123}aa\>4 908 0: a 909 a\x{123}aa\>5 910No match 911 a\x{123}aa\>6 912Error -24 (bad offset value) 913 914/\x{1234}+/iS8I 915Capturing subpattern count = 0 916Options: caseless utf 917No first char 918No need char 919Subject length lower bound = 1 920Starting chars: \xe1 921 922/\x{1234}+?/iS8I 923Capturing subpattern count = 0 924Options: caseless utf 925No first char 926No need char 927Subject length lower bound = 1 928Starting chars: \xe1 929 930/\x{1234}++/iS8I 931Capturing subpattern count = 0 932Options: caseless utf 933No first char 934No need char 935Subject length lower bound = 1 936Starting chars: \xe1 937 938/\x{1234}{2}/iS8I 939Capturing subpattern count = 0 940Options: caseless utf 941No first char 942No need char 943Subject length lower bound = 2 944Starting chars: \xe1 945 946/[^\x{c4}]/8DZ 947------------------------------------------------------------------ 948 Bra 949 [^\x{c4}] 950 Ket 951 End 952------------------------------------------------------------------ 953Capturing subpattern count = 0 954Options: utf 955No first char 956No need char 957 958/X+\x{200}/8DZ 959------------------------------------------------------------------ 960 Bra 961 X++ 962 \x{200} 963 Ket 964 End 965------------------------------------------------------------------ 966Capturing subpattern count = 0 967Options: utf 968First char = 'X' 969Need char = \x{80} 970 971/\R/SI8 972Capturing subpattern count = 0 973Options: utf 974No first char 975No need char 976Subject length lower bound = 1 977Starting chars: \x0a \x0b \x0c \x0d \xc2 \xe2 978 979/\777/8DZ 980------------------------------------------------------------------ 981 Bra 982 \x{1ff} 983 Ket 984 End 985------------------------------------------------------------------ 986Capturing subpattern count = 0 987Options: utf 988First char = \x{c7} 989Need char = \x{bf} 990 991/\w+\x{C4}/8BZ 992------------------------------------------------------------------ 993 Bra 994 \w++ 995 \x{c4} 996 Ket 997 End 998------------------------------------------------------------------ 999 a\x{C4}\x{C4} 1000 0: a\x{c4} 1001 1002/\w+\x{C4}/8BZT1 1003------------------------------------------------------------------ 1004 Bra 1005 \w+ 1006 \x{c4} 1007 Ket 1008 End 1009------------------------------------------------------------------ 1010 a\x{C4}\x{C4} 1011 0: a\x{c4}\x{c4} 1012 1013/\W+\x{C4}/8BZ 1014------------------------------------------------------------------ 1015 Bra 1016 \W+ 1017 \x{c4} 1018 Ket 1019 End 1020------------------------------------------------------------------ 1021 !\x{C4} 1022 0: !\x{c4} 1023 1024/\W+\x{C4}/8BZT1 1025------------------------------------------------------------------ 1026 Bra 1027 \W++ 1028 \x{c4} 1029 Ket 1030 End 1031------------------------------------------------------------------ 1032 !\x{C4} 1033 0: !\x{c4} 1034 1035/\W+\x{A1}/8BZ 1036------------------------------------------------------------------ 1037 Bra 1038 \W+ 1039 \x{a1} 1040 Ket 1041 End 1042------------------------------------------------------------------ 1043 !\x{A1} 1044 0: !\x{a1} 1045 1046/\W+\x{A1}/8BZT1 1047------------------------------------------------------------------ 1048 Bra 1049 \W+ 1050 \x{a1} 1051 Ket 1052 End 1053------------------------------------------------------------------ 1054 !\x{A1} 1055 0: !\x{a1} 1056 1057/X\s+\x{A0}/8BZ 1058------------------------------------------------------------------ 1059 Bra 1060 X 1061 \s++ 1062 \x{a0} 1063 Ket 1064 End 1065------------------------------------------------------------------ 1066 X\x20\x{A0}\x{A0} 1067 0: X \x{a0} 1068 1069/X\s+\x{A0}/8BZT1 1070------------------------------------------------------------------ 1071 Bra 1072 X 1073 \s+ 1074 \x{a0} 1075 Ket 1076 End 1077------------------------------------------------------------------ 1078 X\x20\x{A0}\x{A0} 1079 0: X \x{a0}\x{a0} 1080 1081/\S+\x{A0}/8BZ 1082------------------------------------------------------------------ 1083 Bra 1084 \S+ 1085 \x{a0} 1086 Ket 1087 End 1088------------------------------------------------------------------ 1089 X\x{A0}\x{A0} 1090 0: X\x{a0}\x{a0} 1091 1092/\S+\x{A0}/8BZT1 1093------------------------------------------------------------------ 1094 Bra 1095 \S++ 1096 \x{a0} 1097 Ket 1098 End 1099------------------------------------------------------------------ 1100 X\x{A0}\x{A0} 1101 0: X\x{a0} 1102 1103/\x{a0}+\s!/8BZ 1104------------------------------------------------------------------ 1105 Bra 1106 \x{a0}++ 1107 \s 1108 ! 1109 Ket 1110 End 1111------------------------------------------------------------------ 1112 \x{a0}\x20! 1113 0: \x{a0} ! 1114 1115/\x{a0}+\s!/8BZT1 1116------------------------------------------------------------------ 1117 Bra 1118 \x{a0}+ 1119 \s 1120 ! 1121 Ket 1122 End 1123------------------------------------------------------------------ 1124 \x{a0}\x20! 1125 0: \x{a0} ! 1126 1127/A/8 1128 \x{ff000041} 1129** Character \x{ff000041} is greater than 0x7fffffff and so cannot be converted to UTF-8 1130 \x{7f000041} 1131Error -10 (bad UTF-8 string) offset=0 reason=12 1132 1133/(*UTF8)abc/9 1134Failed: setting UTF is disabled by the application at offset 0 1135 1136/abc/89 1137Failed: setting UTF is disabled by the application at offset 0 1138 1139//8+L 1140 \xf1\xad\xae\xae 1141 0: 1142 0+ \x{6dbae} 1143 1144/-- End of testinput15 --/ 1145