1# This set of tests checks the API, internals, and non-Perl stuff for UTF 2# support, including Unicode properties. However, tests that give different 3# results in 8-bit, 16-bit, and 32-bit modes are excluded (see tests 10 and 4# 12). 5 6#newline_default lf any anycrlf 7 8# PCRE2 and Perl disagree about the characteristics of certain Unicode 9# characters. For example, 061C was considered by Perl to be Arabic, though 10# it was not listed as such in the Unicode Scripts.txt file for Unicode 8. 11# However, it *is* in that file for Unicode 10, but when I came to re-check, 12# Perl had changed in the meantime, with 5.026 not recognizing it as Arabic. 13 14# 2066-2069 are graphic and printable according to Perl, though they are 15# actually "isolate" control characters. That is why the following tests are 16# here rather than in test 4. 17 18/^[\p{Arabic}]/utf 19 \x{061c} 20 0: \x{61c} 21 22/^[[:graph:]]+$/utf,ucp 23\= Expect no match 24 \x{61c} 25No match 26 \x{2066} 27No match 28 \x{2067} 29No match 30 \x{2068} 31No match 32 \x{2069} 33No match 34 35/^[[:print:]]+$/utf,ucp 36\= Expect no match 37 \x{61c} 38No match 39 \x{2066} 40No match 41 \x{2067} 42No match 43 \x{2068} 44No match 45 \x{2069} 46No match 47 48/^[[:^graph:]]+$/utf,ucp 49 \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{61c}\x{1680} 50 0: \x{09}\x{0a}\x{1d} \x{85}\x{a0}\x{61c}\x{1680} 51 \x{2028}\x{2029}\x{202f}\x{2065}\x{2066}\x{2067}\x{2068}\x{2069} 52 0: \x{2028}\x{2029}\x{202f}\x{2065}\x{2066}\x{2067}\x{2068}\x{2069} 53 54/^[[:^print:]]+$/utf,ucp 55 \x{09}\x{1D}\x{85}\x{61c}\x{2028}\x{2029}\x{2065}\x{2066}\x{2067} 56 0: \x{09}\x{1d}\x{85}\x{61c}\x{2028}\x{2029}\x{2065}\x{2066}\x{2067} 57 \x{2068}\x{2069} 58 0: \x{2068}\x{2069} 59 60# Perl does not consider U+180e to be a space character. It is true that it 61# does not appear in the Unicode PropList.txt file as such, but in many other 62# sources it is listed as a space, and has been treated as such in PCRE for 63# a long time. 64 65/^>[[:blank:]]*/utf,ucp 66 >\x{20}\x{a0}\x{1680}\x{180e}\x{2000}\x{202f}\x{9}\x{b}\x{2028} 67 0: > \x{a0}\x{1680}\x{180e}\x{2000}\x{202f}\x{09} 68 69/^A\s+Z/utf,ucp 70 A\x{85}\x{180e}\x{2005}Z 71 0: A\x{85}\x{180e}\x{2005}Z 72 73/^A[\s]+Z/utf,ucp 74 A\x{2005}Z 75 0: A\x{2005}Z 76 A\x{85}\x{2005}Z 77 0: A\x{85}\x{2005}Z 78 79/^[[:graph:]]+$/utf,ucp 80\= Expect no match 81 \x{180e} 82No match 83 84/^[[:print:]]+$/utf,ucp 85 \x{180e} 86 0: \x{180e} 87 88/^[[:^graph:]]+$/utf,ucp 89 \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{61c}\x{1680}\x{180e} 90 0: \x{09}\x{0a}\x{1d} \x{85}\x{a0}\x{61c}\x{1680}\x{180e} 91 92/^[[:^print:]]+$/utf,ucp 93\= Expect no match 94 \x{180e} 95No match 96 97# End of U+180E tests. 98 99# --------------------------------------------------------------------- 100 101/\x{110000}/IB,utf 102Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large 103 104/\o{4200000}/IB,utf 105Failed: error 134 at offset 10: character code point value in \x{} or \o{} is too large 106 107/\x{ffffffff}/utf 108Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large 109 110/\o{37777777777}/utf 111Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large 112 113/\x{100000000}/utf 114Failed: error 134 at offset 12: character code point value in \x{} or \o{} is too large 115 116/\o{77777777777}/utf 117Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large 118 119/\x{d800}/utf 120Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) 121 122/\o{154000}/utf 123Failed: error 173 at offset 9: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) 124 125/\x{dfff}/utf 126Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) 127 128/\o{157777}/utf 129Failed: error 173 at offset 9: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) 130 131/\x{d7ff}/utf 132 133/\o{153777}/utf 134 135/\x{e000}/utf 136 137/\o{170000}/utf 138 139/^\x{100}a\x{1234}/utf 140 \x{100}a\x{1234}bcd 141 0: \x{100}a\x{1234} 142 143/\x{0041}\x{2262}\x{0391}\x{002e}/IB,utf 144------------------------------------------------------------------ 145 Bra 146 A\x{2262}\x{391}. 147 Ket 148 End 149------------------------------------------------------------------ 150Capture group count = 0 151Options: utf 152First code unit = 'A' 153Last code unit = '.' 154Subject length lower bound = 4 155 \x{0041}\x{2262}\x{0391}\x{002e} 156 0: A\x{2262}\x{391}. 157 158/.{3,5}X/IB,utf 159------------------------------------------------------------------ 160 Bra 161 Any{3} 162 Any{0,2} 163 X 164 Ket 165 End 166------------------------------------------------------------------ 167Capture group count = 0 168Options: utf 169Last code unit = 'X' 170Subject length lower bound = 4 171 \x{212ab}\x{212ab}\x{212ab}\x{861}X 172 0: \x{212ab}\x{212ab}\x{212ab}\x{861}X 173 174/.{3,5}?/IB,utf 175------------------------------------------------------------------ 176 Bra 177 Any{3} 178 Any{0,2}? 179 Ket 180 End 181------------------------------------------------------------------ 182Capture group count = 0 183Options: utf 184Subject length lower bound = 3 185 \x{212ab}\x{212ab}\x{212ab}\x{861} 186 0: \x{212ab}\x{212ab}\x{212ab} 187 188/^[ab]/IB,utf 189------------------------------------------------------------------ 190 Bra 191 ^ 192 [ab] 193 Ket 194 End 195------------------------------------------------------------------ 196Capture group count = 0 197Compile options: utf 198Overall options: anchored utf 199Starting code units: a b 200Subject length lower bound = 1 201 bar 202 0: b 203\= Expect no match 204 c 205No match 206 \x{ff} 207No match 208 \x{100} 209No match 210 211/\x{100}*(\d+|"(?1)")/utf 212 1234 213 0: 1234 214 1: 1234 215 "1234" 216 0: "1234" 217 1: "1234" 218 \x{100}1234 219 0: \x{100}1234 220 1: 1234 221 "\x{100}1234" 222 0: \x{100}1234 223 1: 1234 224 \x{100}\x{100}12ab 225 0: \x{100}\x{100}12 226 1: 12 227 \x{100}\x{100}"12" 228 0: \x{100}\x{100}"12" 229 1: "12" 230\= Expect no match 231 \x{100}\x{100}abcd 232No match 233 234/\x{100}*/IB,utf 235------------------------------------------------------------------ 236 Bra 237 \x{100}*+ 238 Ket 239 End 240------------------------------------------------------------------ 241Capture group count = 0 242May match empty string 243Options: utf 244Subject length lower bound = 0 245 246/a\x{100}*/IB,utf 247------------------------------------------------------------------ 248 Bra 249 a 250 \x{100}*+ 251 Ket 252 End 253------------------------------------------------------------------ 254Capture group count = 0 255Options: utf 256First code unit = 'a' 257Subject length lower bound = 1 258 259/ab\x{100}*/IB,utf 260------------------------------------------------------------------ 261 Bra 262 ab 263 \x{100}*+ 264 Ket 265 End 266------------------------------------------------------------------ 267Capture group count = 0 268Options: utf 269First code unit = 'a' 270Last code unit = 'b' 271Subject length lower bound = 2 272 273/[\x{200}-\x{100}]/utf 274Failed: error 108 at offset 15: range out of order in character class 275 276/[Ā-Ą]/utf 277 \x{100} 278 0: \x{100} 279 \x{104} 280 0: \x{104} 281\= Expect no match 282 \x{105} 283No match 284 \x{ff} 285No match 286 287/[\xFF]/IB 288------------------------------------------------------------------ 289 Bra 290 \x{ff} 291 Ket 292 End 293------------------------------------------------------------------ 294Capture group count = 0 295First code unit = \xff 296Subject length lower bound = 1 297 >\xff< 298 0: \xff 299 300/[^\xFF]/IB 301------------------------------------------------------------------ 302 Bra 303 [^\x{ff}] 304 Ket 305 End 306------------------------------------------------------------------ 307Capture group count = 0 308Subject length lower bound = 1 309 310/[Ä-Ü]/utf 311 Ö # Matches without Study 312 0: \x{d6} 313 \x{d6} 314 0: \x{d6} 315 316/[Ä-Ü]/utf 317 Ö <-- Same with Study 318 0: \x{d6} 319 \x{d6} 320 0: \x{d6} 321 322/[\x{c4}-\x{dc}]/utf 323 Ö # Matches without Study 324 0: \x{d6} 325 \x{d6} 326 0: \x{d6} 327 328/[\x{c4}-\x{dc}]/utf 329 Ö <-- Same with Study 330 0: \x{d6} 331 \x{d6} 332 0: \x{d6} 333 334/[^\x{100}]abc(xyz(?1))/IB,utf 335------------------------------------------------------------------ 336 Bra 337 [^\x{100}] 338 abc 339 CBra 1 340 xyz 341 Recurse 342 Ket 343 Ket 344 End 345------------------------------------------------------------------ 346Capture group count = 1 347Options: utf 348Last code unit = 'z' 349Subject length lower bound = 7 350 351/(\x{100}(b(?2)c))?/IB,utf 352------------------------------------------------------------------ 353 Bra 354 Brazero 355 CBra 1 356 \x{100} 357 CBra 2 358 b 359 Recurse 360 c 361 Ket 362 Ket 363 Ket 364 End 365------------------------------------------------------------------ 366Capture group count = 2 367May match empty string 368Options: utf 369Subject length lower bound = 0 370 371/(\x{100}(b(?2)c)){0,2}/IB,utf 372------------------------------------------------------------------ 373 Bra 374 Brazero 375 Bra 376 CBra 1 377 \x{100} 378 CBra 2 379 b 380 Recurse 381 c 382 Ket 383 Ket 384 Brazero 385 CBra 1 386 \x{100} 387 CBra 2 388 b 389 Recurse 390 c 391 Ket 392 Ket 393 Ket 394 Ket 395 End 396------------------------------------------------------------------ 397Capture group count = 2 398May match empty string 399Options: utf 400Subject length lower bound = 0 401 402/(\x{100}(b(?1)c))?/IB,utf 403------------------------------------------------------------------ 404 Bra 405 Brazero 406 CBra 1 407 \x{100} 408 CBra 2 409 b 410 Recurse 411 c 412 Ket 413 Ket 414 Ket 415 End 416------------------------------------------------------------------ 417Capture group count = 2 418May match empty string 419Options: utf 420Subject length lower bound = 0 421 422/(\x{100}(b(?1)c)){0,2}/IB,utf 423------------------------------------------------------------------ 424 Bra 425 Brazero 426 Bra 427 CBra 1 428 \x{100} 429 CBra 2 430 b 431 Recurse 432 c 433 Ket 434 Ket 435 Brazero 436 CBra 1 437 \x{100} 438 CBra 2 439 b 440 Recurse 441 c 442 Ket 443 Ket 444 Ket 445 Ket 446 End 447------------------------------------------------------------------ 448Capture group count = 2 449May match empty string 450Options: utf 451Subject length lower bound = 0 452 453/\W/utf 454 A.B 455 0: . 456 A\x{100}B 457 0: \x{100} 458 459/\w/utf 460 \x{100}X 461 0: X 462 463# Use no_start_optimize because the first code unit is different in 8-bit from 464# the wider modes. 465 466/^\ሴ/IB,utf,no_start_optimize 467------------------------------------------------------------------ 468 Bra 469 ^ 470 \x{1234} 471 Ket 472 End 473------------------------------------------------------------------ 474Capture group count = 0 475Compile options: no_start_optimize utf 476Overall options: anchored no_start_optimize utf 477 478/()()()()()()()()()() 479 ()()()()()()()()()() 480 ()()()()()()()()()() 481 ()()()()()()()()()() 482 A (x) (?41) B/x,utf 483 AxxB 484Matched, but too many substrings 485 0: AxxB 486 1: 487 2: 488 3: 489 4: 490 5: 491 6: 492 7: 493 8: 494 9: 49510: 49611: 49712: 49813: 49914: 500 501/^[\x{100}\E-\Q\E\x{150}]/B,utf 502------------------------------------------------------------------ 503 Bra 504 ^ 505 [\x{100}-\x{150}] 506 Ket 507 End 508------------------------------------------------------------------ 509 510/^[\QĀ\E-\QŐ\E]/B,utf 511------------------------------------------------------------------ 512 Bra 513 ^ 514 [\x{100}-\x{150}] 515 Ket 516 End 517------------------------------------------------------------------ 518 519/^abc./gmx,newline=any,utf 520 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK 521 0: abc1 522 0: abc2 523 0: abc3 524 0: abc4 525 0: abc5 526 0: abc6 527 0: abc7 528 0: abc8 529 0: abc9 530 531/abc.$/gmx,newline=any,utf 532 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9 533 0: abc1 534 0: abc2 535 0: abc3 536 0: abc4 537 0: abc5 538 0: abc6 539 0: abc7 540 0: abc8 541 0: abc9 542 543/^a\Rb/bsr=unicode,utf 544 a\nb 545 0: a\x{0a}b 546 a\rb 547 0: a\x{0d}b 548 a\r\nb 549 0: a\x{0d}\x{0a}b 550 a\x0bb 551 0: a\x{0b}b 552 a\x0cb 553 0: a\x{0c}b 554 a\x{85}b 555 0: a\x{85}b 556 a\x{2028}b 557 0: a\x{2028}b 558 a\x{2029}b 559 0: a\x{2029}b 560\= Expect no match 561 a\n\rb 562No match 563 564/^a\R*b/bsr=unicode,utf 565 ab 566 0: ab 567 a\nb 568 0: a\x{0a}b 569 a\rb 570 0: a\x{0d}b 571 a\r\nb 572 0: a\x{0d}\x{0a}b 573 a\x0bb 574 0: a\x{0b}b 575 a\x0c\x{2028}\x{2029}b 576 0: a\x{0c}\x{2028}\x{2029}b 577 a\x{85}b 578 0: a\x{85}b 579 a\n\rb 580 0: a\x{0a}\x{0d}b 581 a\n\r\x{85}\x0cb 582 0: a\x{0a}\x{0d}\x{85}\x{0c}b 583 584/^a\R+b/bsr=unicode,utf 585 a\nb 586 0: a\x{0a}b 587 a\rb 588 0: a\x{0d}b 589 a\r\nb 590 0: a\x{0d}\x{0a}b 591 a\x0bb 592 0: a\x{0b}b 593 a\x0c\x{2028}\x{2029}b 594 0: a\x{0c}\x{2028}\x{2029}b 595 a\x{85}b 596 0: a\x{85}b 597 a\n\rb 598 0: a\x{0a}\x{0d}b 599 a\n\r\x{85}\x0cb 600 0: a\x{0a}\x{0d}\x{85}\x{0c}b 601\= Expect no match 602 ab 603No match 604 605/^a\R{1,3}b/bsr=unicode,utf 606 a\nb 607 0: a\x{0a}b 608 a\n\rb 609 0: a\x{0a}\x{0d}b 610 a\n\r\x{85}b 611 0: a\x{0a}\x{0d}\x{85}b 612 a\r\n\r\nb 613 0: a\x{0d}\x{0a}\x{0d}\x{0a}b 614 a\r\n\r\n\r\nb 615 0: a\x{0d}\x{0a}\x{0d}\x{0a}\x{0d}\x{0a}b 616 a\n\r\n\rb 617 0: a\x{0a}\x{0d}\x{0a}\x{0d}b 618 a\n\n\r\nb 619 0: a\x{0a}\x{0a}\x{0d}\x{0a}b 620\= Expect no match 621 a\n\n\n\rb 622No match 623 a\r 624No match 625 626/\H\h\V\v/utf 627 X X\x0a 628 0: X X\x{0a} 629 X\x09X\x0b 630 0: X\x{09}X\x{0b} 631\= Expect no match 632 \x{a0} X\x0a 633No match 634 635/\H*\h+\V?\v{3,4}/utf 636 \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a 637 0: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}\x{0d} 638 \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a 639 0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}\x{0d} 640 \x09\x20\x{a0}\x0a\x0b\x0c 641 0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c} 642\= Expect no match 643 \x09\x20\x{a0}\x0a\x0b 644No match 645 646/\H\h\V\v/utf 647 \x{3001}\x{3000}\x{2030}\x{2028} 648 0: \x{3001}\x{3000}\x{2030}\x{2028} 649 X\x{180e}X\x{85} 650 0: X\x{180e}X\x{85} 651\= Expect no match 652 \x{2009} X\x0a 653No match 654 655/\H*\h+\V?\v{3,4}/utf 656 \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a 657 0: \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x{0c}\x{0d} 658 \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a 659 0: \x{09}\x{205f}\x{a0}\x{0a}\x{2029}\x{0c}\x{2028} 660 \x09\x20\x{202f}\x0a\x0b\x0c 661 0: \x{09} \x{202f}\x{0a}\x{0b}\x{0c} 662\= Expect no match 663 \x09\x{200a}\x{a0}\x{2028}\x0b 664No match 665 666/[\h]/B,utf 667------------------------------------------------------------------ 668 Bra 669 [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}] 670 Ket 671 End 672------------------------------------------------------------------ 673 >\x{1680} 674 0: \x{1680} 675 676/[\h]{3,}/B,utf 677------------------------------------------------------------------ 678 Bra 679 [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]{3,}+ 680 Ket 681 End 682------------------------------------------------------------------ 683 >\x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}< 684 0: \x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000} 685 686/[\v]/B,utf 687------------------------------------------------------------------ 688 Bra 689 [\x0a-\x0d\x85\x{2028}-\x{2029}] 690 Ket 691 End 692------------------------------------------------------------------ 693 694/[\H]/B,utf 695------------------------------------------------------------------ 696 Bra 697 [\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{10ffff}] 698 Ket 699 End 700------------------------------------------------------------------ 701 702/[\V]/B,utf 703------------------------------------------------------------------ 704 Bra 705 [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{10ffff}] 706 Ket 707 End 708------------------------------------------------------------------ 709 710/.*$/newline=any,utf 711 \x{1ec5} 712 0: \x{1ec5} 713 714/a\Rb/I,bsr=anycrlf,utf 715Capture group count = 0 716Options: utf 717\R matches CR, LF, or CRLF 718First code unit = 'a' 719Last code unit = 'b' 720Subject length lower bound = 3 721 a\rb 722 0: a\x{0d}b 723 a\nb 724 0: a\x{0a}b 725 a\r\nb 726 0: a\x{0d}\x{0a}b 727\= Expect no match 728 a\x{85}b 729No match 730 a\x0bb 731No match 732 733/a\Rb/I,bsr=unicode,utf 734Capture group count = 0 735Options: utf 736\R matches any Unicode newline 737First code unit = 'a' 738Last code unit = 'b' 739Subject length lower bound = 3 740 a\rb 741 0: a\x{0d}b 742 a\nb 743 0: a\x{0a}b 744 a\r\nb 745 0: a\x{0d}\x{0a}b 746 a\x{85}b 747 0: a\x{85}b 748 a\x0bb 749 0: a\x{0b}b 750 751/a\R?b/I,bsr=anycrlf,utf 752Capture group count = 0 753Options: utf 754\R matches CR, LF, or CRLF 755First code unit = 'a' 756Last code unit = 'b' 757Subject length lower bound = 2 758 a\rb 759 0: a\x{0d}b 760 a\nb 761 0: a\x{0a}b 762 a\r\nb 763 0: a\x{0d}\x{0a}b 764\= Expect no match 765 a\x{85}b 766No match 767 a\x0bb 768No match 769 770/a\R?b/I,bsr=unicode,utf 771Capture group count = 0 772Options: utf 773\R matches any Unicode newline 774First code unit = 'a' 775Last code unit = 'b' 776Subject length lower bound = 2 777 a\rb 778 0: a\x{0d}b 779 a\nb 780 0: a\x{0a}b 781 a\r\nb 782 0: a\x{0d}\x{0a}b 783 a\x{85}b 784 0: a\x{85}b 785 a\x0bb 786 0: a\x{0b}b 787 788/.*a.*=.b.*/utf,newline=any 789 QQQ\x{2029}ABCaXYZ=!bPQR 790 0: ABCaXYZ=!bPQR 791\= Expect no match 792 a\x{2029}b 793No match 794 \x61\xe2\x80\xa9\x62 795No match 796 797/[[:a\x{100}b:]]/utf 798Failed: error 130 at offset 3: unknown POSIX class name 799 800/a[^]b/utf,allow_empty_class,match_unset_backref 801 a\x{1234}b 802 0: a\x{1234}b 803 a\nb 804 0: a\x{0a}b 805\= Expect no match 806 ab 807No match 808 809/a[^]+b/utf,allow_empty_class,match_unset_backref 810 aXb 811 0: aXb 812 a\nX\nX\x{1234}b 813 0: a\x{0a}X\x{0a}X\x{1234}b 814\= Expect no match 815 ab 816No match 817 818/(\x{de})\1/ 819 \x{de}\x{de} 820 0: \xde\xde 821 1: \xde 822 823/X/newline=any,utf,firstline 824 A\x{1ec5}ABCXYZ 825 0: X 826 827/Xa{2,4}b/utf 828 X\=ps 829Partial match: X 830 Xa\=ps 831Partial match: Xa 832 Xaa\=ps 833Partial match: Xaa 834 Xaaa\=ps 835Partial match: Xaaa 836 Xaaaa\=ps 837Partial match: Xaaaa 838 839/Xa{2,4}?b/utf 840 X\=ps 841Partial match: X 842 Xa\=ps 843Partial match: Xa 844 Xaa\=ps 845Partial match: Xaa 846 Xaaa\=ps 847Partial match: Xaaa 848 Xaaaa\=ps 849Partial match: Xaaaa 850 851/Xa{2,4}+b/utf 852 X\=ps 853Partial match: X 854 Xa\=ps 855Partial match: Xa 856 Xaa\=ps 857Partial match: Xaa 858 Xaaa\=ps 859Partial match: Xaaa 860 Xaaaa\=ps 861Partial match: Xaaaa 862 863/X\x{123}{2,4}b/utf 864 X\=ps 865Partial match: X 866 X\x{123}\=ps 867Partial match: X\x{123} 868 X\x{123}\x{123}\=ps 869Partial match: X\x{123}\x{123} 870 X\x{123}\x{123}\x{123}\=ps 871Partial match: X\x{123}\x{123}\x{123} 872 X\x{123}\x{123}\x{123}\x{123}\=ps 873Partial match: X\x{123}\x{123}\x{123}\x{123} 874 875/X\x{123}{2,4}?b/utf 876 X\=ps 877Partial match: X 878 X\x{123}\=ps 879Partial match: X\x{123} 880 X\x{123}\x{123}\=ps 881Partial match: X\x{123}\x{123} 882 X\x{123}\x{123}\x{123}\=ps 883Partial match: X\x{123}\x{123}\x{123} 884 X\x{123}\x{123}\x{123}\x{123}\=ps 885Partial match: X\x{123}\x{123}\x{123}\x{123} 886 887/X\x{123}{2,4}+b/utf 888 X\=ps 889Partial match: X 890 X\x{123}\=ps 891Partial match: X\x{123} 892 X\x{123}\x{123}\=ps 893Partial match: X\x{123}\x{123} 894 X\x{123}\x{123}\x{123}\=ps 895Partial match: X\x{123}\x{123}\x{123} 896 X\x{123}\x{123}\x{123}\x{123}\=ps 897Partial match: X\x{123}\x{123}\x{123}\x{123} 898 899/X\x{123}{2,4}b/utf 900\= Expect no match 901 Xx\=ps 902No match 903 X\x{123}x\=ps 904No match 905 X\x{123}\x{123}x\=ps 906No match 907 X\x{123}\x{123}\x{123}x\=ps 908No match 909 X\x{123}\x{123}\x{123}\x{123}x\=ps 910No match 911 912/X\x{123}{2,4}?b/utf 913\= Expect no match 914 Xx\=ps 915No match 916 X\x{123}x\=ps 917No match 918 X\x{123}\x{123}x\=ps 919No match 920 X\x{123}\x{123}\x{123}x\=ps 921No match 922 X\x{123}\x{123}\x{123}\x{123}x\=ps 923No match 924 925/X\x{123}{2,4}+b/utf 926\= Expect no match 927 Xx\=ps 928No match 929 X\x{123}x\=ps 930No match 931 X\x{123}\x{123}x\=ps 932No match 933 X\x{123}\x{123}\x{123}x\=ps 934No match 935 X\x{123}\x{123}\x{123}\x{123}x\=ps 936No match 937 938/X\d{2,4}b/utf 939 X\=ps 940Partial match: X 941 X3\=ps 942Partial match: X3 943 X33\=ps 944Partial match: X33 945 X333\=ps 946Partial match: X333 947 X3333\=ps 948Partial match: X3333 949 950/X\d{2,4}?b/utf 951 X\=ps 952Partial match: X 953 X3\=ps 954Partial match: X3 955 X33\=ps 956Partial match: X33 957 X333\=ps 958Partial match: X333 959 X3333\=ps 960Partial match: X3333 961 962/X\d{2,4}+b/utf 963 X\=ps 964Partial match: X 965 X3\=ps 966Partial match: X3 967 X33\=ps 968Partial match: X33 969 X333\=ps 970Partial match: X333 971 X3333\=ps 972Partial match: X3333 973 974/X\D{2,4}b/utf 975 X\=ps 976Partial match: X 977 Xa\=ps 978Partial match: Xa 979 Xaa\=ps 980Partial match: Xaa 981 Xaaa\=ps 982Partial match: Xaaa 983 Xaaaa\=ps 984Partial match: Xaaaa 985 986/X\D{2,4}?b/utf 987 X\=ps 988Partial match: X 989 Xa\=ps 990Partial match: Xa 991 Xaa\=ps 992Partial match: Xaa 993 Xaaa\=ps 994Partial match: Xaaa 995 Xaaaa\=ps 996Partial match: Xaaaa 997 998/X\D{2,4}+b/utf 999 X\=ps 1000Partial match: X 1001 Xa\=ps 1002Partial match: Xa 1003 Xaa\=ps 1004Partial match: Xaa 1005 Xaaa\=ps 1006Partial match: Xaaa 1007 Xaaaa\=ps 1008Partial match: Xaaaa 1009 1010/X\D{2,4}b/utf 1011 X\=ps 1012Partial match: X 1013 X\x{123}\=ps 1014Partial match: X\x{123} 1015 X\x{123}\x{123}\=ps 1016Partial match: X\x{123}\x{123} 1017 X\x{123}\x{123}\x{123}\=ps 1018Partial match: X\x{123}\x{123}\x{123} 1019 X\x{123}\x{123}\x{123}\x{123}\=ps 1020Partial match: X\x{123}\x{123}\x{123}\x{123} 1021 1022/X\D{2,4}?b/utf 1023 X\=ps 1024Partial match: X 1025 X\x{123}\=ps 1026Partial match: X\x{123} 1027 X\x{123}\x{123}\=ps 1028Partial match: X\x{123}\x{123} 1029 X\x{123}\x{123}\x{123}\=ps 1030Partial match: X\x{123}\x{123}\x{123} 1031 X\x{123}\x{123}\x{123}\x{123}\=ps 1032Partial match: X\x{123}\x{123}\x{123}\x{123} 1033 1034/X\D{2,4}+b/utf 1035 X\=ps 1036Partial match: X 1037 X\x{123}\=ps 1038Partial match: X\x{123} 1039 X\x{123}\x{123}\=ps 1040Partial match: X\x{123}\x{123} 1041 X\x{123}\x{123}\x{123}\=ps 1042Partial match: X\x{123}\x{123}\x{123} 1043 X\x{123}\x{123}\x{123}\x{123}\=ps 1044Partial match: X\x{123}\x{123}\x{123}\x{123} 1045 1046/X[abc]{2,4}b/utf 1047 X\=ps 1048Partial match: X 1049 Xa\=ps 1050Partial match: Xa 1051 Xaa\=ps 1052Partial match: Xaa 1053 Xaaa\=ps 1054Partial match: Xaaa 1055 Xaaaa\=ps 1056Partial match: Xaaaa 1057 1058/X[abc]{2,4}?b/utf 1059 X\=ps 1060Partial match: X 1061 Xa\=ps 1062Partial match: Xa 1063 Xaa\=ps 1064Partial match: Xaa 1065 Xaaa\=ps 1066Partial match: Xaaa 1067 Xaaaa\=ps 1068Partial match: Xaaaa 1069 1070/X[abc]{2,4}+b/utf 1071 X\=ps 1072Partial match: X 1073 Xa\=ps 1074Partial match: Xa 1075 Xaa\=ps 1076Partial match: Xaa 1077 Xaaa\=ps 1078Partial match: Xaaa 1079 Xaaaa\=ps 1080Partial match: Xaaaa 1081 1082/X[abc\x{123}]{2,4}b/utf 1083 X\=ps 1084Partial match: X 1085 X\x{123}\=ps 1086Partial match: X\x{123} 1087 X\x{123}\x{123}\=ps 1088Partial match: X\x{123}\x{123} 1089 X\x{123}\x{123}\x{123}\=ps 1090Partial match: X\x{123}\x{123}\x{123} 1091 X\x{123}\x{123}\x{123}\x{123}\=ps 1092Partial match: X\x{123}\x{123}\x{123}\x{123} 1093 1094/X[abc\x{123}]{2,4}?b/utf 1095 X\=ps 1096Partial match: X 1097 X\x{123}\=ps 1098Partial match: X\x{123} 1099 X\x{123}\x{123}\=ps 1100Partial match: X\x{123}\x{123} 1101 X\x{123}\x{123}\x{123}\=ps 1102Partial match: X\x{123}\x{123}\x{123} 1103 X\x{123}\x{123}\x{123}\x{123}\=ps 1104Partial match: X\x{123}\x{123}\x{123}\x{123} 1105 1106/X[abc\x{123}]{2,4}+b/utf 1107 X\=ps 1108Partial match: X 1109 X\x{123}\=ps 1110Partial match: X\x{123} 1111 X\x{123}\x{123}\=ps 1112Partial match: X\x{123}\x{123} 1113 X\x{123}\x{123}\x{123}\=ps 1114Partial match: X\x{123}\x{123}\x{123} 1115 X\x{123}\x{123}\x{123}\x{123}\=ps 1116Partial match: X\x{123}\x{123}\x{123}\x{123} 1117 1118/X[^a]{2,4}b/utf 1119 X\=ps 1120Partial match: X 1121 Xz\=ps 1122Partial match: Xz 1123 Xzz\=ps 1124Partial match: Xzz 1125 Xzzz\=ps 1126Partial match: Xzzz 1127 Xzzzz\=ps 1128Partial match: Xzzzz 1129 1130/X[^a]{2,4}?b/utf 1131 X\=ps 1132Partial match: X 1133 Xz\=ps 1134Partial match: Xz 1135 Xzz\=ps 1136Partial match: Xzz 1137 Xzzz\=ps 1138Partial match: Xzzz 1139 Xzzzz\=ps 1140Partial match: Xzzzz 1141 1142/X[^a]{2,4}+b/utf 1143 X\=ps 1144Partial match: X 1145 Xz\=ps 1146Partial match: Xz 1147 Xzz\=ps 1148Partial match: Xzz 1149 Xzzz\=ps 1150Partial match: Xzzz 1151 Xzzzz\=ps 1152Partial match: Xzzzz 1153 1154/X[^a]{2,4}b/utf 1155 X\=ps 1156Partial match: X 1157 X\x{123}\=ps 1158Partial match: X\x{123} 1159 X\x{123}\x{123}\=ps 1160Partial match: X\x{123}\x{123} 1161 X\x{123}\x{123}\x{123}\=ps 1162Partial match: X\x{123}\x{123}\x{123} 1163 X\x{123}\x{123}\x{123}\x{123}\=ps 1164Partial match: X\x{123}\x{123}\x{123}\x{123} 1165 1166/X[^a]{2,4}?b/utf 1167 X\=ps 1168Partial match: X 1169 X\x{123}\=ps 1170Partial match: X\x{123} 1171 X\x{123}\x{123}\=ps 1172Partial match: X\x{123}\x{123} 1173 X\x{123}\x{123}\x{123}\=ps 1174Partial match: X\x{123}\x{123}\x{123} 1175 X\x{123}\x{123}\x{123}\x{123}\=ps 1176Partial match: X\x{123}\x{123}\x{123}\x{123} 1177 1178/X[^a]{2,4}+b/utf 1179 X\=ps 1180Partial match: X 1181 X\x{123}\=ps 1182Partial match: X\x{123} 1183 X\x{123}\x{123}\=ps 1184Partial match: X\x{123}\x{123} 1185 X\x{123}\x{123}\x{123}\=ps 1186Partial match: X\x{123}\x{123}\x{123} 1187 X\x{123}\x{123}\x{123}\x{123}\=ps 1188Partial match: X\x{123}\x{123}\x{123}\x{123} 1189 1190/(Y)X\1{2,4}b/utf 1191 YX\=ps 1192Partial match: YX 1193 YXY\=ps 1194Partial match: YXY 1195 YXYY\=ps 1196Partial match: YXYY 1197 YXYYY\=ps 1198Partial match: YXYYY 1199 YXYYYY\=ps 1200Partial match: YXYYYY 1201 1202/(Y)X\1{2,4}?b/utf 1203 YX\=ps 1204Partial match: YX 1205 YXY\=ps 1206Partial match: YXY 1207 YXYY\=ps 1208Partial match: YXYY 1209 YXYYY\=ps 1210Partial match: YXYYY 1211 YXYYYY\=ps 1212Partial match: YXYYYY 1213 1214/(Y)X\1{2,4}+b/utf 1215 YX\=ps 1216Partial match: YX 1217 YXY\=ps 1218Partial match: YXY 1219 YXYY\=ps 1220Partial match: YXYY 1221 YXYYY\=ps 1222Partial match: YXYYY 1223 YXYYYY\=ps 1224Partial match: YXYYYY 1225 1226/(\x{123})X\1{2,4}b/utf 1227 \x{123}X\=ps 1228Partial match: \x{123}X 1229 \x{123}X\x{123}\=ps 1230Partial match: \x{123}X\x{123} 1231 \x{123}X\x{123}\x{123}\=ps 1232Partial match: \x{123}X\x{123}\x{123} 1233 \x{123}X\x{123}\x{123}\x{123}\=ps 1234Partial match: \x{123}X\x{123}\x{123}\x{123} 1235 \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps 1236Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123} 1237 1238/(\x{123})X\1{2,4}?b/utf 1239 \x{123}X\=ps 1240Partial match: \x{123}X 1241 \x{123}X\x{123}\=ps 1242Partial match: \x{123}X\x{123} 1243 \x{123}X\x{123}\x{123}\=ps 1244Partial match: \x{123}X\x{123}\x{123} 1245 \x{123}X\x{123}\x{123}\x{123}\=ps 1246Partial match: \x{123}X\x{123}\x{123}\x{123} 1247 \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps 1248Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123} 1249 1250/(\x{123})X\1{2,4}+b/utf 1251 \x{123}X\=ps 1252Partial match: \x{123}X 1253 \x{123}X\x{123}\=ps 1254Partial match: \x{123}X\x{123} 1255 \x{123}X\x{123}\x{123}\=ps 1256Partial match: \x{123}X\x{123}\x{123} 1257 \x{123}X\x{123}\x{123}\x{123}\=ps 1258Partial match: \x{123}X\x{123}\x{123}\x{123} 1259 \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps 1260Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123} 1261 1262/\bthe cat\b/utf 1263 the cat\=ps 1264 0: the cat 1265 the cat\=ph 1266Partial match: the cat 1267 1268/abcd*/utf 1269 xxxxabcd\=ps 1270 0: abcd 1271 xxxxabcd\=ph 1272Partial match: abcd 1273 1274/abcd*/i,utf 1275 xxxxabcd\=ps 1276 0: abcd 1277 xxxxabcd\=ph 1278Partial match: abcd 1279 XXXXABCD\=ps 1280 0: ABCD 1281 XXXXABCD\=ph 1282Partial match: ABCD 1283 1284/abc\d*/utf 1285 xxxxabc1\=ps 1286 0: abc1 1287 xxxxabc1\=ph 1288Partial match: abc1 1289 1290/(a)bc\1*/utf 1291 xxxxabca\=ps 1292 0: abca 1293 1: a 1294 xxxxabca\=ph 1295Partial match: abca 1296 1297/abc[de]*/utf 1298 xxxxabcde\=ps 1299 0: abcde 1300 xxxxabcde\=ph 1301Partial match: abcde 1302 1303/X\W{3}X/utf 1304 X\=ps 1305Partial match: X 1306 1307/\sxxx\s/utf,tables=2 1308 AB\x{85}xxx\x{a0}XYZ 1309 0: \x{85}xxx\x{a0} 1310 AB\x{a0}xxx\x{85}XYZ 1311 0: \x{a0}xxx\x{85} 1312 1313/\S \S/utf,tables=2 1314 \x{a2} \x{84} 1315 0: \x{a2} \x{84} 1316 1317'A#хц'Bx,newline=any,utf 1318------------------------------------------------------------------ 1319 Bra 1320 A 1321 Ket 1322 End 1323------------------------------------------------------------------ 1324 1325'A#хц 1326 PQ'Bx,newline=any,utf 1327------------------------------------------------------------------ 1328 Bra 1329 APQ 1330 Ket 1331 End 1332------------------------------------------------------------------ 1333 1334/a+#хaa 1335 z#XX?/Bx,newline=any,utf 1336------------------------------------------------------------------ 1337 Bra 1338 a++ 1339 z 1340 Ket 1341 End 1342------------------------------------------------------------------ 1343 1344/a+#хaa 1345 z#х?/Bx,newline=any,utf 1346------------------------------------------------------------------ 1347 Bra 1348 a++ 1349 z 1350 Ket 1351 End 1352------------------------------------------------------------------ 1353 1354/\g{A}xxx#bXX(?'A'123) 1355(?'A'456)/Bx,newline=any,utf 1356------------------------------------------------------------------ 1357 Bra 1358 \1 1359 xxx 1360 CBra 1 1361 456 1362 Ket 1363 Ket 1364 End 1365------------------------------------------------------------------ 1366 1367/\g{A}xxx#bх(?'A'123) 1368(?'A'456)/Bx,newline=any,utf 1369------------------------------------------------------------------ 1370 Bra 1371 \1 1372 xxx 1373 CBra 1 1374 456 1375 Ket 1376 Ket 1377 End 1378------------------------------------------------------------------ 1379 1380/^\cģ/utf 1381Failed: error 168 at offset 3: \c must be followed by a printable ASCII character 1382 1383/(\R*)(.)/s,utf 1384 \r\n 1385 0: \x{0d} 1386 1: 1387 2: \x{0d} 1388 \r\r\n\n\r 1389 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d} 1390 1: \x{0d}\x{0d}\x{0a}\x{0a} 1391 2: \x{0d} 1392 \r\r\n\n\r\n 1393 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d} 1394 1: \x{0d}\x{0d}\x{0a}\x{0a} 1395 2: \x{0d} 1396 1397/(\R)*(.)/s,utf 1398 \r\n 1399 0: \x{0d} 1400 1: <unset> 1401 2: \x{0d} 1402 \r\r\n\n\r 1403 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d} 1404 1: \x{0a} 1405 2: \x{0d} 1406 \r\r\n\n\r\n 1407 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d} 1408 1: \x{0a} 1409 2: \x{0d} 1410 1411/[^\x{1234}]+/Ii,utf 1412Capture group count = 0 1413Options: caseless utf 1414Subject length lower bound = 1 1415 1416/[^\x{1234}]+?/Ii,utf 1417Capture group count = 0 1418Options: caseless utf 1419Subject length lower bound = 1 1420 1421/[^\x{1234}]++/Ii,utf 1422Capture group count = 0 1423Options: caseless utf 1424Subject length lower bound = 1 1425 1426/[^\x{1234}]{2}/Ii,utf 1427Capture group count = 0 1428Options: caseless utf 1429Subject length lower bound = 2 1430 1431/f.*/ 1432 for\=ph 1433Partial match: for 1434 1435/f.*/s 1436 for\=ph 1437Partial match: for 1438 1439/f.*/utf 1440 for\=ph 1441Partial match: for 1442 1443/f.*/s,utf 1444 for\=ph 1445Partial match: for 1446 1447/\x{d7ff}\x{e000}/utf 1448 1449/\x{d800}/utf 1450Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) 1451 1452/\x{dfff}/utf 1453Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) 1454 1455/\h+/utf 1456 \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000} 1457 0: \x{1680}\x{2000}\x{202f}\x{3000} 1458 \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000} 1459 0: \x{200a}\x{a0}\x{2000} 1460 1461/[\h\x{e000}]+/B,utf 1462------------------------------------------------------------------ 1463 Bra 1464 [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}\x{e000}]++ 1465 Ket 1466 End 1467------------------------------------------------------------------ 1468 \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000} 1469 0: \x{1680}\x{2000}\x{202f}\x{3000} 1470 \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000} 1471 0: \x{200a}\x{a0}\x{2000} 1472 1473/\H+/utf 1474 \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f} 1475 0: \x{167f}\x{1681}\x{180d}\x{180f} 1476 \x{2000}\x{200a}\x{1fff}\x{200b} 1477 0: \x{1fff}\x{200b} 1478 \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060} 1479 0: \x{202e}\x{2030}\x{205e}\x{2060} 1480 \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001} 1481 0: \x{9f}\x{a1}\x{2fff}\x{3001} 1482 1483/[\H\x{d7ff}]+/B,utf 1484------------------------------------------------------------------ 1485 Bra 1486 [\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{10ffff}\x{d7ff}]++ 1487 Ket 1488 End 1489------------------------------------------------------------------ 1490 \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f} 1491 0: \x{167f}\x{1681}\x{180d}\x{180f} 1492 \x{2000}\x{200a}\x{1fff}\x{200b} 1493 0: \x{1fff}\x{200b} 1494 \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060} 1495 0: \x{202e}\x{2030}\x{205e}\x{2060} 1496 \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001} 1497 0: \x{9f}\x{a1}\x{2fff}\x{3001} 1498 1499/\v+/utf 1500 \x{2027}\x{2030}\x{2028}\x{2029} 1501 0: \x{2028}\x{2029} 1502 \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d 1503 0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d} 1504 1505/[\v\x{e000}]+/B,utf 1506------------------------------------------------------------------ 1507 Bra 1508 [\x0a-\x0d\x85\x{2028}-\x{2029}\x{e000}]++ 1509 Ket 1510 End 1511------------------------------------------------------------------ 1512 \x{2027}\x{2030}\x{2028}\x{2029} 1513 0: \x{2028}\x{2029} 1514 \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d 1515 0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d} 1516 1517/\V+/utf 1518 \x{2028}\x{2029}\x{2027}\x{2030} 1519 0: \x{2027}\x{2030} 1520 \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86} 1521 0: \x{09}\x{0e}\x{84}\x{86} 1522 1523/[\V\x{d7ff}]+/B,utf 1524------------------------------------------------------------------ 1525 Bra 1526 [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{10ffff}\x{d7ff}]++ 1527 Ket 1528 End 1529------------------------------------------------------------------ 1530 \x{2028}\x{2029}\x{2027}\x{2030} 1531 0: \x{2027}\x{2030} 1532 \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86} 1533 0: \x{09}\x{0e}\x{84}\x{86} 1534 1535/\R+/bsr=unicode,utf 1536 \x{2027}\x{2030}\x{2028}\x{2029} 1537 0: \x{2028}\x{2029} 1538 \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d 1539 0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d} 1540 1541/(..)\1/utf 1542 ab\=ps 1543Partial match: ab 1544 aba\=ps 1545Partial match: aba 1546 abab\=ps 1547 0: abab 1548 1: ab 1549 1550/(..)\1/i,utf 1551 ab\=ps 1552Partial match: ab 1553 abA\=ps 1554Partial match: abA 1555 aBAb\=ps 1556 0: aBAb 1557 1: aB 1558 1559/(..)\1{2,}/utf 1560 ab\=ps 1561Partial match: ab 1562 aba\=ps 1563Partial match: aba 1564 abab\=ps 1565Partial match: abab 1566 ababa\=ps 1567Partial match: ababa 1568 ababab\=ps 1569 0: ababab 1570 1: ab 1571 ababab\=ph 1572Partial match: ababab 1573 abababa\=ps 1574 0: ababab 1575 1: ab 1576 abababa\=ph 1577Partial match: abababa 1578 1579/(..)\1{2,}/i,utf 1580 ab\=ps 1581Partial match: ab 1582 aBa\=ps 1583Partial match: aBa 1584 aBAb\=ps 1585Partial match: aBAb 1586 AbaBA\=ps 1587Partial match: AbaBA 1588 abABAb\=ps 1589 0: abABAb 1590 1: ab 1591 aBAbaB\=ph 1592Partial match: aBAbaB 1593 abABabA\=ps 1594 0: abABab 1595 1: ab 1596 abaBABa\=ph 1597Partial match: abaBABa 1598 1599/(..)\1{2,}?x/i,utf 1600 ab\=ps 1601Partial match: ab 1602 abA\=ps 1603Partial match: abA 1604 aBAb\=ps 1605Partial match: aBAb 1606 abaBA\=ps 1607Partial match: abaBA 1608 abAbaB\=ps 1609Partial match: abAbaB 1610 abaBabA\=ps 1611Partial match: abaBabA 1612 abAbABaBx\=ps 1613 0: abAbABaBx 1614 1: ab 1615 1616/./utf,newline=crlf 1617 \r\=ps 1618 0: \x{0d} 1619 \r\=ph 1620Partial match: \x{0d} 1621 1622/.{2,3}/utf,newline=crlf 1623 \r\=ps 1624Partial match: \x{0d} 1625 \r\=ph 1626Partial match: \x{0d} 1627 \r\r\=ps 1628 0: \x{0d}\x{0d} 1629 \r\r\=ph 1630Partial match: \x{0d}\x{0d} 1631 \r\r\r\=ps 1632 0: \x{0d}\x{0d}\x{0d} 1633 \r\r\r\=ph 1634Partial match: \x{0d}\x{0d}\x{0d} 1635 1636/.{2,3}?/utf,newline=crlf 1637 \r\=ps 1638Partial match: \x{0d} 1639 \r\=ph 1640Partial match: \x{0d} 1641 \r\r\=ps 1642 0: \x{0d}\x{0d} 1643 \r\r\=ph 1644Partial match: \x{0d}\x{0d} 1645 \r\r\r\=ps 1646 0: \x{0d}\x{0d} 1647 \r\r\r\=ph 1648 0: \x{0d}\x{0d} 1649 1650/[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/B,utf 1651------------------------------------------------------------------ 1652 Bra 1653 [^\x{100}] 1654 [^\x{1234}] 1655 [^\x{ffff}] 1656 [^\x{10000}] 1657 [^\x{10ffff}] 1658 Ket 1659 End 1660------------------------------------------------------------------ 1661 1662/[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/Bi,utf 1663------------------------------------------------------------------ 1664 Bra 1665 /i [^\x{100}] 1666 /i [^\x{1234}] 1667 /i [^\x{ffff}] 1668 /i [^\x{10000}] 1669 /i [^\x{10ffff}] 1670 Ket 1671 End 1672------------------------------------------------------------------ 1673 1674/[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/B,utf 1675------------------------------------------------------------------ 1676 Bra 1677 [^\x{100}]* 1678 [^\x{10000}]+ 1679 [^\x{10ffff}]?? 1680 [^\x{8000}]{4} 1681 [^\x{8000}]* 1682 [^\x{7fff}]{2} 1683 [^\x{7fff}]{0,7}? 1684 [^\x{fffff}]{5} 1685 [^\x{fffff}]?+ 1686 Ket 1687 End 1688------------------------------------------------------------------ 1689 1690/[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/Bi,utf 1691------------------------------------------------------------------ 1692 Bra 1693 /i [^\x{100}]* 1694 /i [^\x{10000}]+ 1695 /i [^\x{10ffff}]?? 1696 /i [^\x{8000}]{4} 1697 /i [^\x{8000}]* 1698 /i [^\x{7fff}]{2} 1699 /i [^\x{7fff}]{0,7}? 1700 /i [^\x{fffff}]{5} 1701 /i [^\x{fffff}]?+ 1702 Ket 1703 End 1704------------------------------------------------------------------ 1705 1706/(?<=\x{1234}\x{1234})\bxy/I,utf 1707Capture group count = 0 1708Max lookbehind = 2 1709Options: utf 1710First code unit = 'x' 1711Last code unit = 'y' 1712Subject length lower bound = 2 1713 1714/(?<!^)ETA/utf 1715\= Expect no match 1716 ETA 1717No match 1718 1719/\u0100/B,utf,alt_bsux,allow_empty_class,match_unset_backref 1720------------------------------------------------------------------ 1721 Bra 1722 \x{100} 1723 Ket 1724 End 1725------------------------------------------------------------------ 1726 1727/[\u0100-\u0200]/B,utf,alt_bsux,allow_empty_class,match_unset_backref 1728------------------------------------------------------------------ 1729 Bra 1730 [\x{100}-\x{200}] 1731 Ket 1732 End 1733------------------------------------------------------------------ 1734 1735/\ud800/utf,alt_bsux,allow_empty_class,match_unset_backref 1736Failed: error 173 at offset 6: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) 1737 1738/^\u{0000000000010ffff}/utf,extra_alt_bsux 1739 \x{10ffff} 1740 0: \x{10ffff} 1741 1742/\u/utf,alt_bsux 1743 \\u 1744 0: u 1745 1746/^a+[a\x{200}]/B,utf 1747------------------------------------------------------------------ 1748 Bra 1749 ^ 1750 a+ 1751 [a\x{200}] 1752 Ket 1753 End 1754------------------------------------------------------------------ 1755 aa 1756 0: aa 1757 1758/[b-d\x{200}-\x{250}]*[ae-h]?#[\x{200}-\x{250}]{0,8}[\x00-\xff]*#[\x{200}-\x{250}]+[a-z]/B,utf 1759------------------------------------------------------------------ 1760 Bra 1761 [b-d\x{200}-\x{250}]*+ 1762 [ae-h]?+ 1763 # 1764 [\x{200}-\x{250}]{0,8}+ 1765 [\x00-\xff]* 1766 # 1767 [\x{200}-\x{250}]++ 1768 [a-z] 1769 Ket 1770 End 1771------------------------------------------------------------------ 1772 1773/[\p{L}]/IB 1774------------------------------------------------------------------ 1775 Bra 1776 [\p{L}] 1777 Ket 1778 End 1779------------------------------------------------------------------ 1780Capture group count = 0 1781Subject length lower bound = 1 1782 1783/[\p{^L}]/IB 1784------------------------------------------------------------------ 1785 Bra 1786 [\P{L}] 1787 Ket 1788 End 1789------------------------------------------------------------------ 1790Capture group count = 0 1791Subject length lower bound = 1 1792 1793/[\P{L}]/IB 1794------------------------------------------------------------------ 1795 Bra 1796 [\P{L}] 1797 Ket 1798 End 1799------------------------------------------------------------------ 1800Capture group count = 0 1801Subject length lower bound = 1 1802 1803/[\P{^L}]/IB 1804------------------------------------------------------------------ 1805 Bra 1806 [\p{L}] 1807 Ket 1808 End 1809------------------------------------------------------------------ 1810Capture group count = 0 1811Subject length lower bound = 1 1812 1813/[abc\p{L}\x{0660}]/IB,utf 1814------------------------------------------------------------------ 1815 Bra 1816 [a-c\p{L}\x{660}] 1817 Ket 1818 End 1819------------------------------------------------------------------ 1820Capture group count = 0 1821Options: utf 1822Subject length lower bound = 1 1823 1824/[\p{Nd}]/IB,utf 1825------------------------------------------------------------------ 1826 Bra 1827 [\p{Nd}] 1828 Ket 1829 End 1830------------------------------------------------------------------ 1831Capture group count = 0 1832Options: utf 1833Subject length lower bound = 1 1834 1234 1835 0: 1 1836 1837/[\p{Nd}+-]+/IB,utf 1838------------------------------------------------------------------ 1839 Bra 1840 [+\-\p{Nd}]++ 1841 Ket 1842 End 1843------------------------------------------------------------------ 1844Capture group count = 0 1845Options: utf 1846Subject length lower bound = 1 1847 1234 1848 0: 1234 1849 12-34 1850 0: 12-34 1851 12+\x{661}-34 1852 0: 12+\x{661}-34 1853\= Expect no match 1854 abcd 1855No match 1856 1857/(?:[\PPa*]*){8,}/ 1858 1859/[\P{Any}]/B 1860------------------------------------------------------------------ 1861 Bra 1862 [\P{Any}] 1863 Ket 1864 End 1865------------------------------------------------------------------ 1866 1867/[\P{Any}\E]/B 1868------------------------------------------------------------------ 1869 Bra 1870 [\P{Any}] 1871 Ket 1872 End 1873------------------------------------------------------------------ 1874 1875/(\P{Yi}+\277)/ 1876 1877/(\P{Yi}+\277)?/ 1878 1879/(?<=\P{Yi}{3}A)X/ 1880 1881/\p{Yi}+(\P{Yi}+)(?1)/ 1882 1883/(\P{Yi}{2}\277)?/ 1884 1885/[\P{Yi}A]/ 1886 1887/[\P{Yi}\P{Yi}\P{Yi}A]/ 1888 1889/[^\P{Yi}A]/ 1890 1891/[^\P{Yi}\P{Yi}\P{Yi}A]/ 1892 1893/(\P{Yi}*\277)*/ 1894 1895/(\P{Yi}*?\277)*/ 1896 1897/(\p{Yi}*+\277)*/ 1898 1899/(\P{Yi}?\277)*/ 1900 1901/(\P{Yi}??\277)*/ 1902 1903/(\p{Yi}?+\277)*/ 1904 1905/(\P{Yi}{0,3}\277)*/ 1906 1907/(\P{Yi}{0,3}?\277)*/ 1908 1909/(\p{Yi}{0,3}+\277)*/ 1910 1911/\p{Zl}{2,3}+/B,utf 1912------------------------------------------------------------------ 1913 Bra 1914 prop Zl {2} 1915 prop Zl ?+ 1916 Ket 1917 End 1918------------------------------------------------------------------ 1919 1920 0: \x{2028}\x{2028} 1921 \x{2028}\x{2028}\x{2028} 1922 0: \x{2028}\x{2028}\x{2028} 1923 1924/\p{Zl}/B,utf 1925------------------------------------------------------------------ 1926 Bra 1927 prop Zl 1928 Ket 1929 End 1930------------------------------------------------------------------ 1931 1932/\p{Lu}{3}+/B,utf 1933------------------------------------------------------------------ 1934 Bra 1935 prop Lu {3} 1936 Ket 1937 End 1938------------------------------------------------------------------ 1939 1940/\pL{2}+/B,utf 1941------------------------------------------------------------------ 1942 Bra 1943 prop L {2} 1944 Ket 1945 End 1946------------------------------------------------------------------ 1947 1948/\p{Cc}{2}+/B,utf 1949------------------------------------------------------------------ 1950 Bra 1951 prop Cc {2} 1952 Ket 1953 End 1954------------------------------------------------------------------ 1955 1956/^\p{Cf}/utf 1957 \x{180e} 1958 0: \x{180e} 1959 \x{061c} 1960 0: \x{61c} 1961 \x{2066} 1962 0: \x{2066} 1963 \x{2067} 1964 0: \x{2067} 1965 \x{2068} 1966 0: \x{2068} 1967 \x{2069} 1968 0: \x{2069} 1969 1970/^\p{Cs}/utf 1971 \x{dfff}\=no_utf_check 1972 0: \x{dfff} 1973\= Expect no match 1974 \x{09f} 1975No match 1976 1977/^\p{Mn}/utf 1978 \x{1a1b} 1979 0: \x{1a1b} 1980 1981/^\p{Pe}/utf 1982 \x{2309} 1983 0: \x{2309} 1984 \x{230b} 1985 0: \x{230b} 1986 1987/^\p{Ps}/utf 1988 \x{2308} 1989 0: \x{2308} 1990 \x{230a} 1991 0: \x{230a} 1992 1993/^\p{Sc}+/utf 1994 $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6} 1995 0: $\x{a2}\x{a3}\x{a4}\x{a5} 1996 \x{9f2} 1997 0: \x{9f2} 1998\= Expect no match 1999 X 2000No match 2001 \x{2c2} 2002No match 2003 2004/^\p{Zs}/utf 2005 \ \ 2006 0: 2007 \x{a0} 2008 0: \x{a0} 2009 \x{1680} 2010 0: \x{1680} 2011 \x{2000} 2012 0: \x{2000} 2013 \x{2001} 2014 0: \x{2001} 2015\= Expect no match 2016 \x{2028} 2017No match 2018 \x{200d} 2019No match 2020 2021# These are here because Perl has problems with the negative versions of the 2022# properties and has changed how it behaves for caseless matching. 2023 2024/\p{^Lu}/i,utf 2025 1234 2026 0: 1 2027\= Expect no match 2028 ABC 2029No match 2030 2031/\P{Lu}/i,utf 2032 1234 2033 0: 1 2034\= Expect no match 2035 ABC 2036No match 2037 2038/\p{Ll}/i,utf 2039 a 2040 0: a 2041 Az 2042 0: z 2043\= Expect no match 2044 ABC 2045No match 2046 2047/\p{Lu}/i,utf 2048 A 2049 0: A 2050 a\x{10a0}B 2051 0: \x{10a0} 2052\= Expect no match 2053 a 2054No match 2055 \x{1d00} 2056No match 2057 2058/\p{Lu}/i,utf 2059 A 2060 0: A 2061 aZ 2062 0: Z 2063\= Expect no match 2064 abc 2065No match 2066 2067/[\x{c0}\x{391}]/i,utf 2068 \x{c0} 2069 0: \x{c0} 2070 \x{e0} 2071 0: \x{e0} 2072 2073# The next two are special cases where the lengths of the different cases of 2074# the same character differ. The first went wrong with heap frame storage; the 2075# second was broken in all cases. 2076 2077/^\x{023a}+?(\x{0130}+)/i,utf 2078 \x{023a}\x{2c65}\x{0130} 2079 0: \x{23a}\x{2c65}\x{130} 2080 1: \x{130} 2081 2082/^\x{023a}+([^X])/i,utf 2083 \x{023a}\x{2c65}X 2084 0: \x{23a}\x{2c65} 2085 1: \x{2c65} 2086 2087/\x{c0}+\x{116}+/i,utf 2088 \x{c0}\x{e0}\x{116}\x{117} 2089 0: \x{c0}\x{e0}\x{116}\x{117} 2090 2091/[\x{c0}\x{116}]+/i,utf 2092 \x{c0}\x{e0}\x{116}\x{117} 2093 0: \x{c0}\x{e0}\x{116}\x{117} 2094 2095/(\x{de})\1/i,utf 2096 \x{de}\x{de} 2097 0: \x{de}\x{de} 2098 1: \x{de} 2099 \x{de}\x{fe} 2100 0: \x{de}\x{fe} 2101 1: \x{de} 2102 \x{fe}\x{fe} 2103 0: \x{fe}\x{fe} 2104 1: \x{fe} 2105 \x{fe}\x{de} 2106 0: \x{fe}\x{de} 2107 1: \x{fe} 2108 2109/^\x{c0}$/i,utf 2110 \x{c0} 2111 0: \x{c0} 2112 \x{e0} 2113 0: \x{e0} 2114 2115/^\x{e0}$/i,utf 2116 \x{c0} 2117 0: \x{c0} 2118 \x{e0} 2119 0: \x{e0} 2120 2121# The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE 2122# will match it only with UCP support, because without that it has no notion 2123# of case for anything other than the ASCII letters. 2124 2125/((?i)[\x{c0}])/utf 2126 \x{c0} 2127 0: \x{c0} 2128 1: \x{c0} 2129 \x{e0} 2130 0: \x{e0} 2131 1: \x{e0} 2132 2133/(?i:[\x{c0}])/utf 2134 \x{c0} 2135 0: \x{c0} 2136 \x{e0} 2137 0: \x{e0} 2138 2139# These are PCRE's extra properties to help with Unicodizing \d etc. 2140 2141/^\p{Xan}/utf 2142 ABCD 2143 0: A 2144 1234 2145 0: 1 2146 \x{6ca} 2147 0: \x{6ca} 2148 \x{a6c} 2149 0: \x{a6c} 2150 \x{10a7} 2151 0: \x{10a7} 2152\= Expect no match 2153 _ABC 2154No match 2155 2156/^\p{Xan}+/utf 2157 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2158 0: ABCD1234\x{6ca}\x{a6c}\x{10a7} 2159\= Expect no match 2160 _ABC 2161No match 2162 2163/^\p{Xan}+?/utf 2164 \x{6ca}\x{a6c}\x{10a7}_ 2165 0: \x{6ca} 2166 2167/^\p{Xan}*/utf 2168 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2169 0: ABCD1234\x{6ca}\x{a6c}\x{10a7} 2170 2171/^\p{Xan}{2,9}/utf 2172 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2173 0: ABCD1234\x{6ca} 2174 2175/^\p{Xan}{2,9}?/utf 2176 \x{6ca}\x{a6c}\x{10a7}_ 2177 0: \x{6ca}\x{a6c} 2178 2179/^[\p{Xan}]/utf 2180 ABCD1234_ 2181 0: A 2182 1234abcd_ 2183 0: 1 2184 \x{6ca} 2185 0: \x{6ca} 2186 \x{a6c} 2187 0: \x{a6c} 2188 \x{10a7} 2189 0: \x{10a7} 2190\= Expect no match 2191 _ABC 2192No match 2193 2194/^[\p{Xan}]+/utf 2195 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2196 0: ABCD1234\x{6ca}\x{a6c}\x{10a7} 2197\= Expect no match 2198 _ABC 2199No match 2200 2201/^>\p{Xsp}/utf 2202 >\x{1680}\x{2028}\x{0b} 2203 0: >\x{1680} 2204 >\x{a0} 2205 0: >\x{a0} 2206\= Expect no match 2207 \x{0b} 2208No match 2209 2210/^>\p{Xsp}+/utf 2211 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2212 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2213 2214/^>\p{Xsp}+?/utf 2215 >\x{1680}\x{2028}\x{0b} 2216 0: >\x{1680} 2217 2218/^>\p{Xsp}*/utf 2219 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2220 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2221 2222/^>\p{Xsp}{2,9}/utf 2223 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2224 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2225 2226/^>\p{Xsp}{2,9}?/utf 2227 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2228 0: > \x{09} 2229 2230/^>[\p{Xsp}]/utf 2231 >\x{2028}\x{0b} 2232 0: >\x{2028} 2233 2234/^>[\p{Xsp}]+/utf 2235 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2236 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2237 2238/^>\p{Xps}/utf 2239 >\x{1680}\x{2028}\x{0b} 2240 0: >\x{1680} 2241 >\x{a0} 2242 0: >\x{a0} 2243\= Expect no match 2244 \x{0b} 2245No match 2246 2247/^>\p{Xps}+/utf 2248 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2249 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2250 2251/^>\p{Xps}+?/utf 2252 >\x{1680}\x{2028}\x{0b} 2253 0: >\x{1680} 2254 2255/^>\p{Xps}*/utf 2256 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2257 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2258 2259/^>\p{Xps}{2,9}/utf 2260 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2261 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2262 2263/^>\p{Xps}{2,9}?/utf 2264 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2265 0: > \x{09} 2266 2267/^>[\p{Xps}]/utf 2268 >\x{2028}\x{0b} 2269 0: >\x{2028} 2270 2271/^>[\p{Xps}]+/utf 2272 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2273 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2274 2275/^\p{Xwd}/utf 2276 ABCD 2277 0: A 2278 1234 2279 0: 1 2280 \x{6ca} 2281 0: \x{6ca} 2282 \x{a6c} 2283 0: \x{a6c} 2284 \x{10a7} 2285 0: \x{10a7} 2286 _ABC 2287 0: _ 2288\= Expect no match 2289 [] 2290No match 2291 2292/^\p{Xwd}+/utf 2293 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2294 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2295 2296/^\p{Xwd}+?/utf 2297 \x{6ca}\x{a6c}\x{10a7}_ 2298 0: \x{6ca} 2299 2300/^\p{Xwd}*/utf 2301 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2302 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2303 2304/^\p{Xwd}{2,9}/utf 2305 A_B12\x{6ca}\x{a6c}\x{10a7} 2306 0: A_B12\x{6ca}\x{a6c}\x{10a7} 2307 2308/^\p{Xwd}{2,9}?/utf 2309 \x{6ca}\x{a6c}\x{10a7}_ 2310 0: \x{6ca}\x{a6c} 2311 2312/^[\p{Xwd}]/utf 2313 ABCD1234_ 2314 0: A 2315 1234abcd_ 2316 0: 1 2317 \x{6ca} 2318 0: \x{6ca} 2319 \x{a6c} 2320 0: \x{a6c} 2321 \x{10a7} 2322 0: \x{10a7} 2323 _ABC 2324 0: _ 2325\= Expect no match 2326 [] 2327No match 2328 2329/^[\p{Xwd}]+/utf 2330 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2331 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2332 2333# A check not in UTF-8 mode 2334 2335/^[\p{Xwd}]+/ 2336 ABCD1234_ 2337 0: ABCD1234_ 2338 2339# Some negative checks 2340 2341/^[\P{Xwd}]+/utf 2342 !.+\x{019}\x{35a}AB 2343 0: !.+\x{19}\x{35a} 2344 2345/^[\p{^Xwd}]+/utf 2346 !.+\x{019}\x{35a}AB 2347 0: !.+\x{19}\x{35a} 2348 2349/[\D]/B,utf,ucp 2350------------------------------------------------------------------ 2351 Bra 2352 [\P{Nd}] 2353 Ket 2354 End 2355------------------------------------------------------------------ 2356 1\x{3c8}2 2357 0: \x{3c8} 2358 2359/[\d]/B,utf,ucp 2360------------------------------------------------------------------ 2361 Bra 2362 [\p{Nd}] 2363 Ket 2364 End 2365------------------------------------------------------------------ 2366 >\x{6f4}< 2367 0: \x{6f4} 2368 2369/[\S]/B,utf,ucp 2370------------------------------------------------------------------ 2371 Bra 2372 [\P{Xsp}] 2373 Ket 2374 End 2375------------------------------------------------------------------ 2376 \x{1680}\x{6f4}\x{1680} 2377 0: \x{6f4} 2378 2379/[\s]/B,utf,ucp 2380------------------------------------------------------------------ 2381 Bra 2382 [\p{Xsp}] 2383 Ket 2384 End 2385------------------------------------------------------------------ 2386 >\x{1680}< 2387 0: \x{1680} 2388 2389/[\W]/B,utf,ucp 2390------------------------------------------------------------------ 2391 Bra 2392 [\P{Xwd}] 2393 Ket 2394 End 2395------------------------------------------------------------------ 2396 A\x{1712}B 2397 0: \x{1712} 2398 2399/[\w]/B,utf,ucp 2400------------------------------------------------------------------ 2401 Bra 2402 [\p{Xwd}] 2403 Ket 2404 End 2405------------------------------------------------------------------ 2406 >\x{1723}< 2407 0: \x{1723} 2408 2409/\D/B,utf,ucp 2410------------------------------------------------------------------ 2411 Bra 2412 notprop Nd 2413 Ket 2414 End 2415------------------------------------------------------------------ 2416 1\x{3c8}2 2417 0: \x{3c8} 2418 2419/\d/B,utf,ucp 2420------------------------------------------------------------------ 2421 Bra 2422 prop Nd 2423 Ket 2424 End 2425------------------------------------------------------------------ 2426 >\x{6f4}< 2427 0: \x{6f4} 2428 2429/\S/B,utf,ucp 2430------------------------------------------------------------------ 2431 Bra 2432 notprop Xsp 2433 Ket 2434 End 2435------------------------------------------------------------------ 2436 \x{1680}\x{6f4}\x{1680} 2437 0: \x{6f4} 2438 2439/\s/B,utf,ucp 2440------------------------------------------------------------------ 2441 Bra 2442 prop Xsp 2443 Ket 2444 End 2445------------------------------------------------------------------ 2446 >\x{1680}> 2447 0: \x{1680} 2448 2449/\W/B,utf,ucp 2450------------------------------------------------------------------ 2451 Bra 2452 notprop Xwd 2453 Ket 2454 End 2455------------------------------------------------------------------ 2456 A\x{1712}B 2457 0: \x{1712} 2458 2459/\w/B,utf,ucp 2460------------------------------------------------------------------ 2461 Bra 2462 prop Xwd 2463 Ket 2464 End 2465------------------------------------------------------------------ 2466 >\x{1723}< 2467 0: \x{1723} 2468 2469/[[:alpha:]]/B,ucp 2470------------------------------------------------------------------ 2471 Bra 2472 [\p{L}] 2473 Ket 2474 End 2475------------------------------------------------------------------ 2476 2477/[[:lower:]]/B,ucp 2478------------------------------------------------------------------ 2479 Bra 2480 [\p{Ll}] 2481 Ket 2482 End 2483------------------------------------------------------------------ 2484 2485/[[:upper:]]/B,ucp 2486------------------------------------------------------------------ 2487 Bra 2488 [\p{Lu}] 2489 Ket 2490 End 2491------------------------------------------------------------------ 2492 2493/[[:alnum:]]/B,ucp 2494------------------------------------------------------------------ 2495 Bra 2496 [\p{Xan}] 2497 Ket 2498 End 2499------------------------------------------------------------------ 2500 2501/[[:ascii:]]/B,ucp 2502------------------------------------------------------------------ 2503 Bra 2504 [\x00-\x7f] 2505 Ket 2506 End 2507------------------------------------------------------------------ 2508 2509/[[:cntrl:]]/B,ucp 2510------------------------------------------------------------------ 2511 Bra 2512 [\p{Cc}] 2513 Ket 2514 End 2515------------------------------------------------------------------ 2516 2517/[[:digit:]]/B,ucp 2518------------------------------------------------------------------ 2519 Bra 2520 [\p{Nd}] 2521 Ket 2522 End 2523------------------------------------------------------------------ 2524 2525/[[:graph:]]/B,ucp 2526------------------------------------------------------------------ 2527 Bra 2528 [[:graph:]] 2529 Ket 2530 End 2531------------------------------------------------------------------ 2532 2533/[[:print:]]/B,ucp 2534------------------------------------------------------------------ 2535 Bra 2536 [[:print:]] 2537 Ket 2538 End 2539------------------------------------------------------------------ 2540 2541/[[:punct:]]/B,ucp 2542------------------------------------------------------------------ 2543 Bra 2544 [[:punct:]] 2545 Ket 2546 End 2547------------------------------------------------------------------ 2548 2549/[[:space:]]/B,ucp 2550------------------------------------------------------------------ 2551 Bra 2552 [\p{Xps}] 2553 Ket 2554 End 2555------------------------------------------------------------------ 2556 2557/[[:word:]]/B,ucp 2558------------------------------------------------------------------ 2559 Bra 2560 [\p{Xwd}] 2561 Ket 2562 End 2563------------------------------------------------------------------ 2564 2565/[[:xdigit:]]/B,ucp 2566------------------------------------------------------------------ 2567 Bra 2568 [0-9A-Fa-f] 2569 Ket 2570 End 2571------------------------------------------------------------------ 2572 2573# Unicode properties for \b abd \B 2574 2575/\b...\B/utf,ucp 2576 abc_ 2577 0: abc 2578 \x{37e}abc\x{376} 2579 0: abc 2580 \x{37e}\x{376}\x{371}\x{393}\x{394} 2581 0: \x{376}\x{371}\x{393} 2582 !\x{c0}++\x{c1}\x{c2} 2583 0: ++\x{c1} 2584 !\x{c0}+++++ 2585 0: \x{c0}++ 2586 2587# Without PCRE_UCP, non-ASCII always fail, even if < 256 2588 2589/\b...\B/utf 2590 abc_ 2591 0: abc 2592\= Expect no match 2593 \x{37e}abc\x{376} 2594No match 2595 \x{37e}\x{376}\x{371}\x{393}\x{394} 2596No match 2597 !\x{c0}++\x{c1}\x{c2} 2598No match 2599 !\x{c0}+++++ 2600No match 2601 2602# With PCRE_UCP, non-UTF8 chars that are < 256 still check properties 2603 2604/\b...\B/ucp 2605 abc_ 2606 0: abc 2607 !\x{c0}++\x{c1}\x{c2} 2608 0: ++\xc1 2609 !\x{c0}+++++ 2610 0: \xc0++ 2611 2612# Some of these are silly, but they check various combinations 2613 2614/[[:^alpha:][:^cntrl:]]+/B,utf,ucp 2615------------------------------------------------------------------ 2616 Bra 2617 [\P{L}\P{Cc}]++ 2618 Ket 2619 End 2620------------------------------------------------------------------ 2621 123 2622 0: 123 2623 abc 2624 0: abc 2625 2626/[[:^cntrl:][:^alpha:]]+/B,utf,ucp 2627------------------------------------------------------------------ 2628 Bra 2629 [\P{Cc}\P{L}]++ 2630 Ket 2631 End 2632------------------------------------------------------------------ 2633 123 2634 0: 123 2635 abc 2636 0: abc 2637 2638/[[:alpha:]]+/B,utf,ucp 2639------------------------------------------------------------------ 2640 Bra 2641 [\p{L}]++ 2642 Ket 2643 End 2644------------------------------------------------------------------ 2645 abc 2646 0: abc 2647 2648/[[:^alpha:]\S]+/B,utf,ucp 2649------------------------------------------------------------------ 2650 Bra 2651 [\P{L}\P{Xsp}]++ 2652 Ket 2653 End 2654------------------------------------------------------------------ 2655 123 2656 0: 123 2657 abc 2658 0: abc 2659 2660/[^\d]+/B,utf,ucp 2661------------------------------------------------------------------ 2662 Bra 2663 [^\p{Nd}]++ 2664 Ket 2665 End 2666------------------------------------------------------------------ 2667 abc123 2668 0: abc 2669 abc\x{123} 2670 0: abc\x{123} 2671 \x{660}abc 2672 0: abc 2673 2674/\p{Lu}+9\p{Lu}+B\p{Lu}+b/B 2675------------------------------------------------------------------ 2676 Bra 2677 prop Lu ++ 2678 9 2679 prop Lu + 2680 B 2681 prop Lu ++ 2682 b 2683 Ket 2684 End 2685------------------------------------------------------------------ 2686 2687/\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/B 2688------------------------------------------------------------------ 2689 Bra 2690 notprop Lu + 2691 9 2692 notprop Lu ++ 2693 B 2694 notprop Lu + 2695 b 2696 Ket 2697 End 2698------------------------------------------------------------------ 2699 2700/\P{Lu}+9\P{Lu}+B\P{Lu}+b/B 2701------------------------------------------------------------------ 2702 Bra 2703 notprop Lu + 2704 9 2705 notprop Lu ++ 2706 B 2707 notprop Lu + 2708 b 2709 Ket 2710 End 2711------------------------------------------------------------------ 2712 2713/\p{Han}+X\p{Greek}+\x{370}/B,utf 2714------------------------------------------------------------------ 2715 Bra 2716 prop Han ++ 2717 X 2718 prop Greek + 2719 \x{370} 2720 Ket 2721 End 2722------------------------------------------------------------------ 2723 2724/\p{Xan}+!\p{Xan}+A/B 2725------------------------------------------------------------------ 2726 Bra 2727 prop Xan ++ 2728 ! 2729 prop Xan + 2730 A 2731 Ket 2732 End 2733------------------------------------------------------------------ 2734 2735/\p{Xsp}+!\p{Xsp}\t/B 2736------------------------------------------------------------------ 2737 Bra 2738 prop Xsp ++ 2739 ! 2740 prop Xsp 2741 \x09 2742 Ket 2743 End 2744------------------------------------------------------------------ 2745 2746/\p{Xps}+!\p{Xps}\t/B 2747------------------------------------------------------------------ 2748 Bra 2749 prop Xps ++ 2750 ! 2751 prop Xps 2752 \x09 2753 Ket 2754 End 2755------------------------------------------------------------------ 2756 2757/\p{Xwd}+!\p{Xwd}_/B 2758------------------------------------------------------------------ 2759 Bra 2760 prop Xwd ++ 2761 ! 2762 prop Xwd 2763 _ 2764 Ket 2765 End 2766------------------------------------------------------------------ 2767 2768/A+\p{N}A+\dB+\p{N}*B+\d*/B,ucp 2769------------------------------------------------------------------ 2770 Bra 2771 A++ 2772 prop N 2773 A++ 2774 prop Nd 2775 B+ 2776 prop N *+ 2777 B++ 2778 prop Nd *+ 2779 Ket 2780 End 2781------------------------------------------------------------------ 2782 2783# These behaved oddly in Perl, so they are kept in this test 2784 2785/(\x{23a}\x{23a}\x{23a})?\1/i,utf 2786\= Expect no match 2787 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} 2788No match 2789 2790/(ȺȺȺ)?\1/i,utf 2791\= Expect no match 2792 ȺȺȺⱥⱥ 2793No match 2794 2795/(\x{23a}\x{23a}\x{23a})?\1/i,utf 2796 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 2797 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 2798 1: \x{23a}\x{23a}\x{23a} 2799 2800/(ȺȺȺ)?\1/i,utf 2801 ȺȺȺⱥⱥⱥ 2802 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 2803 1: \x{23a}\x{23a}\x{23a} 2804 2805/(\x{23a}\x{23a}\x{23a})\1/i,utf 2806\= Expect no match 2807 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} 2808No match 2809 2810/(ȺȺȺ)\1/i,utf 2811\= Expect no match 2812 ȺȺȺⱥⱥ 2813No match 2814 2815/(\x{23a}\x{23a}\x{23a})\1/i,utf 2816 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 2817 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 2818 1: \x{23a}\x{23a}\x{23a} 2819 2820/(ȺȺȺ)\1/i,utf 2821 ȺȺȺⱥⱥⱥ 2822 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 2823 1: \x{23a}\x{23a}\x{23a} 2824 2825/(\x{2c65}\x{2c65})\1/i,utf 2826 \x{2c65}\x{2c65}\x{23a}\x{23a} 2827 0: \x{2c65}\x{2c65}\x{23a}\x{23a} 2828 1: \x{2c65}\x{2c65} 2829 2830/(ⱥⱥ)\1/i,utf 2831 ⱥⱥȺȺ 2832 0: \x{2c65}\x{2c65}\x{23a}\x{23a} 2833 1: \x{2c65}\x{2c65} 2834 2835/(\x{23a}\x{23a}\x{23a})\1Y/i,utf 2836 X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ 2837 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}Y 2838 1: \x{23a}\x{23a}\x{23a} 2839 2840/(\x{2c65}\x{2c65})\1Y/i,utf 2841 X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ 2842 0: \x{2c65}\x{2c65}\x{23a}\x{23a}Y 2843 1: \x{2c65}\x{2c65} 2844 2845# These scripts weren't yet in Perl when I added Unicode 6.0.0 to PCRE 2846 2847/^[\p{Batak}]/utf 2848 \x{1bc0} 2849 0: \x{1bc0} 2850 \x{1bff} 2851 0: \x{1bff} 2852\= Expect no match 2853 \x{1bf4} 2854No match 2855 2856/^[\p{Brahmi}]/utf 2857 \x{11000} 2858 0: \x{11000} 2859 \x{1106f} 2860 0: \x{1106f} 2861\= Expect no match 2862 \x{1104e} 2863No match 2864 2865/^[\p{Mandaic}]/utf 2866 \x{840} 2867 0: \x{840} 2868 \x{85e} 2869 0: \x{85e} 2870\= Expect no match 2871 \x{85c} 2872No match 2873 \x{85d} 2874No match 2875 2876/(\X*)(.)/s,utf 2877 A\x{300} 2878 0: A 2879 1: 2880 2: A 2881 2882/^S(\X*)e(\X*)$/utf 2883 Stéréo 2884 0: Ste\x{301}re\x{301}o 2885 1: te\x{301}r 2886 2: \x{301}o 2887 2888/^\X/utf 2889 ́réo 2890 0: \x{301} 2891 2892/^a\X41z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 2893 aX41z 2894 0: aX41z 2895\= Expect no match 2896 aAz 2897No match 2898 2899/\X/ 2900 a\=ps 2901 0: a 2902 a\=ph 2903Partial match: a 2904 2905/\Xa/ 2906 aa\=ps 2907 0: aa 2908 aa\=ph 2909 0: aa 2910 2911/\X{2}/ 2912 aa\=ps 2913 0: aa 2914 aa\=ph 2915Partial match: aa 2916 2917/\X+a/ 2918 a\=ps 2919Partial match: a 2920 aa\=ps 2921 0: aa 2922 aa\=ph 2923Partial match: aa 2924 2925/\X+?a/ 2926 a\=ps 2927Partial match: a 2928 ab\=ps 2929Partial match: ab 2930 aa\=ps 2931 0: aa 2932 aa\=ph 2933 0: aa 2934 aba\=ps 2935 0: aba 2936 2937# These Unicode 6.1.0 scripts are not known to Perl. 2938 2939/\p{Chakma}\d/utf,ucp 2940 \x{11100}\x{1113c} 2941 0: \x{11100}\x{1113c} 2942 2943/\p{Takri}\d/utf,ucp 2944 \x{11680}\x{116c0} 2945 0: \x{11680}\x{116c0} 2946 2947/^\X/utf 2948 A\=ps 2949 0: A 2950 A\=ph 2951Partial match: A 2952 A\x{300}\x{301}\=ps 2953 0: A\x{300}\x{301} 2954 A\x{300}\x{301}\=ph 2955Partial match: A\x{300}\x{301} 2956 A\x{301}\=ps 2957 0: A\x{301} 2958 A\x{301}\=ph 2959Partial match: A\x{301} 2960 2961/^\X{2,3}/utf 2962 A\=ps 2963Partial match: A 2964 A\=ph 2965Partial match: A 2966 AA\=ps 2967 0: AA 2968 AA\=ph 2969Partial match: AA 2970 A\x{300}\x{301}\=ps 2971Partial match: A\x{300}\x{301} 2972 A\x{300}\x{301}\=ph 2973Partial match: A\x{300}\x{301} 2974 A\x{300}\x{301}A\x{300}\x{301}\=ps 2975 0: A\x{300}\x{301}A\x{300}\x{301} 2976 A\x{300}\x{301}A\x{300}\x{301}\=ph 2977Partial match: A\x{300}\x{301}A\x{300}\x{301} 2978 2979/^\X{2}/utf 2980 AA\=ps 2981 0: AA 2982 AA\=ph 2983Partial match: AA 2984 A\x{300}\x{301}A\x{300}\x{301}\=ps 2985 0: A\x{300}\x{301}A\x{300}\x{301} 2986 A\x{300}\x{301}A\x{300}\x{301}\=ph 2987Partial match: A\x{300}\x{301}A\x{300}\x{301} 2988 2989/^\X+/utf 2990 AA\=ps 2991 0: AA 2992 AA\=ph 2993Partial match: AA 2994 2995/^\X+?Z/utf 2996 AA\=ps 2997Partial match: AA 2998 AA\=ph 2999Partial match: AA 3000 3001/A\x{3a3}B/IBi,utf 3002------------------------------------------------------------------ 3003 Bra 3004 /i A 3005 clist 03a3 03c2 03c3 3006 /i B 3007 Ket 3008 End 3009------------------------------------------------------------------ 3010Capture group count = 0 3011Options: caseless utf 3012First code unit = 'A' (caseless) 3013Last code unit = 'B' (caseless) 3014Subject length lower bound = 3 3015 3016/[\x{3a3}]/Bi,utf 3017------------------------------------------------------------------ 3018 Bra 3019 clist 03a3 03c2 03c3 3020 Ket 3021 End 3022------------------------------------------------------------------ 3023 3024/[^\x{3a3}]/Bi,utf 3025------------------------------------------------------------------ 3026 Bra 3027 not clist 03a3 03c2 03c3 3028 Ket 3029 End 3030------------------------------------------------------------------ 3031 3032/[\x{3a3}]+/Bi,utf 3033------------------------------------------------------------------ 3034 Bra 3035 clist 03a3 03c2 03c3 ++ 3036 Ket 3037 End 3038------------------------------------------------------------------ 3039 3040/[^\x{3a3}]+/Bi,utf 3041------------------------------------------------------------------ 3042 Bra 3043 not clist 03a3 03c2 03c3 ++ 3044 Ket 3045 End 3046------------------------------------------------------------------ 3047 3048/a*\x{3a3}/Bi,utf 3049------------------------------------------------------------------ 3050 Bra 3051 /i a*+ 3052 clist 03a3 03c2 03c3 3053 Ket 3054 End 3055------------------------------------------------------------------ 3056 3057/\x{3a3}+a/Bi,utf 3058------------------------------------------------------------------ 3059 Bra 3060 clist 03a3 03c2 03c3 ++ 3061 /i a 3062 Ket 3063 End 3064------------------------------------------------------------------ 3065 3066/\x{3a3}*\x{3c2}/Bi,utf 3067------------------------------------------------------------------ 3068 Bra 3069 clist 03a3 03c2 03c3 * 3070 clist 03a3 03c2 03c3 3071 Ket 3072 End 3073------------------------------------------------------------------ 3074 3075/\x{3a3}{3}/i,utf,aftertext 3076 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 3077 0: \x{3a3}\x{3c3}\x{3c2} 3078 0+ \x{3a3}\x{3c3}\x{3c2} 3079 3080/\x{3a3}{2,4}/i,utf,aftertext 3081 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 3082 0: \x{3a3}\x{3c3}\x{3c2}\x{3a3} 3083 0+ \x{3c3}\x{3c2} 3084 3085/\x{3a3}{2,4}?/i,utf,aftertext 3086 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 3087 0: \x{3a3}\x{3c3} 3088 0+ \x{3c2}\x{3a3}\x{3c3}\x{3c2} 3089 3090/\x{3a3}+./i,utf,aftertext 3091 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 3092 0: \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 3093 0+ 3094 3095/\x{3a3}++./i,utf,aftertext 3096\= Expect no match 3097 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 3098No match 3099 3100/\x{3a3}*\x{3c2}/Bi,utf 3101------------------------------------------------------------------ 3102 Bra 3103 clist 03a3 03c2 03c3 * 3104 clist 03a3 03c2 03c3 3105 Ket 3106 End 3107------------------------------------------------------------------ 3108 3109/[^\x{3a3}]*\x{3c2}/Bi,utf 3110------------------------------------------------------------------ 3111 Bra 3112 not clist 03a3 03c2 03c3 *+ 3113 clist 03a3 03c2 03c3 3114 Ket 3115 End 3116------------------------------------------------------------------ 3117 3118/[^a]*\x{3c2}/Bi,utf 3119------------------------------------------------------------------ 3120 Bra 3121 /i [^a]* 3122 clist 03a3 03c2 03c3 3123 Ket 3124 End 3125------------------------------------------------------------------ 3126 3127/ist/Bi,utf 3128------------------------------------------------------------------ 3129 Bra 3130 /i i 3131 clist 0053 0073 017f 3132 /i t 3133 Ket 3134 End 3135------------------------------------------------------------------ 3136\= Expect no match 3137 ikt 3138No match 3139 3140/is+t/i,utf 3141 iSs\x{17f}t 3142 0: iSs\x{17f}t 3143\= Expect no match 3144 ikt 3145No match 3146 3147/is+?t/i,utf 3148\= Expect no match 3149 ikt 3150No match 3151 3152/is?t/i,utf 3153\= Expect no match 3154 ikt 3155No match 3156 3157/is{2}t/i,utf 3158\= Expect no match 3159 iskt 3160No match 3161 3162# This property is a PCRE special 3163 3164/^\p{Xuc}/utf 3165 $abc 3166 0: $ 3167 @abc 3168 0: @ 3169 `abc 3170 0: ` 3171 \x{1234}abc 3172 0: \x{1234} 3173\= Expect no match 3174 abc 3175No match 3176 3177/^\p{Xuc}+/utf 3178 $@`\x{a0}\x{1234}\x{e000}** 3179 0: $@`\x{a0}\x{1234}\x{e000} 3180\= Expect no match 3181 \x{9f} 3182No match 3183 3184/^\p{Xuc}+?/utf 3185 $@`\x{a0}\x{1234}\x{e000}** 3186 0: $ 3187\= Expect no match 3188 \x{9f} 3189No match 3190 3191/^\p{Xuc}+?\*/utf 3192 $@`\x{a0}\x{1234}\x{e000}** 3193 0: $@`\x{a0}\x{1234}\x{e000}* 3194\= Expect no match 3195 \x{9f} 3196No match 3197 3198/^\p{Xuc}++/utf 3199 $@`\x{a0}\x{1234}\x{e000}** 3200 0: $@`\x{a0}\x{1234}\x{e000} 3201\= Expect no match 3202 \x{9f} 3203No match 3204 3205/^\p{Xuc}{3,5}/utf 3206 $@`\x{a0}\x{1234}\x{e000}** 3207 0: $@`\x{a0}\x{1234} 3208\= Expect no match 3209 \x{9f} 3210No match 3211 3212/^\p{Xuc}{3,5}?/utf 3213 $@`\x{a0}\x{1234}\x{e000}** 3214 0: $@` 3215\= Expect no match 3216 \x{9f} 3217No match 3218 3219/^[\p{Xuc}]/utf 3220 $@`\x{a0}\x{1234}\x{e000}** 3221 0: $ 3222\= Expect no match 3223 \x{9f} 3224No match 3225 3226/^[\p{Xuc}]+/utf 3227 $@`\x{a0}\x{1234}\x{e000}** 3228 0: $@`\x{a0}\x{1234}\x{e000} 3229\= Expect no match 3230 \x{9f} 3231No match 3232 3233/^\P{Xuc}/utf 3234 abc 3235 0: a 3236\= Expect no match 3237 $abc 3238No match 3239 @abc 3240No match 3241 `abc 3242No match 3243 \x{1234}abc 3244No match 3245 3246/^[\P{Xuc}]/utf 3247 abc 3248 0: a 3249\= Expect no match 3250 $abc 3251No match 3252 @abc 3253No match 3254 `abc 3255No match 3256 \x{1234}abc 3257No match 3258 3259# Some auto-possessification tests 3260 3261/\pN+\z/B 3262------------------------------------------------------------------ 3263 Bra 3264 prop N ++ 3265 \z 3266 Ket 3267 End 3268------------------------------------------------------------------ 3269 3270/\PN+\z/B 3271------------------------------------------------------------------ 3272 Bra 3273 notprop N ++ 3274 \z 3275 Ket 3276 End 3277------------------------------------------------------------------ 3278 3279/\pN+/B 3280------------------------------------------------------------------ 3281 Bra 3282 prop N ++ 3283 Ket 3284 End 3285------------------------------------------------------------------ 3286 3287/\PN+/B 3288------------------------------------------------------------------ 3289 Bra 3290 notprop N ++ 3291 Ket 3292 End 3293------------------------------------------------------------------ 3294 3295/\p{Any}+\p{Any} \p{Any}+\P{Any} \p{Any}+\p{L&} \p{Any}+\p{L} \p{Any}+\p{Lu} \p{Any}+\p{Han} \p{Any}+\p{Xan} \p{Any}+\p{Xsp} \p{Any}+\p{Xps} \p{Xwd}+\p{Any} \p{Any}+\p{Xuc}/Bx,ucp 3296------------------------------------------------------------------ 3297 Bra 3298 AllAny+ 3299 AllAny 3300 AllAny+ 3301 notprop Any 3302 AllAny+ 3303 prop L& 3304 AllAny+ 3305 prop L 3306 AllAny+ 3307 prop Lu 3308 AllAny+ 3309 prop Han 3310 AllAny+ 3311 prop Xan 3312 AllAny+ 3313 prop Xsp 3314 AllAny+ 3315 prop Xps 3316 prop Xwd + 3317 AllAny 3318 AllAny+ 3319 prop Xuc 3320 Ket 3321 End 3322------------------------------------------------------------------ 3323 3324/\p{L&}+\p{Any} \p{L&}+\p{L&} \P{L&}+\p{L&} \p{L&}+\p{L} \p{L&}+\p{Lu} \p{L&}+\p{Han} \p{L&}+\p{Xan} \p{L&}+\P{Xan} \p{L&}+\p{Xsp} \p{L&}+\p{Xps} \p{Xwd}+\p{L&} \p{L&}+\p{Xuc}/Bx,ucp 3325------------------------------------------------------------------ 3326 Bra 3327 prop L& + 3328 AllAny 3329 prop L& + 3330 prop L& 3331 notprop L& ++ 3332 prop L& 3333 prop L& + 3334 prop L 3335 prop L& + 3336 prop Lu 3337 prop L& + 3338 prop Han 3339 prop L& + 3340 prop Xan 3341 prop L& ++ 3342 notprop Xan 3343 prop L& ++ 3344 prop Xsp 3345 prop L& ++ 3346 prop Xps 3347 prop Xwd + 3348 prop L& 3349 prop L& + 3350 prop Xuc 3351 Ket 3352 End 3353------------------------------------------------------------------ 3354 3355/\p{N}+\p{Any} \p{N}+\p{L&} \p{N}+\p{L} \p{N}+\P{L} \p{N}+\P{N} \p{N}+\p{Lu} \p{N}+\p{Han} \p{N}+\p{Xan} \p{N}+\p{Xsp} \p{N}+\p{Xps} \p{Xwd}+\p{N} \p{N}+\p{Xuc}/Bx,ucp 3356------------------------------------------------------------------ 3357 Bra 3358 prop N + 3359 AllAny 3360 prop N + 3361 prop L& 3362 prop N ++ 3363 prop L 3364 prop N + 3365 notprop L 3366 prop N ++ 3367 notprop N 3368 prop N ++ 3369 prop Lu 3370 prop N + 3371 prop Han 3372 prop N + 3373 prop Xan 3374 prop N ++ 3375 prop Xsp 3376 prop N ++ 3377 prop Xps 3378 prop Xwd + 3379 prop N 3380 prop N + 3381 prop Xuc 3382 Ket 3383 End 3384------------------------------------------------------------------ 3385 3386/\p{Lu}+\p{Any} \p{Lu}+\p{L&} \p{Lu}+\p{L} \p{Lu}+\p{Lu} \P{Lu}+\p{Lu} \p{Lu}+\p{Nd} \p{Lu}+\P{Nd} \p{Lu}+\p{Han} \p{Lu}+\p{Xan} \p{Lu}+\p{Xsp} \p{Lu}+\p{Xps} \p{Xwd}+\p{Lu} \p{Lu}+\p{Xuc}/Bx,ucp 3387------------------------------------------------------------------ 3388 Bra 3389 prop Lu + 3390 AllAny 3391 prop Lu + 3392 prop L& 3393 prop Lu + 3394 prop L 3395 prop Lu + 3396 prop Lu 3397 notprop Lu ++ 3398 prop Lu 3399 prop Lu ++ 3400 prop Nd 3401 prop Lu + 3402 notprop Nd 3403 prop Lu + 3404 prop Han 3405 prop Lu + 3406 prop Xan 3407 prop Lu ++ 3408 prop Xsp 3409 prop Lu ++ 3410 prop Xps 3411 prop Xwd + 3412 prop Lu 3413 prop Lu + 3414 prop Xuc 3415 Ket 3416 End 3417------------------------------------------------------------------ 3418 3419/\p{Han}+\p{Lu} \p{Han}+\p{L&} \p{Han}+\p{L} \p{Han}+\p{Lu} \p{Han}+\p{Arabic} \p{Arabic}+\p{Arabic} \p{Han}+\p{Xan} \p{Han}+\p{Xsp} \p{Han}+\p{Xps} \p{Xwd}+\p{Han} \p{Han}+\p{Xuc}/Bx,ucp 3420------------------------------------------------------------------ 3421 Bra 3422 prop Han + 3423 prop Lu 3424 prop Han + 3425 prop L& 3426 prop Han + 3427 prop L 3428 prop Han + 3429 prop Lu 3430 prop Han ++ 3431 prop Arabic 3432 prop Arabic + 3433 prop Arabic 3434 prop Han + 3435 prop Xan 3436 prop Han + 3437 prop Xsp 3438 prop Han + 3439 prop Xps 3440 prop Xwd + 3441 prop Han 3442 prop Han + 3443 prop Xuc 3444 Ket 3445 End 3446------------------------------------------------------------------ 3447 3448/\p{Xan}+\p{Any} \p{Xan}+\p{L&} \P{Xan}+\p{L&} \p{Xan}+\p{L} \p{Xan}+\p{Lu} \p{Xan}+\p{Han} \p{Xan}+\p{Xan} \p{Xan}+\P{Xan} \p{Xan}+\p{Xsp} \p{Xan}+\p{Xps} \p{Xwd}+\p{Xan} \p{Xan}+\p{Xuc}/Bx,ucp 3449------------------------------------------------------------------ 3450 Bra 3451 prop Xan + 3452 AllAny 3453 prop Xan + 3454 prop L& 3455 notprop Xan ++ 3456 prop L& 3457 prop Xan + 3458 prop L 3459 prop Xan + 3460 prop Lu 3461 prop Xan + 3462 prop Han 3463 prop Xan + 3464 prop Xan 3465 prop Xan ++ 3466 notprop Xan 3467 prop Xan ++ 3468 prop Xsp 3469 prop Xan ++ 3470 prop Xps 3471 prop Xwd + 3472 prop Xan 3473 prop Xan + 3474 prop Xuc 3475 Ket 3476 End 3477------------------------------------------------------------------ 3478 3479/\p{Xsp}+\p{Any} \p{Xsp}+\p{L&} \p{Xsp}+\p{L} \p{Xsp}+\p{Lu} \p{Xsp}+\p{Han} \p{Xsp}+\p{Xan} \p{Xsp}+\p{Xsp} \P{Xsp}+\p{Xsp} \p{Xsp}+\p{Xps} \p{Xwd}+\p{Xsp} \p{Xsp}+\p{Xuc}/Bx,ucp 3480------------------------------------------------------------------ 3481 Bra 3482 prop Xsp + 3483 AllAny 3484 prop Xsp ++ 3485 prop L& 3486 prop Xsp ++ 3487 prop L 3488 prop Xsp ++ 3489 prop Lu 3490 prop Xsp + 3491 prop Han 3492 prop Xsp ++ 3493 prop Xan 3494 prop Xsp + 3495 prop Xsp 3496 notprop Xsp ++ 3497 prop Xsp 3498 prop Xsp + 3499 prop Xps 3500 prop Xwd ++ 3501 prop Xsp 3502 prop Xsp + 3503 prop Xuc 3504 Ket 3505 End 3506------------------------------------------------------------------ 3507 3508/\p{Xwd}+\p{Any} \p{Xwd}+\p{L&} \p{Xwd}+\p{L} \p{Xwd}+\p{Lu} \p{Xwd}+\p{Han} \p{Xwd}+\p{Xan} \p{Xwd}+\p{Xsp} \p{Xwd}+\p{Xps} \p{Xwd}+\p{Xwd} \p{Xwd}+\P{Xwd} \p{Xwd}+\p{Xuc}/Bx,ucp 3509------------------------------------------------------------------ 3510 Bra 3511 prop Xwd + 3512 AllAny 3513 prop Xwd + 3514 prop L& 3515 prop Xwd + 3516 prop L 3517 prop Xwd + 3518 prop Lu 3519 prop Xwd + 3520 prop Han 3521 prop Xwd + 3522 prop Xan 3523 prop Xwd ++ 3524 prop Xsp 3525 prop Xwd ++ 3526 prop Xps 3527 prop Xwd + 3528 prop Xwd 3529 prop Xwd ++ 3530 notprop Xwd 3531 prop Xwd + 3532 prop Xuc 3533 Ket 3534 End 3535------------------------------------------------------------------ 3536 3537/\p{Xuc}+\p{Any} \p{Xuc}+\p{L&} \p{Xuc}+\p{L} \p{Xuc}+\p{Lu} \p{Xuc}+\p{Han} \p{Xuc}+\p{Xan} \p{Xuc}+\p{Xsp} \p{Xuc}+\p{Xps} \p{Xwd}+\p{Xuc} \p{Xuc}+\p{Xuc} \p{Xuc}+\P{Xuc}/Bx,ucp 3538------------------------------------------------------------------ 3539 Bra 3540 prop Xuc + 3541 AllAny 3542 prop Xuc + 3543 prop L& 3544 prop Xuc + 3545 prop L 3546 prop Xuc + 3547 prop Lu 3548 prop Xuc + 3549 prop Han 3550 prop Xuc + 3551 prop Xan 3552 prop Xuc + 3553 prop Xsp 3554 prop Xuc + 3555 prop Xps 3556 prop Xwd + 3557 prop Xuc 3558 prop Xuc + 3559 prop Xuc 3560 prop Xuc ++ 3561 notprop Xuc 3562 Ket 3563 End 3564------------------------------------------------------------------ 3565 3566/\p{N}+\p{Ll} \p{N}+\p{Nd} \p{N}+\P{Nd}/Bx,ucp 3567------------------------------------------------------------------ 3568 Bra 3569 prop N ++ 3570 prop Ll 3571 prop N + 3572 prop Nd 3573 prop N + 3574 notprop Nd 3575 Ket 3576 End 3577------------------------------------------------------------------ 3578 3579/\p{Xan}+\p{L} \p{Xan}+\p{N} \p{Xan}+\p{C} \p{Xan}+\P{L} \P{Xan}+\p{N} \p{Xan}+\P{C}/Bx,ucp 3580------------------------------------------------------------------ 3581 Bra 3582 prop Xan + 3583 prop L 3584 prop Xan + 3585 prop N 3586 prop Xan ++ 3587 prop C 3588 prop Xan + 3589 notprop L 3590 notprop Xan ++ 3591 prop N 3592 prop Xan + 3593 notprop C 3594 Ket 3595 End 3596------------------------------------------------------------------ 3597 3598/\p{L}+\p{Xan} \p{N}+\p{Xan} \p{C}+\p{Xan} \P{L}+\p{Xan} \p{N}+\p{Xan} \P{C}+\p{Xan} \p{L}+\P{Xan}/Bx,ucp 3599------------------------------------------------------------------ 3600 Bra 3601 prop L + 3602 prop Xan 3603 prop N + 3604 prop Xan 3605 prop C ++ 3606 prop Xan 3607 notprop L + 3608 prop Xan 3609 prop N + 3610 prop Xan 3611 notprop C + 3612 prop Xan 3613 prop L ++ 3614 notprop Xan 3615 Ket 3616 End 3617------------------------------------------------------------------ 3618 3619/\p{Xan}+\p{Lu} \p{Xan}+\p{Nd} \p{Xan}+\p{Cc} \p{Xan}+\P{Ll} \P{Xan}+\p{No} \p{Xan}+\P{Cf}/Bx,ucp 3620------------------------------------------------------------------ 3621 Bra 3622 prop Xan + 3623 prop Lu 3624 prop Xan + 3625 prop Nd 3626 prop Xan ++ 3627 prop Cc 3628 prop Xan + 3629 notprop Ll 3630 notprop Xan ++ 3631 prop No 3632 prop Xan + 3633 notprop Cf 3634 Ket 3635 End 3636------------------------------------------------------------------ 3637 3638/\p{Lu}+\p{Xan} \p{Nd}+\p{Xan} \p{Cs}+\p{Xan} \P{Lt}+\p{Xan} \p{Nl}+\p{Xan} \P{Cc}+\p{Xan} \p{Lt}+\P{Xan}/Bx,ucp 3639------------------------------------------------------------------ 3640 Bra 3641 prop Lu + 3642 prop Xan 3643 prop Nd + 3644 prop Xan 3645 prop Cs ++ 3646 prop Xan 3647 notprop Lt + 3648 prop Xan 3649 prop Nl + 3650 prop Xan 3651 notprop Cc + 3652 prop Xan 3653 prop Lt ++ 3654 notprop Xan 3655 Ket 3656 End 3657------------------------------------------------------------------ 3658 3659/\w+\p{P} \w+\p{Po} \w+\s \p{Xan}+\s \s+\p{Xan} \s+\w/Bx,ucp 3660------------------------------------------------------------------ 3661 Bra 3662 prop Xwd + 3663 prop P 3664 prop Xwd + 3665 prop Po 3666 prop Xwd ++ 3667 prop Xsp 3668 prop Xan ++ 3669 prop Xsp 3670 prop Xsp ++ 3671 prop Xan 3672 prop Xsp ++ 3673 prop Xwd 3674 Ket 3675 End 3676------------------------------------------------------------------ 3677 3678/\w+\P{P} \W+\p{Po} \w+\S \P{Xan}+\s \s+\P{Xan} \s+\W/Bx,ucp 3679------------------------------------------------------------------ 3680 Bra 3681 prop Xwd + 3682 notprop P 3683 notprop Xwd + 3684 prop Po 3685 prop Xwd + 3686 notprop Xsp 3687 notprop Xan + 3688 prop Xsp 3689 prop Xsp + 3690 notprop Xan 3691 prop Xsp + 3692 notprop Xwd 3693 Ket 3694 End 3695------------------------------------------------------------------ 3696 3697/\w+\p{Po} \w+\p{Pc} \W+\p{Po} \W+\p{Pc} \w+\P{Po} \w+\P{Pc}/Bx,ucp 3698------------------------------------------------------------------ 3699 Bra 3700 prop Xwd + 3701 prop Po 3702 prop Xwd ++ 3703 prop Pc 3704 notprop Xwd + 3705 prop Po 3706 notprop Xwd + 3707 prop Pc 3708 prop Xwd + 3709 notprop Po 3710 prop Xwd + 3711 notprop Pc 3712 Ket 3713 End 3714------------------------------------------------------------------ 3715 3716/\p{Nl}+\p{Xan} \P{Nl}+\p{Xan} \p{Nl}+\P{Xan} \P{Nl}+\P{Xan}/Bx,ucp 3717------------------------------------------------------------------ 3718 Bra 3719 prop Nl + 3720 prop Xan 3721 notprop Nl + 3722 prop Xan 3723 prop Nl ++ 3724 notprop Xan 3725 notprop Nl + 3726 notprop Xan 3727 Ket 3728 End 3729------------------------------------------------------------------ 3730 3731/\p{Xan}+\p{Nl} \P{Xan}+\p{Nl} \p{Xan}+\P{Nl} \P{Xan}+\P{Nl}/Bx,ucp 3732------------------------------------------------------------------ 3733 Bra 3734 prop Xan + 3735 prop Nl 3736 notprop Xan ++ 3737 prop Nl 3738 prop Xan + 3739 notprop Nl 3740 notprop Xan + 3741 notprop Nl 3742 Ket 3743 End 3744------------------------------------------------------------------ 3745 3746/\p{Xan}+\p{Nd} \P{Xan}+\p{Nd} \p{Xan}+\P{Nd} \P{Xan}+\P{Nd}/Bx,ucp 3747------------------------------------------------------------------ 3748 Bra 3749 prop Xan + 3750 prop Nd 3751 notprop Xan ++ 3752 prop Nd 3753 prop Xan + 3754 notprop Nd 3755 notprop Xan + 3756 notprop Nd 3757 Ket 3758 End 3759------------------------------------------------------------------ 3760 3761# End auto-possessification tests 3762 3763/\w+/B,utf,ucp,auto_callout 3764------------------------------------------------------------------ 3765 Bra 3766 Callout 255 0 3 3767 prop Xwd ++ 3768 Callout 255 3 0 3769 Ket 3770 End 3771------------------------------------------------------------------ 3772 abcd 3773--->abcd 3774 +0 ^ \w+ 3775 +3 ^ ^ End of pattern 3776 0: abcd 3777 3778/[\p{N}]?+/B,no_auto_possess 3779------------------------------------------------------------------ 3780 Bra 3781 [\p{N}]?+ 3782 Ket 3783 End 3784------------------------------------------------------------------ 3785 3786/[\p{L}ab]{2,3}+/B,no_auto_possess 3787------------------------------------------------------------------ 3788 Bra 3789 [ab\p{L}]{2,3}+ 3790 Ket 3791 End 3792------------------------------------------------------------------ 3793 3794/\D+\X \d+\X \S+\X \s+\X \W+\X \w+\X \R+\X \H+\X \h+\X \V+\X \v+\X a+\X \n+\X .+\X/Bx 3795------------------------------------------------------------------ 3796 Bra 3797 \D+ 3798 extuni 3799 \d+ 3800 extuni 3801 \S+ 3802 extuni 3803 \s+ 3804 extuni 3805 \W+ 3806 extuni 3807 \w+ 3808 extuni 3809 \R+ 3810 extuni 3811 \H+ 3812 extuni 3813 \h+ 3814 extuni 3815 \V+ 3816 extuni 3817 \v+ 3818 extuni 3819 a+ 3820 extuni 3821 \x0a+ 3822 extuni 3823 Any+ 3824 extuni 3825 Ket 3826 End 3827------------------------------------------------------------------ 3828 3829/.+\X/Bsx 3830------------------------------------------------------------------ 3831 Bra 3832 AllAny+ 3833 extuni 3834 Ket 3835 End 3836------------------------------------------------------------------ 3837 3838/\X+$/Bmx 3839------------------------------------------------------------------ 3840 Bra 3841 extuni+ 3842 /m $ 3843 Ket 3844 End 3845------------------------------------------------------------------ 3846 3847/\X+\D \X+\d \X+\S \X+\s \X+\W \X+\w \X+. \X+\R \X+\H \X+\h \X+\V \X+\v \X+\X \X+\Z \X+\z \X+$/Bx 3848------------------------------------------------------------------ 3849 Bra 3850 extuni+ 3851 \D 3852 extuni+ 3853 \d 3854 extuni+ 3855 \S 3856 extuni+ 3857 \s 3858 extuni+ 3859 \W 3860 extuni+ 3861 \w 3862 extuni+ 3863 Any 3864 extuni+ 3865 \R 3866 extuni+ 3867 \H 3868 extuni+ 3869 \h 3870 extuni+ 3871 \V 3872 extuni+ 3873 \v 3874 extuni+ 3875 extuni 3876 extuni+ 3877 \Z 3878 extuni++ 3879 \z 3880 extuni+ 3881 $ 3882 Ket 3883 End 3884------------------------------------------------------------------ 3885 3886/\d+\s{0,5}=\s*\S?=\w{0,4}\W*/B,utf,ucp 3887------------------------------------------------------------------ 3888 Bra 3889 prop Nd ++ 3890 prop Xsp {0,5}+ 3891 = 3892 prop Xsp *+ 3893 notprop Xsp ? 3894 = 3895 prop Xwd {0,4}+ 3896 notprop Xwd *+ 3897 Ket 3898 End 3899------------------------------------------------------------------ 3900 3901/[RST]+/Bi,utf,ucp 3902------------------------------------------------------------------ 3903 Bra 3904 [R-Tr-t\x{17f}]++ 3905 Ket 3906 End 3907------------------------------------------------------------------ 3908 3909/[R-T]+/Bi,utf,ucp 3910------------------------------------------------------------------ 3911 Bra 3912 [R-Tr-t\x{17f}]++ 3913 Ket 3914 End 3915------------------------------------------------------------------ 3916 3917/[Q-U]+/Bi,utf,ucp 3918------------------------------------------------------------------ 3919 Bra 3920 [Q-Uq-u\x{17f}]++ 3921 Ket 3922 End 3923------------------------------------------------------------------ 3924 3925/^s?c/Iim,utf 3926Capture group count = 0 3927Options: caseless multiline utf 3928First code unit at start or follows newline 3929Last code unit = 'c' (caseless) 3930Subject length lower bound = 1 3931 scat 3932 0: sc 3933 3934/\X?abc/utf,no_start_optimize 3935 \xff\x7f\x00\x00\x03\x00\x41\xcc\x80\x41\x{300}\x61\x62\x63\x00\=no_utf_check,offset=06 3936 0: A\x{300}abc 3937 3938/\x{100}\x{200}\K\x{300}/utf,startchar 3939 \x{100}\x{200}\x{300} 3940 0: \x{100}\x{200}\x{300} 3941 ^^^^^^^^^^^^^^ 3942 3943# Test UTF characters in a substitution 3944 3945/ábc/utf,replace=XሴZ 3946 123ábc123 3947 1: 123X\x{1234}Z123 3948 3949/(?<=abc)(|def)/g,utf,replace=<$0> 3950 123abcáyzabcdef789abcሴqr 3951 4: 123abc<>\x{e1}yzabc<><def>789abc<>\x{1234}qr 3952 3953/[A-`]/iB,utf 3954------------------------------------------------------------------ 3955 Bra 3956 [A-z\x{212a}\x{17f}] 3957 Ket 3958 End 3959------------------------------------------------------------------ 3960 abcdefghijklmno 3961 0: a 3962 3963/(?<=\K\x{17f})/g,utf,aftertext 3964 \x{17f}\x{17f}\x{17f}\x{17f}\x{17f} 3965 0: \x{17f} 3966 0+ \x{17f}\x{17f}\x{17f}\x{17f} 3967 0: \x{17f} 3968 0+ \x{17f}\x{17f}\x{17f} 3969 0: \x{17f} 3970 0+ \x{17f}\x{17f} 3971 0: \x{17f} 3972 0+ \x{17f} 3973 0: \x{17f} 3974 0+ 3975 3976/(?<=\K\x{17f})/altglobal,utf,aftertext 3977 \x{17f}\x{17f}\x{17f}\x{17f}\x{17f} 3978 0: \x{17f} 3979 0+ \x{17f}\x{17f}\x{17f}\x{17f} 3980 0: \x{17f} 3981 0+ \x{17f}\x{17f}\x{17f} 3982 0: \x{17f} 3983 0+ \x{17f}\x{17f} 3984 0: \x{17f} 3985 0+ \x{17f} 3986 0: \x{17f} 3987 0+ 3988 3989"\xa\xf<(.\pZ*\P{Xwd}+^\xa8\3'3yq.::?(?J:()\xd1+!~:3'(8?:)':(?'d'(?'d'^u]!.+.+\\A\Ah(n+?9){7}+\K;(?'X'u'(?'c'(?'z'(?<y>\xb::\xf0'|\xd3(\xae?'w(z\x8?P>l)\x8?P>a)'\H\R\xd1+!!~:3'(?:h$N{26875}\W+?\\=D{2}\x89(?i:Uy0\N({2\xa(\v\x85*){y*\A(()\p{L}+?\P{^Xan}'+?\xff\+pS\?|).{;y*\A(()\p{L}+?\8}\d?1(|)(/1){7}.+[Lp{Me}].\s\xdcC*?(?(<y>))(?<!^)$C((;*?(R))+(\xbf(R))\x8a\X*?\x8a\xb\xd1^9\3*+(\xc1,\k'R'\xb4)\xcc(z\z(?J)(?'X'\x1b(\xb\xd1^9\?'3*+P{^Xan}+?\xff\+(\xc1.]k+\xb'Pm'\xb4)\xcc4f\xa7'\xd1V(?i:U,{2,2})'(?'X'))?-%--\x95$9*\4'|\xd1(\x9c''%\x94$9)#(?'R')3\x7?('P\xed7'\xa8\xb1^u\xeaw\1\0\0\(|(?1){7}.+[\p{Me}].\s\xdcC*^\x14?(?(<y>))(?<!^)$C((;*?(R*?))+(?(R)\x8a\X*?\x8a\xb\xd1^9\3*+|(\xc1,\k'R'\xb4)\xcc! z)\z(?JJ)(?'X';(\xb\xd1^9\?'3*+(\xc1.]k+\xb'Pm'\xb4))':(?'d')(?'RD'(d')|)|$)'|(?<x>\g{d});\g{x}\x11\g{d}\x81\|$((?'X'\'X'(?'W''\x92()'9'\x83*))\xba*\!?^ <){)':;\xcc4'\xd1'(?'X'28))?-%--\x95$9*\4'|\xd1((''e\x94*$9:)*#(?'R')3)\x7?('P\xed')\\x16:;()\x1e\x10*:(?<y>)\xd1+0!~:(?)'d'E:yD!\s(?'R'\x1e;\x10:U))|'\x9g!\xb0*){)\\x16:;()\x1e\x10\x87*:(?<y>)\xd1+!~:(?)'}'\d'E:yD!\s(?'R'\x1e;\x10:U))|'))|)g!\xb0*R+9{29+)#(?'P'})*?pS\{3,}\x85,{0,}l{*UTF)(\xe{7}){3722,{9,}d{2,?|))|{)\(A?&d}}{\xa,}2}){3,}7,l{)22}(,}l:7{2,4}}29\x19+)#?'P'})*v?))\x5" 3990Failed: error 122 at offset 1227: unmatched closing parenthesis 3991 3992/$(&.+[\p{Me}].\s\xdcC*?(?(<y>))(?<!^)$C((;*?(R))+(?(R)){0,6}?|){12\x8a\X*?\x8a\x0b\xd1^9\3*+(\xc1,\k'P'\xb4)\xcc(z\z(?JJ)(?'X'8};(\x0b\xd1^9\?'3*+(\xc1.]k+\x0b'Pm'\xb4\xcc4'\xd1'(?'X'))?-%--\x95$9*\4'|\xd1(''%\x95*$9)#(?'R')3\x07?('P\xed')\\x16:;()\x1e\x10*:(?<y>)\xd1+!~:(?)''(d'E:yD!\s(?'R'\x1e;\x10:U))|')g!\xb0*){29+))#(?'P'})*?/ 3993 3994"(*UTF)(*UCP)(.UTF).+X(\V+;\^(\D|)!999}(?(?C{7(?C')\H*\S*/^\x5\xa\\xd3\x85n?(;\D*(?m).[^mH+((*UCP)(*U:F)})(?!^)(?'" 3995Failed: error 162 at offset 113: subpattern name expected 3996 3997/[\pS#moq]/ 3998 = 3999 0: = 4000 4001/(*:a\x{12345}b\t(d\)c)xxx/utf,alt_verbnames,mark 4002 cxxxz 4003 0: xxx 4004MK: a\x{12345}b\x{09}(d)c 4005 4006/abcd/utf,replace=x\x{824}y\o{3333}z(\Q12\$34$$\x34\E5$$),substitute_extended 4007 abcd 4008 1: x\x{824}y\x{6db}z(12\$34$$\x345$) 4009 4010/a(\x{e0}\x{101})(\x{c0}\x{102})/utf,replace=a\u$1\U$1\E$1\l$2\L$2\Eab\U\x{e0}\x{101}\L\x{d0}\x{160}\EDone,substitute_extended 4011 a\x{e0}\x{101}\x{c0}\x{102} 4012 1: a\x{c0}\x{101}\x{c0}\x{100}\x{e0}\x{101}\x{e0}\x{102}\x{e0}\x{103}ab\x{c0}\x{100}\x{f0}\x{161}Done 4013 4014/((?<digit>\d)|(?<letter>\p{L}))/g,substitute_extended,replace=<${digit:+digit; :not digit; }${letter:+letter:not a letter}> 4015 ab12cde 4016 7: <not digit; letter><not digit; letter><digit; not a letter><digit; not a letter><not digit; letter><not digit; letter><not digit; letter> 4017 4018/(*UCP)(*UTF)[[:>:]]X/B 4019------------------------------------------------------------------ 4020 Bra 4021 \b 4022 Assert back 4023 Reverse 4024 prop Xwd 4025 Ket 4026 X 4027 Ket 4028 End 4029------------------------------------------------------------------ 4030 4031/abc/utf,replace=xyz 4032 abc\=zero_terminate 4033 1: xyz 4034 4035/a[[:punct:]b]/ucp,bincode 4036------------------------------------------------------------------ 4037 Bra 4038 a 4039 [b[:punct:]] 4040 Ket 4041 End 4042------------------------------------------------------------------ 4043 4044/a[[:punct:]b]/utf,ucp,bincode 4045------------------------------------------------------------------ 4046 Bra 4047 a 4048 [b[:punct:]] 4049 Ket 4050 End 4051------------------------------------------------------------------ 4052 4053/a[b[:punct:]]/utf,ucp,bincode 4054------------------------------------------------------------------ 4055 Bra 4056 a 4057 [b[:punct:]] 4058 Ket 4059 End 4060------------------------------------------------------------------ 4061 4062/[[:^ascii:]]/utf,ucp,bincode 4063------------------------------------------------------------------ 4064 Bra 4065 [\x80-\xff] (neg) 4066 Ket 4067 End 4068------------------------------------------------------------------ 4069 4070/[[:^ascii:]\w]/utf,ucp,bincode 4071------------------------------------------------------------------ 4072 Bra 4073 [\x80-\xff\p{Xwd}\x{100}-\x{10ffff}] 4074 Ket 4075 End 4076------------------------------------------------------------------ 4077 4078/[\w[:^ascii:]]/utf,ucp,bincode 4079------------------------------------------------------------------ 4080 Bra 4081 [\x80-\xff\p{Xwd}\x{100}-\x{10ffff}] 4082 Ket 4083 End 4084------------------------------------------------------------------ 4085 4086/[^[:ascii:]\W]/utf,ucp,bincode 4087------------------------------------------------------------------ 4088 Bra 4089 [^\x00-\x7f\P{Xwd}] 4090 Ket 4091 End 4092------------------------------------------------------------------ 4093 \x{de} 4094 0: \x{de} 4095 \x{200} 4096 0: \x{200} 4097\= Expect no match 4098 \x{300} 4099No match 4100 \x{37e} 4101No match 4102 4103/[[:^ascii:]a]/utf,ucp,bincode 4104------------------------------------------------------------------ 4105 Bra 4106 [a\x80-\xff] (neg) 4107 Ket 4108 End 4109------------------------------------------------------------------ 4110 4111/L(?#(|++<!(2)?/B,utf,no_auto_possess,auto_callout 4112------------------------------------------------------------------ 4113 Bra 4114 Callout 255 0 14 4115 L? 4116 Callout 255 14 0 4117 Ket 4118 End 4119------------------------------------------------------------------ 4120 4121/L(?#(|++<!(2)?/B,utf,ucp,auto_callout 4122------------------------------------------------------------------ 4123 Bra 4124 Callout 255 0 14 4125 L?+ 4126 Callout 255 14 0 4127 Ket 4128 End 4129------------------------------------------------------------------ 4130 4131/(*UTF)C\x09((?<!'(?x)!*H? #\xcc\x9a[^$]/ 4132Failed: error 114 at offset 39: missing closing parenthesis 4133 4134/[\D]/utf 4135 \x{1d7cf} 4136 0: \x{1d7cf} 4137 4138/[\D\P{Nd}]/utf 4139 \x{1d7cf} 4140 0: \x{1d7cf} 4141 4142/[^\D]/utf 4143 a9b 4144 0: 9 4145\= Expect no match 4146 \x{1d7cf} 4147No match 4148 4149/[^\D\P{Nd}]/utf 4150 a9b 4151 0: 9 4152 \x{1d7cf} 4153 0: \x{1d7cf} 4154\= Expect no match 4155 \x{10000} 4156No match 4157 4158# Hex uses pattern length, not zero-terminated. This tests for overrunning 4159# the given length of a pattern. 4160 4161/'(*UTF)'/hex 4162 4163/'#('/hex,extended,utf 4164 4165/a(?<=A\XB)/utf 4166Failed: error 125 at offset 1: lookbehind assertion is not fixed length 4167 4168/ab(?<=A\RB)/utf 4169Failed: error 125 at offset 2: lookbehind assertion is not fixed length 4170 4171/../utf,auto_callout 4172 \n\x{123}\x{123}\x{123}\x{123} 4173--->\x{0a}\x{123}\x{123}\x{123}\x{123} 4174 +0 ^ . 4175 +0 ^ . 4176 +1 ^ ^ . 4177 +2 ^ ^ End of pattern 4178 0: \x{123}\x{123} 4179 4180# This tests processing wide characters in extended mode. 4181 4182/XȀ/x,utf 4183 4184# These three test a bug fix that was not clearing up after a locale setting 4185# when the test or a subsequent one matched a wide character. 4186 4187//locale=C 4188 4189/[\P{Yi}]/utf 4190\x{2f000} 4191 0: \x{2f000} 4192 4193/[\P{Yi}]/utf,locale=C 4194\x{2f000} 4195 0: \x{2f000} 4196 4197/^(?<!(?=))/B,utf 4198------------------------------------------------------------------ 4199 Bra 4200 ^ 4201 Assert back not 4202 Assert 4203 \x{10385c} 4204 Ket 4205 Ket 4206 Ket 4207 End 4208------------------------------------------------------------------ 4209 4210# Horizontal and vertical space lists ignore caseless 4211 4212/[\HH]/Bi,utf 4213------------------------------------------------------------------ 4214 Bra 4215 [\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{10ffff}] 4216 Ket 4217 End 4218------------------------------------------------------------------ 4219 4220/[^\HH]/Bi,utf 4221------------------------------------------------------------------ 4222 Bra 4223 [^\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{10ffff}] 4224 Ket 4225 End 4226------------------------------------------------------------------ 4227 4228//g,utf 4229 \=zero_terminate 4230 0: 4231 4232/^(?1)\p{Nd}{3}(a)/ 4233 a123a 4234 0: a123a 4235 1: a 4236 4237/\p{Nd}{0,3}[\pL](*:abc)(?C1)xxx/callout_info 4238Callout 1 x 4239 4240# --------------------------------------------------------------------------- 4241 4242# A bunch of tests that hit lines of code that others do not (at least when 4243# these were created). 4244 4245/^[^a]{3,}?x/i,utf,no_start_optimize,no_auto_possess 4246\= Expect no match 4247 bbb 4248No match 4249 cc 4250No match 4251 4252/^[ac]{3,}?x/i,utf,no_start_optimize,no_auto_possess 4253\= Expect no match 4254 aaa\x{100} 4255No match 4256 4257/^X\X/no_start_optimize,no_auto_possess 4258\= Expect no match 4259 X 4260No match 4261 4262/^X\p{L&}+?/no_start_optimize,no_auto_possess 4263\= Expect no match 4264 X 4265No match 4266 4267/^X\p{L}+?/no_start_optimize,no_auto_possess 4268\= Expect no match 4269 X 4270No match 4271 4272/^X\p{Lu}+?/no_start_optimize,no_auto_possess 4273\= Expect no match 4274 X 4275No match 4276 4277/^X\p{Arabic}+?/no_start_optimize,no_auto_possess 4278\= Expect no match 4279 X 4280No match 4281 4282/^X\p{Xan}+?/ucp,no_start_optimize,no_auto_possess 4283\= Expect no match 4284 X 4285No match 4286 4287/^X\s+?/ucp,no_start_optimize,no_auto_possess 4288\= Expect no match 4289 X 4290No match 4291 XX 4292No match 4293 4294/^X\S+?/ucp,no_start_optimize,no_auto_possess 4295 XX 4296 0: XX 4297\= Expect no match 4298 X 4299No match 4300 4301/^X\w+?/ucp,no_start_optimize,no_auto_possess 4302\= Expect no match 4303 X 4304No match 4305 4306/^X[^\x{b5}]+?/i,utf,no_start_optimize,no_auto_possess 4307\= Expect no match 4308 X 4309No match 4310 4311/^X[\x{b5}]+?/i,utf,no_start_optimize,no_auto_possess 4312\= Expect no match 4313 X 4314No match 4315 4316/^X\p{Xuc}+?/utf,no_start_optimize,no_auto_possess 4317\= Expect no match 4318 X 4319No match 4320 4321/^X.+?Z/s,utf,no_start_optimize,no_auto_possess 4322\= Expect no match 4323 X 4324No match 4325 4326/^X\R+?/utf,no_start_optimize,no_auto_possess 4327\= Expect no match 4328 X 4329No match 4330 4331/^X\H+?/utf,no_start_optimize,no_auto_possess 4332\= Expect no match 4333 X 4334No match 4335 4336/^X\V+?/utf,no_start_optimize,no_auto_possess 4337\= Expect no match 4338 X 4339No match 4340 4341/^X\s+?/utf,no_start_optimize,no_auto_possess 4342\= Expect no match 4343 X 4344No match 4345 XX 4346No match 4347 4348/^X\S+?/utf,no_start_optimize,no_auto_possess 4349\= Expect no match 4350 X 4351No match 4352 4353/^X\p{Any}{1,3}?Z/s,no_start_optimize,no_auto_possess 4354 XYYYZ 4355 0: XYYYZ 4356\= Expect no match 4357 XY 4358No match 4359 XYY 4360No match 4361 XYYY 4362No match 4363 XYYYYZ 4364No match 4365 4366/^X\p{L&}{1,3}?Z/s,no_start_optimize,no_auto_possess 4367\= Expect no match 4368 XY 4369No match 4370 XY! 4371No match 4372 4373/^X\p{L}{1,3}?Z/s,no_start_optimize,no_auto_possess 4374\= Expect no match 4375 XY 4376No match 4377 XY! 4378No match 4379 4380/^X\p{Lu}{1,3}?Z/s,no_start_optimize,no_auto_possess 4381\= Expect no match 4382 XY 4383No match 4384 XY! 4385No match 4386 4387/^X\P{Han}{1,3}?Z/s,utf,no_start_optimize,no_auto_possess 4388\= Expect no match 4389 XY 4390No match 4391 XY! 4392No match 4393 XY\x{2f00}! 4394No match 4395 4396/^X\p{Xan}{1,3}?Z/s,no_start_optimize,no_auto_possess 4397\= Expect no match 4398 XY 4399No match 4400 XY! 4401No match 4402 4403/^X\p{Xsp}{1,3}?Z/s,no_start_optimize,no_auto_possess 4404\= Expect no match 4405 X\n 4406No match 4407 X\n! 4408No match 4409 X\n\n! 4410No match 4411 4412/^X\P{Xsp}{1,3}?Z/s,no_start_optimize,no_auto_possess 4413\= Expect no match 4414 XYY\n 4415No match 4416 4417/^X\p{Xwd}{1,3}?Z/s,no_start_optimize,no_auto_possess 4418\= Expect no match 4419 XY 4420No match 4421 XY! 4422No match 4423 XYY! 4424No match 4425 4426/^X\x{b5}+?Z/i,utf,no_start_optimize,no_auto_possess 4427\= Expect no match 4428 X 4429No match 4430 X\x{b5} 4431No match 4432 X\x{b5}\x{b5}Y 4433No match 4434 4435/^X\p{Xuc}+?Z/utf,no_start_optimize,no_auto_possess 4436\= Expect no match 4437 X 4438No match 4439 X$ 4440No match 4441 X@@Y 4442No match 4443 4444/(*CRLF)^X.+?Z/utf,no_start_optimize,no_auto_possess 4445\= Expect partial match 4446 XYY\r\=ph 4447Partial match: XYY\x{0d} 4448\= Expect no match 4449 X 4450No match 4451 4452/^X.+?Z/s,utf,no_start_optimize,no_auto_possess 4453\= Expect no match 4454 X 4455No match 4456 XYY 4457No match 4458 4459/^X\R+?Z/utf,no_start_optimize,no_auto_possess 4460\= Expect no match 4461 X\nX 4462No match 4463 X\n\rX 4464No match 4465 X\n\r\nX 4466No match 4467 X\n\n 4468No match 4469 X\n\x{0c} 4470No match 4471 4472/(*BSR_ANYCRLF)^X\R+?Z/utf,no_start_optimize,no_auto_possess 4473\= Expect no match 4474 X\nX 4475No match 4476 X\n\rX 4477No match 4478 X\n\r\nX 4479No match 4480 X\n\n 4481No match 4482 X\n\x{0c} 4483No match 4484 4485/^X\H+?Z/utf,no_start_optimize,no_auto_possess 4486\= Expect no match 4487 XY\t 4488No match 4489 XYY 4490No match 4491 4492/^X\h+?Z/utf,no_start_optimize,no_auto_possess 4493\= Expect no match 4494 X\t\t 4495No match 4496 X\tY 4497No match 4498 4499/^X\V+?Z/utf,no_start_optimize,no_auto_possess 4500\= Expect no match 4501 XY\n 4502No match 4503 XYY 4504No match 4505 4506/^X\v+?Z/utf,no_start_optimize,no_auto_possess 4507\= Expect no match 4508 X\n\n 4509No match 4510 X\nY 4511No match 4512 4513/^X\D+?Z/utf,no_start_optimize,no_auto_possess 4514\= Expect no match 4515 XY9 4516No match 4517 XYY 4518No match 4519 4520/^X\d+?Z/utf,no_start_optimize,no_auto_possess 4521\= Expect no match 4522 X99 4523No match 4524 X9Y 4525No match 4526 4527/^X\S+?Z/utf,no_start_optimize,no_auto_possess 4528\= Expect no match 4529 XY\n 4530No match 4531 XYY 4532No match 4533 4534/^X\s+?Z/utf,no_start_optimize,no_auto_possess 4535\= Expect no match 4536 X\n\n 4537No match 4538 X\nY 4539No match 4540 4541/^X\W+?Z/utf,no_start_optimize,no_auto_possess 4542\= Expect no match 4543 X.A 4544No match 4545 X++ 4546No match 4547 4548/^X\p{L&}{1,3}Z/no_start_optimize,no_auto_possess 4549\= Expect no match 4550 XY 4551No match 4552 XY! 4553No match 4554 4555/^X\p{L}{1,3}Z/no_start_optimize,no_auto_possess 4556\= Expect no match 4557 XY 4558No match 4559 4560/^X\p{Xan}{1,3}Z/no_start_optimize,no_auto_possess 4561\= Expect no match 4562 XY 4563No match 4564 4565/^X\P{Xsp}{1,3}Z/no_start_optimize,no_auto_possess 4566\= Expect no match 4567 XYY 4568No match 4569 4570/^X\p{Xuc}+Z/utf,no_start_optimize,no_auto_possess 4571\= Expect no match 4572 X$ 4573No match 4574 4575# ---------------------------------------------------------------------- 4576# These test the dangerous PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL option. 4577 4578/\x{d800}/B,utf,bad_escape_is_literal 4579------------------------------------------------------------------ 4580 Bra 4581 x{d800} 4582 Ket 4583 End 4584------------------------------------------------------------------ 4585 4586/\ud800/B,utf,alt_bsux,bad_escape_is_literal 4587------------------------------------------------------------------ 4588 Bra 4589 ud800 4590 Ket 4591 End 4592------------------------------------------------------------------ 4593 4594# ---------------------------------------------------------------------- 4595 4596/Aሴ+B/literal,utf,no_utf_check 4597 Aሴ+B 4598 0: A\x{1234}+B 4599 4600# These are here because I upgraded to Unicode 10.0.0 before Perl did, so it 4601# doesn't recognize all these scripts. In time these three tests can be moved 4602# to test 4. 4603 4604/^(\p{Adlam}+)(\p{Bhaiksuki}+)(\p{Marchen}+)(\p{Newa}+)(\p{Osage}+) 4605 (\p{Tangut}+)(\p{Masaram_Gondi}+)(\p{Nushu}+)(\p{Soyombo}+) 4606 (\p{Zanabazar_Square}+)/x,utf 4607 \x{1E900}\x{1E924}\x{1E953}\x{11C00}\x{11C2D}\x{11C3E}\x{11C70}\x{11C77}\x{11CAB}\x{11400}\x{1142F}\x{11455}\x{104B0}\x{104D8}\x{104FB}\x{16FE0}\x{18800}\x{18AF2}\x{11D00}\x{11D3A}\x{11D59}\x{16FE1}\x{1B170}\x{1B2FB}\x{11A50}\x{11A58}\x{11AA2}\x{11A00}\x{11A07}\x{11A47} 4608 0: \x{1e900}\x{1e924}\x{1e953}\x{11c00}\x{11c2d}\x{11c3e}\x{11c70}\x{11c77}\x{11cab}\x{11400}\x{1142f}\x{11455}\x{104b0}\x{104d8}\x{104fb}\x{16fe0}\x{18800}\x{18af2}\x{11d00}\x{11d3a}\x{11d59}\x{16fe1}\x{1b170}\x{1b2fb}\x{11a50}\x{11a58}\x{11aa2}\x{11a00}\x{11a07}\x{11a47} 4609 1: \x{1e900}\x{1e924}\x{1e953} 4610 2: \x{11c00}\x{11c2d}\x{11c3e} 4611 3: \x{11c70}\x{11c77}\x{11cab} 4612 4: \x{11400}\x{1142f}\x{11455} 4613 5: \x{104b0}\x{104d8}\x{104fb} 4614 6: \x{16fe0}\x{18800}\x{18af2} 4615 7: \x{11d00}\x{11d3a}\x{11d59} 4616 8: \x{16fe1}\x{1b170}\x{1b2fb} 4617 9: \x{11a50}\x{11a58}\x{11aa2} 461810: \x{11a00}\x{11a07}\x{11a47} 4619 4620/^\x{1E900}\x{104B0}/i,utf 4621 \x{1E900}\x{104B0} 4622 0: \x{1e900}\x{104b0} 4623 \x{1E922}\x{104D8} 4624 0: \x{1e922}\x{104d8} 4625 4626/^(?:(\X)(?C))+$/utf 4627 \x{1E900}\x{1E924}\x{1E953}\x{11C00}\x{11C2D}\x{11C3E}\x{11C70}\x{11C77}\x{11CAB}\x{11400}\x{1142F}\x{11455}\x{104B0}\x{104D8}\x{104FB}\x{16FE0}\x{18800}\x{18AF2}\x{11D00}\x{11D3A}\x{11D59}\x{16FE1}\x{1B170}\x{1B2FB}\x{11A50}\x{11A58}\x{11AA2}\x{11A00}\x{11A07}\x{11A47}\=callout_capture,callout_no_where 4628Callout 0: last capture = 1 4629 1: \x{1e900} 4630Callout 0: last capture = 1 4631 1: \x{1e924} 4632Callout 0: last capture = 1 4633 1: \x{1e953} 4634Callout 0: last capture = 1 4635 1: \x{11c00} 4636Callout 0: last capture = 1 4637 1: \x{11c2d}\x{11c3e} 4638Callout 0: last capture = 1 4639 1: \x{11c70} 4640Callout 0: last capture = 1 4641 1: \x{11c77}\x{11cab} 4642Callout 0: last capture = 1 4643 1: \x{11400} 4644Callout 0: last capture = 1 4645 1: \x{1142f} 4646Callout 0: last capture = 1 4647 1: \x{11455} 4648Callout 0: last capture = 1 4649 1: \x{104b0} 4650Callout 0: last capture = 1 4651 1: \x{104d8} 4652Callout 0: last capture = 1 4653 1: \x{104fb} 4654Callout 0: last capture = 1 4655 1: \x{16fe0} 4656Callout 0: last capture = 1 4657 1: \x{18800} 4658Callout 0: last capture = 1 4659 1: \x{18af2} 4660Callout 0: last capture = 1 4661 1: \x{11d00}\x{11d3a} 4662Callout 0: last capture = 1 4663 1: \x{11d59} 4664Callout 0: last capture = 1 4665 1: \x{16fe1} 4666Callout 0: last capture = 1 4667 1: \x{1b170} 4668Callout 0: last capture = 1 4669 1: \x{1b2fb} 4670Callout 0: last capture = 1 4671 1: \x{11a50}\x{11a58} 4672Callout 0: last capture = 1 4673 1: \x{11aa2} 4674Callout 0: last capture = 1 4675 1: \x{11a00}\x{11a07}\x{11a47} 4676 0: \x{1e900}\x{1e924}\x{1e953}\x{11c00}\x{11c2d}\x{11c3e}\x{11c70}\x{11c77}\x{11cab}\x{11400}\x{1142f}\x{11455}\x{104b0}\x{104d8}\x{104fb}\x{16fe0}\x{18800}\x{18af2}\x{11d00}\x{11d3a}\x{11d59}\x{16fe1}\x{1b170}\x{1b2fb}\x{11a50}\x{11a58}\x{11aa2}\x{11a00}\x{11a07}\x{11a47} 4677 1: \x{11a00}\x{11a07}\x{11a47} 4678 4679# Similarly for Unicode 11.0.0 4680 4681/^(\p{Dogra}+)(\p{Gunjala_Gondi}+)(\p{Hanifi_Rohingya}+)(\p{Makasar}+) 4682 (\p{Medefaidrin}+)(\p{Old_Sogdian}+)(\p{Sogdian}+)/x,utf 4683 \x{11800}\x{11da9}\x{10d27}\x{11ee0}\x{16e48}\x{10f27}\x{10f30} 4684 0: \x{11800}\x{11da9}\x{10d27}\x{11ee0}\x{16e48}\x{10f27}\x{10f30} 4685 1: \x{11800} 4686 2: \x{11da9} 4687 3: \x{10d27} 4688 4: \x{11ee0} 4689 5: \x{16e48} 4690 6: \x{10f27} 4691 7: \x{10f30} 4692 4693# These two are here because of differences from Perl. 4694 4695/^\X/utf 4696 A\x{200d}B A ZWJ 4697 0: A\x{200d} 4698 \x{261d}\x{261d}B Extended_Pictographic Extended_Pictographic 4699 0: \x{261d}\x{261d} 4700 \x{261D}\x{1F3FB}B Extended_Pictographic Extend 4701 0: \x{261d}\x{1f3fb} 4702 \x{1F1E6}\x{1F1E7}B RegionalIndicator RegionalIndicator 4703 0: \x{1f1e6}\x{1f1e7} 4704 \x{261D}\x{1F3FB}\x{261d}B Extended_Pictographic Extend E-P 4705 0: \x{261d}\x{1f3fb}\x{261d} 4706 \x{261D}\x{1F3FB}\x{200d}\x{261d}B Extended_Pictographic Extend ZWJ E-P 4707 0: \x{261d}\x{1f3fb}\x{200d}\x{261d} 4708 4709# Regional indicators 4710 4711/^(\X)(\X)/utf,aftertext 4712 \x{1F1E6}\x{1F1E7}\x{1F1E7}B 4713 0: \x{1f1e6}\x{1f1e7}\x{1f1e7} 4714 0+ B 4715 1: \x{1f1e6}\x{1f1e7} 4716 2: \x{1f1e7} 4717 \x{1F1E6}\x{1F1E7}\x{1F1E7}\x{1F1E6}B 4718 0: \x{1f1e6}\x{1f1e7}\x{1f1e7}\x{1f1e6} 4719 0+ B 4720 1: \x{1f1e6}\x{1f1e7} 4721 2: \x{1f1e7}\x{1f1e6} 4722 4723# More differences from Perl 4724 4725/^[\p{Arabic}]/utf 4726\= Expect no match 4727 \x{650} 4728No match 4729 \x{651} 4730No match 4731 \x{652} 4732No match 4733 \x{653} 4734No match 4735 \x{654} 4736No match 4737 \x{655} 4738No match 4739 4740/^\p{Common}/utf 4741 \x{60c} 4742 0: \x{60c} 4743 \x{61f} 4744 0: \x{61f} 4745 \x{964} 4746 0: \x{964} 4747 \x{965} 4748 0: \x{965} 4749 4750/^\p{Inherited}/utf 4751 \x{64b} 4752 0: \x{64b} 4753 \x{654} 4754 0: \x{654} 4755 \x{655} 4756 0: \x{655} 4757 \x{1D1AA} 4758 0: \x{1d1aa} 4759 4760/\N{U+}/ 4761Failed: error 193 at offset 2: \N{U+dddd} is supported only in Unicode (UTF) mode 4762 4763/\N{U+}/utf 4764Failed: error 178 at offset 5: digits missing in \x{} or \o{} or \N{U+} 4765 4766/\N{U}/ 4767Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u 4768 4769# This tests the non-UTF Unicode NEL pattern whitespace character, only 4770# recognized by PCRE2 with /x when there is Unicode support. 4771 4772/A 4773 4774�B/x 4775 AB 4776 0: AB 4777 4778# This tests Unicode Pattern White Space characters in verb names when they 4779# are being processed with PCRE2_EXTENDED. Note: there are UTF-8 characters 4780# with code points greater than 255 between A, B, and C in the pattern. 4781 4782/(*: AB C)abc/x,utf,mark,alt_verbnames 4783 abc 4784 0: abc 4785MK: ABC 4786 4787# Script run tests: auto-possessification 4788 4789/^(*sr:.*)/B,utf 4790------------------------------------------------------------------ 4791 Bra 4792 ^ 4793 Script run 4794 Any* 4795 Ket 4796 Ket 4797 End 4798------------------------------------------------------------------ 4799 paypаl.com A classic example of why script run checks are a good thing 4800 0: payp 4801 4802/^(*sr:.*(*ACCEPT))/utf 4803 paypаl.com But *ACCEPT breaks things 4804 0: payp\x{430}l.com But *ACCEPT breaks things 4805 4806/^(*sr:\x{2e80}*)/B,utf 4807------------------------------------------------------------------ 4808 Bra 4809 ^ 4810 Script run 4811 \x{2e80}*+ 4812 Ket 4813 Ket 4814 End 4815------------------------------------------------------------------ 4816 4817/^(*sr:\x{2e80}*)\x{2e80}/B,utf 4818------------------------------------------------------------------ 4819 Bra 4820 ^ 4821 Script run 4822 \x{2e80}* 4823 Ket 4824 \x{2e80} 4825 Ket 4826 End 4827------------------------------------------------------------------ 4828 4829/(?<!)(*sr:)/B 4830------------------------------------------------------------------ 4831 Bra 4832 Assert back not 4833 Ket 4834 Script run 4835 Ket 4836 Ket 4837 End 4838------------------------------------------------------------------ 4839 4840/(?<=abc(?=X(*sr:BXY)CCC)XBXYCCC)./B 4841------------------------------------------------------------------ 4842 Bra 4843 Assert back 4844 Reverse 4845 abc 4846 Assert 4847 X 4848 Script run 4849 BXY 4850 Ket 4851 CCC 4852 Ket 4853 XBXYCCC 4854 Ket 4855 Any 4856 Ket 4857 End 4858------------------------------------------------------------------ 4859 abcXBXYCCC! 4860 0: ! 4861 4862# Some script run patterns are broken in Perl 5.28.0. These can be moved into 4863# test 4 when a mended version of Perl is released. 4864 4865/^(*sr:.{4})/utf 4866 \x{0980}12\x{0993} Bengali Common-digits Bengali 4867 0: \x{980}12\x{993} 4868 \x{0780}12\x{07b1} Thaana Common-digits Thaana 4869 0: \x{780}12\x{7b1} 4870 \x{0e01}12\x{0e5b} Thai Common-digits Thai 4871 0: \x{e01}12\x{e5b} 4872 \x{1780}12\x{19ff} Khmer Common-digits Khmer 4873 0: \x{1780}12\x{19ff} 4874 \x{0904}12\x{0939} Devanagari Common-digits Devanagari 4875 0: \x{904}12\x{939} 4876 A\x{ff10}\x{ff19}B Latin Common-notascii-digits Latin 4877 0: A\x{ff10}\x{ff19}B 4878 A\x{1d7ce}\x{1d7cf}B Latin fancy-common-digits Latin 4879 0: A\x{1d7ce}\x{1d7cf}B 4880 4881# These ones involve non-ASCII but nevertheless Common digits. As of October 4882# 2018 even blead Perl wasn't handling all of these - but is going to. 4883 4884/^(*sr:.{4})/utf 4885 A\x{ff10}\x{ff19}B Latin Common-notascii-digits Latin 4886 0: A\x{ff10}\x{ff19}B 4887 \x{ff10}\x{ff19}.. Common-notascii-digits Common Common 4888 0: \x{ff10}\x{ff19}.. 4889 A\x{ff10}BC Latin Common-notascii-digit Latin Latin 4890 0: A\x{ff10}BC 4891 A\x{1d7ce}\x{1d7cf}B Latin fancy-common-digits Latin 4892 0: A\x{1d7ce}\x{1d7cf}B 4893 \x{1d7ce}\x{1d7cf},, fancy-common-digits Common Common 4894 0: \x{1d7ce}\x{1d7cf},, 4895 A\x{1d7ce}BC Latin fancy-common-digit Latin Latin 4896 0: A\x{1d7ce}BC 4897 4898# Some Unicode 12.1.0 new script characters 4899 4900/\p{Elymaic}\p{Nandinagari}\p{Nyiakeng_Puachue_Hmong}\p{Wancho}/utf 4901 \x{10fe5}\x{119AC}\x{1E10E}\x{1E2D1} 4902 0: \x{10fe5}\x{119ac}\x{1e10e}\x{1e2d1} 4903 4904# Some Unicode 13.0.0 new script characters 4905 4906/\p{Chorasmian}\p{Dives_Akuru}\p{Khitan_Small_Script}\p{Yezidi}/utf 4907 \x{10FB0}\x{11900}\x{18B00}\x{10E80} 4908 0: \x{10fb0}\x{11900}\x{18b00}\x{10e80} 4909 4910# ------- 4911 4912# Test reference and errors in non-ASCII characters in group names 4913 4914/(?'ABC'...)/I,utf 4915Capture group count = 1 4916Named capture groups: 4917 ABC 1 4918Options: utf 4919Subject length lower bound = 3 4920 abcde\=copy=ABC 4921 0: abc 4922 1: abc 4923 C abc (3) ABC (group 1) 4924 4925# Bad ones 4926 4927/(?'AB၌C'...)\g{AB၌C}/utf 4928Failed: error 142 at offset 5: syntax error in subpattern name (missing terminator?) 4929 4930/(?'٠ABC'...)/utf 4931Failed: error 144 at offset 3: subpattern name must start with a non-digit 4932 4933/(?'²ABC'...)/utf 4934Failed: error 162 at offset 3: subpattern name expected 4935 4936/(?'X²ABC'...)/utf 4937Failed: error 142 at offset 4: syntax error in subpattern name (missing terminator?) 4938 4939# ------- 4940 4941/\p{Any}*xyz/I 4942Capture group count = 0 4943Compile options: <none> 4944Overall options: anchored 4945Last code unit = 'z' 4946Subject length lower bound = 3 4947 4948/(|�)7/caseless,ucp 4949 4950/(\xc1)\1/i,ucp 4951 \xc1\xe1\=no_jit 4952 0: \xc1\xe1 4953 1: \xc1 4954 4955# End of testinput5 4956