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