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 # PCRE2 and Perl disagree about the characteristics of certain Unicode 7 # characters. For example, 061C is considered by Perl to be Arabic, though 8 # is it not listed as such in the Unicode Scripts.txt file, and 2066-2069 are 9 # graphic and printable according to Perl, though they are actually "isolate" 10 # control characters. That is why the following tests are here rather than in 11 # test 4. 12 13 /^[\p{Arabic}]/utf 14 \= Expect no match 15 \x{061c} 16 No match 17 18 /^[[:graph:]]+$/utf,ucp 19 \= Expect no match 20 \x{61c} 21 No match 22 \x{2066} 23 No match 24 \x{2067} 25 No match 26 \x{2068} 27 No match 28 \x{2069} 29 No match 30 31 /^[[:print:]]+$/utf,ucp 32 \= Expect no match 33 \x{61c} 34 No match 35 \x{2066} 36 No match 37 \x{2067} 38 No match 39 \x{2068} 40 No match 41 \x{2069} 42 No match 43 44 /^[[:^graph:]]+$/utf,ucp 45 \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{61c}\x{1680} 46 0: \x{09}\x{0a}\x{1d} \x{85}\x{a0}\x{61c}\x{1680} 47 \x{2028}\x{2029}\x{202f}\x{2065}\x{2066}\x{2067}\x{2068}\x{2069} 48 0: \x{2028}\x{2029}\x{202f}\x{2065}\x{2066}\x{2067}\x{2068}\x{2069} 49 50 /^[[:^print:]]+$/utf,ucp 51 \x{09}\x{1D}\x{85}\x{61c}\x{2028}\x{2029}\x{2065}\x{2066}\x{2067} 52 0: \x{09}\x{1d}\x{85}\x{61c}\x{2028}\x{2029}\x{2065}\x{2066}\x{2067} 53 \x{2068}\x{2069} 54 0: \x{2068}\x{2069} 55 56 # Perl does not consider U+180e to be a space character. It is true that it 57 # does not appear in the Unicode PropList.txt file as such, but in many other 58 # sources it is listed as a space, and has been treated as such in PCRE for 59 # a long time. 60 61 /^>[[:blank:]]*/utf,ucp 62 >\x{20}\x{a0}\x{1680}\x{180e}\x{2000}\x{202f}\x{9}\x{b}\x{2028} 63 0: > \x{a0}\x{1680}\x{180e}\x{2000}\x{202f}\x{09} 64 65 /^A\s+Z/utf,ucp 66 A\x{85}\x{180e}\x{2005}Z 67 0: A\x{85}\x{180e}\x{2005}Z 68 69 /^A[\s]+Z/utf,ucp 70 A\x{2005}Z 71 0: A\x{2005}Z 72 A\x{85}\x{2005}Z 73 0: A\x{85}\x{2005}Z 74 75 /^[[:graph:]]+$/utf,ucp 76 \= Expect no match 77 \x{180e} 78 No match 79 80 /^[[:print:]]+$/utf,ucp 81 \x{180e} 82 0: \x{180e} 83 84 /^[[:^graph:]]+$/utf,ucp 85 \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{61c}\x{1680}\x{180e} 86 0: \x{09}\x{0a}\x{1d} \x{85}\x{a0}\x{61c}\x{1680}\x{180e} 87 88 /^[[:^print:]]+$/utf,ucp 89 \= Expect no match 90 \x{180e} 91 No match 92 93 # End of U+180E tests. 94 95 # --------------------------------------------------------------------- 96 97 /\x{110000}/IB,utf 98 Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large 99 100 /\o{4200000}/IB,utf 101 Failed: error 134 at offset 10: character code point value in \x{} or \o{} is too large 102 103 /\x{ffffffff}/utf 104 Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large 105 106 /\o{37777777777}/utf 107 Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large 108 109 /\x{100000000}/utf 110 Failed: error 134 at offset 12: character code point value in \x{} or \o{} is too large 111 112 /\o{77777777777}/utf 113 Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large 114 115 /\x{d800}/utf 116 Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) 117 118 /\o{154000}/utf 119 Failed: error 173 at offset 9: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) 120 121 /\x{dfff}/utf 122 Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) 123 124 /\o{157777}/utf 125 Failed: error 173 at offset 9: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) 126 127 /\x{d7ff}/utf 128 129 /\o{153777}/utf 130 131 /\x{e000}/utf 132 133 /\o{170000}/utf 134 135 /^\x{100}a\x{1234}/utf 136 \x{100}a\x{1234}bcd 137 0: \x{100}a\x{1234} 138 139 /\x{0041}\x{2262}\x{0391}\x{002e}/IB,utf 140 ------------------------------------------------------------------ 141 Bra 142 A\x{2262}\x{391}. 143 Ket 144 End 145 ------------------------------------------------------------------ 146 Capturing subpattern count = 0 147 Options: utf 148 First code unit = 'A' 149 Last code unit = '.' 150 Subject length lower bound = 4 151 \x{0041}\x{2262}\x{0391}\x{002e} 152 0: A\x{2262}\x{391}. 153 154 /.{3,5}X/IB,utf 155 ------------------------------------------------------------------ 156 Bra 157 Any{3} 158 Any{0,2} 159 X 160 Ket 161 End 162 ------------------------------------------------------------------ 163 Capturing subpattern count = 0 164 Options: utf 165 Last code unit = 'X' 166 Subject length lower bound = 4 167 \x{212ab}\x{212ab}\x{212ab}\x{861}X 168 0: \x{212ab}\x{212ab}\x{212ab}\x{861}X 169 170 /.{3,5}?/IB,utf 171 ------------------------------------------------------------------ 172 Bra 173 Any{3} 174 Any{0,2}? 175 Ket 176 End 177 ------------------------------------------------------------------ 178 Capturing subpattern count = 0 179 Options: utf 180 Subject length lower bound = 3 181 \x{212ab}\x{212ab}\x{212ab}\x{861} 182 0: \x{212ab}\x{212ab}\x{212ab} 183 184 /^[ab]/IB,utf 185 ------------------------------------------------------------------ 186 Bra 187 ^ 188 [ab] 189 Ket 190 End 191 ------------------------------------------------------------------ 192 Capturing subpattern count = 0 193 Compile options: utf 194 Overall options: anchored utf 195 Subject length lower bound = 1 196 bar 197 0: b 198 \= Expect no match 199 c 200 No match 201 \x{ff} 202 No match 203 \x{100} 204 No match 205 206 /^[^ab]/IB,utf 207 ------------------------------------------------------------------ 208 Bra 209 ^ 210 [\x00-`c-\xff] (neg) 211 Ket 212 End 213 ------------------------------------------------------------------ 214 Capturing subpattern count = 0 215 Compile options: utf 216 Overall options: anchored utf 217 Subject length lower bound = 1 218 c 219 0: c 220 \x{ff} 221 0: \x{ff} 222 \x{100} 223 0: \x{100} 224 \= Expect no match 225 aaa 226 No match 227 228 /\x{100}*(\d+|"(?1)")/utf 229 1234 230 0: 1234 231 1: 1234 232 "1234" 233 0: "1234" 234 1: "1234" 235 \x{100}1234 236 0: \x{100}1234 237 1: 1234 238 "\x{100}1234" 239 0: \x{100}1234 240 1: 1234 241 \x{100}\x{100}12ab 242 0: \x{100}\x{100}12 243 1: 12 244 \x{100}\x{100}"12" 245 0: \x{100}\x{100}"12" 246 1: "12" 247 \= Expect no match 248 \x{100}\x{100}abcd 249 No match 250 251 /\x{100}*/IB,utf 252 ------------------------------------------------------------------ 253 Bra 254 \x{100}*+ 255 Ket 256 End 257 ------------------------------------------------------------------ 258 Capturing subpattern count = 0 259 May match empty string 260 Options: utf 261 Subject length lower bound = 0 262 263 /a\x{100}*/IB,utf 264 ------------------------------------------------------------------ 265 Bra 266 a 267 \x{100}*+ 268 Ket 269 End 270 ------------------------------------------------------------------ 271 Capturing subpattern count = 0 272 Options: utf 273 First code unit = 'a' 274 Subject length lower bound = 1 275 276 /ab\x{100}*/IB,utf 277 ------------------------------------------------------------------ 278 Bra 279 ab 280 \x{100}*+ 281 Ket 282 End 283 ------------------------------------------------------------------ 284 Capturing subpattern count = 0 285 Options: utf 286 First code unit = 'a' 287 Last code unit = 'b' 288 Subject length lower bound = 2 289 290 /[\x{200}-\x{100}]/utf 291 Failed: error 108 at offset 15: range out of order in character class 292 293 /[-]/utf 294 \x{100} 295 0: \x{100} 296 \x{104} 297 0: \x{104} 298 \= Expect no match 299 \x{105} 300 No match 301 \x{ff} 302 No match 303 304 /[\xFF]/IB 305 ------------------------------------------------------------------ 306 Bra 307 \x{ff} 308 Ket 309 End 310 ------------------------------------------------------------------ 311 Capturing subpattern count = 0 312 First code unit = \xff 313 Subject length lower bound = 1 314 >\xff< 315 0: \xff 316 317 /[^\xFF]/IB 318 ------------------------------------------------------------------ 319 Bra 320 [^\x{ff}] 321 Ket 322 End 323 ------------------------------------------------------------------ 324 Capturing subpattern count = 0 325 Subject length lower bound = 1 326 327 /[-]/utf 328 # Matches without Study 329 0: \x{d6} 330 \x{d6} 331 0: \x{d6} 332 333 /[-]/utf 334 <-- Same with Study 335 0: \x{d6} 336 \x{d6} 337 0: \x{d6} 338 339 /[\x{c4}-\x{dc}]/utf 340 # Matches without Study 341 0: \x{d6} 342 \x{d6} 343 0: \x{d6} 344 345 /[\x{c4}-\x{dc}]/utf 346 <-- Same with Study 347 0: \x{d6} 348 \x{d6} 349 0: \x{d6} 350 351 /[^\x{100}]abc(xyz(?1))/IB,utf 352 ------------------------------------------------------------------ 353 Bra 354 [^\x{100}] 355 abc 356 CBra 1 357 xyz 358 Recurse 359 Ket 360 Ket 361 End 362 ------------------------------------------------------------------ 363 Capturing subpattern count = 1 364 Options: utf 365 Last code unit = 'z' 366 Subject length lower bound = 7 367 368 /(\x{100}(b(?2)c))?/IB,utf 369 ------------------------------------------------------------------ 370 Bra 371 Brazero 372 CBra 1 373 \x{100} 374 CBra 2 375 b 376 Recurse 377 c 378 Ket 379 Ket 380 Ket 381 End 382 ------------------------------------------------------------------ 383 Capturing subpattern count = 2 384 May match empty string 385 Options: utf 386 Subject length lower bound = 0 387 388 /(\x{100}(b(?2)c)){0,2}/IB,utf 389 ------------------------------------------------------------------ 390 Bra 391 Brazero 392 Bra 393 CBra 1 394 \x{100} 395 CBra 2 396 b 397 Recurse 398 c 399 Ket 400 Ket 401 Brazero 402 CBra 1 403 \x{100} 404 CBra 2 405 b 406 Recurse 407 c 408 Ket 409 Ket 410 Ket 411 Ket 412 End 413 ------------------------------------------------------------------ 414 Capturing subpattern count = 2 415 May match empty string 416 Options: utf 417 Subject length lower bound = 0 418 419 /(\x{100}(b(?1)c))?/IB,utf 420 ------------------------------------------------------------------ 421 Bra 422 Brazero 423 CBra 1 424 \x{100} 425 CBra 2 426 b 427 Recurse 428 c 429 Ket 430 Ket 431 Ket 432 End 433 ------------------------------------------------------------------ 434 Capturing subpattern count = 2 435 May match empty string 436 Options: utf 437 Subject length lower bound = 0 438 439 /(\x{100}(b(?1)c)){0,2}/IB,utf 440 ------------------------------------------------------------------ 441 Bra 442 Brazero 443 Bra 444 CBra 1 445 \x{100} 446 CBra 2 447 b 448 Recurse 449 c 450 Ket 451 Ket 452 Brazero 453 CBra 1 454 \x{100} 455 CBra 2 456 b 457 Recurse 458 c 459 Ket 460 Ket 461 Ket 462 Ket 463 End 464 ------------------------------------------------------------------ 465 Capturing subpattern count = 2 466 May match empty string 467 Options: utf 468 Subject length lower bound = 0 469 470 /\W/utf 471 A.B 472 0: . 473 A\x{100}B 474 0: \x{100} 475 476 /\w/utf 477 \x{100}X 478 0: X 479 480 /^\/IB,utf 481 ------------------------------------------------------------------ 482 Bra 483 ^ 484 \x{1234} 485 Ket 486 End 487 ------------------------------------------------------------------ 488 Capturing subpattern count = 0 489 Compile options: utf 490 Overall options: anchored utf 491 Subject length lower bound = 1 492 493 /()()()()()()()()()() 494 ()()()()()()()()()() 495 ()()()()()()()()()() 496 ()()()()()()()()()() 497 A (x) (?41) B/x,utf 498 AxxB 499 Matched, but too many substrings 500 0: AxxB 501 1: 502 2: 503 3: 504 4: 505 5: 506 6: 507 7: 508 8: 509 9: 510 10: 511 11: 512 12: 513 13: 514 14: 515 516 /^[\x{100}\E-\Q\E\x{150}]/B,utf 517 ------------------------------------------------------------------ 518 Bra 519 ^ 520 [\x{100}-\x{150}] 521 Ket 522 End 523 ------------------------------------------------------------------ 524 525 /^[\Q\E-\Q\E]/B,utf 526 ------------------------------------------------------------------ 527 Bra 528 ^ 529 [\x{100}-\x{150}] 530 Ket 531 End 532 ------------------------------------------------------------------ 533 534 /^abc./gmx,newline=any,utf 535 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK 536 0: abc1 537 0: abc2 538 0: abc3 539 0: abc4 540 0: abc5 541 0: abc6 542 0: abc7 543 0: abc8 544 0: abc9 545 546 /abc.$/gmx,newline=any,utf 547 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9 548 0: abc1 549 0: abc2 550 0: abc3 551 0: abc4 552 0: abc5 553 0: abc6 554 0: abc7 555 0: abc8 556 0: abc9 557 558 /^a\Rb/bsr=unicode,utf 559 a\nb 560 0: a\x{0a}b 561 a\rb 562 0: a\x{0d}b 563 a\r\nb 564 0: a\x{0d}\x{0a}b 565 a\x0bb 566 0: a\x{0b}b 567 a\x0cb 568 0: a\x{0c}b 569 a\x{85}b 570 0: a\x{85}b 571 a\x{2028}b 572 0: a\x{2028}b 573 a\x{2029}b 574 0: a\x{2029}b 575 \= Expect no match 576 a\n\rb 577 No match 578 579 /^a\R*b/bsr=unicode,utf 580 ab 581 0: ab 582 a\nb 583 0: a\x{0a}b 584 a\rb 585 0: a\x{0d}b 586 a\r\nb 587 0: a\x{0d}\x{0a}b 588 a\x0bb 589 0: a\x{0b}b 590 a\x0c\x{2028}\x{2029}b 591 0: a\x{0c}\x{2028}\x{2029}b 592 a\x{85}b 593 0: a\x{85}b 594 a\n\rb 595 0: a\x{0a}\x{0d}b 596 a\n\r\x{85}\x0cb 597 0: a\x{0a}\x{0d}\x{85}\x{0c}b 598 599 /^a\R+b/bsr=unicode,utf 600 a\nb 601 0: a\x{0a}b 602 a\rb 603 0: a\x{0d}b 604 a\r\nb 605 0: a\x{0d}\x{0a}b 606 a\x0bb 607 0: a\x{0b}b 608 a\x0c\x{2028}\x{2029}b 609 0: a\x{0c}\x{2028}\x{2029}b 610 a\x{85}b 611 0: a\x{85}b 612 a\n\rb 613 0: a\x{0a}\x{0d}b 614 a\n\r\x{85}\x0cb 615 0: a\x{0a}\x{0d}\x{85}\x{0c}b 616 \= Expect no match 617 ab 618 No match 619 620 /^a\R{1,3}b/bsr=unicode,utf 621 a\nb 622 0: a\x{0a}b 623 a\n\rb 624 0: a\x{0a}\x{0d}b 625 a\n\r\x{85}b 626 0: a\x{0a}\x{0d}\x{85}b 627 a\r\n\r\nb 628 0: a\x{0d}\x{0a}\x{0d}\x{0a}b 629 a\r\n\r\n\r\nb 630 0: a\x{0d}\x{0a}\x{0d}\x{0a}\x{0d}\x{0a}b 631 a\n\r\n\rb 632 0: a\x{0a}\x{0d}\x{0a}\x{0d}b 633 a\n\n\r\nb 634 0: a\x{0a}\x{0a}\x{0d}\x{0a}b 635 \= Expect no match 636 a\n\n\n\rb 637 No match 638 a\r 639 No match 640 641 /\H\h\V\v/utf 642 X X\x0a 643 0: X X\x{0a} 644 X\x09X\x0b 645 0: X\x{09}X\x{0b} 646 \= Expect no match 647 \x{a0} X\x0a 648 No match 649 650 /\H*\h+\V?\v{3,4}/utf 651 \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a 652 0: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}\x{0d} 653 \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a 654 0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}\x{0d} 655 \x09\x20\x{a0}\x0a\x0b\x0c 656 0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c} 657 \= Expect no match 658 \x09\x20\x{a0}\x0a\x0b 659 No match 660 661 /\H\h\V\v/utf 662 \x{3001}\x{3000}\x{2030}\x{2028} 663 0: \x{3001}\x{3000}\x{2030}\x{2028} 664 X\x{180e}X\x{85} 665 0: X\x{180e}X\x{85} 666 \= Expect no match 667 \x{2009} X\x0a 668 No match 669 670 /\H*\h+\V?\v{3,4}/utf 671 \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a 672 0: \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x{0c}\x{0d} 673 \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a 674 0: \x{09}\x{205f}\x{a0}\x{0a}\x{2029}\x{0c}\x{2028} 675 \x09\x20\x{202f}\x0a\x0b\x0c 676 0: \x{09} \x{202f}\x{0a}\x{0b}\x{0c} 677 \= Expect no match 678 \x09\x{200a}\x{a0}\x{2028}\x0b 679 No match 680 681 /[\h]/B,utf 682 ------------------------------------------------------------------ 683 Bra 684 [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}] 685 Ket 686 End 687 ------------------------------------------------------------------ 688 >\x{1680} 689 0: \x{1680} 690 691 /[\h]{3,}/B,utf 692 ------------------------------------------------------------------ 693 Bra 694 [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]{3,}+ 695 Ket 696 End 697 ------------------------------------------------------------------ 698 >\x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}< 699 0: \x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000} 700 701 /[\v]/B,utf 702 ------------------------------------------------------------------ 703 Bra 704 [\x0a-\x0d\x85\x{2028}-\x{2029}] 705 Ket 706 End 707 ------------------------------------------------------------------ 708 709 /[\H]/B,utf 710 ------------------------------------------------------------------ 711 Bra 712 [\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}] 713 Ket 714 End 715 ------------------------------------------------------------------ 716 717 /[\V]/B,utf 718 ------------------------------------------------------------------ 719 Bra 720 [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{10ffff}] 721 Ket 722 End 723 ------------------------------------------------------------------ 724 725 /.*$/newline=any,utf 726 \x{1ec5} 727 0: \x{1ec5} 728 729 /a\Rb/I,bsr=anycrlf,utf 730 Capturing subpattern count = 0 731 Options: utf 732 \R matches CR, LF, or CRLF 733 First code unit = 'a' 734 Last code unit = 'b' 735 Subject length lower bound = 3 736 a\rb 737 0: a\x{0d}b 738 a\nb 739 0: a\x{0a}b 740 a\r\nb 741 0: a\x{0d}\x{0a}b 742 \= Expect no match 743 a\x{85}b 744 No match 745 a\x0bb 746 No match 747 748 /a\Rb/I,bsr=unicode,utf 749 Capturing subpattern count = 0 750 Options: utf 751 \R matches any Unicode newline 752 First code unit = 'a' 753 Last code unit = 'b' 754 Subject length lower bound = 3 755 a\rb 756 0: a\x{0d}b 757 a\nb 758 0: a\x{0a}b 759 a\r\nb 760 0: a\x{0d}\x{0a}b 761 a\x{85}b 762 0: a\x{85}b 763 a\x0bb 764 0: a\x{0b}b 765 766 /a\R?b/I,bsr=anycrlf,utf 767 Capturing subpattern count = 0 768 Options: utf 769 \R matches CR, LF, or CRLF 770 First code unit = 'a' 771 Last code unit = 'b' 772 Subject length lower bound = 2 773 a\rb 774 0: a\x{0d}b 775 a\nb 776 0: a\x{0a}b 777 a\r\nb 778 0: a\x{0d}\x{0a}b 779 \= Expect no match 780 a\x{85}b 781 No match 782 a\x0bb 783 No match 784 785 /a\R?b/I,bsr=unicode,utf 786 Capturing subpattern count = 0 787 Options: utf 788 \R matches any Unicode newline 789 First code unit = 'a' 790 Last code unit = 'b' 791 Subject length lower bound = 2 792 a\rb 793 0: a\x{0d}b 794 a\nb 795 0: a\x{0a}b 796 a\r\nb 797 0: a\x{0d}\x{0a}b 798 a\x{85}b 799 0: a\x{85}b 800 a\x0bb 801 0: a\x{0b}b 802 803 /.*a.*=.b.*/utf,newline=any 804 QQQ\x{2029}ABCaXYZ=!bPQR 805 0: ABCaXYZ=!bPQR 806 \= Expect no match 807 a\x{2029}b 808 No match 809 \x61\xe2\x80\xa9\x62 810 No match 811 812 /[[:a\x{100}b:]]/utf 813 Failed: error 130 at offset 3: unknown POSIX class name 814 815 /a[^]b/utf,alt_bsux,allow_empty_class,match_unset_backref 816 a\x{1234}b 817 0: a\x{1234}b 818 a\nb 819 0: a\x{0a}b 820 \= Expect no match 821 ab 822 No match 823 824 /a[^]+b/utf,alt_bsux,allow_empty_class,match_unset_backref 825 aXb 826 0: aXb 827 a\nX\nX\x{1234}b 828 0: a\x{0a}X\x{0a}X\x{1234}b 829 \= Expect no match 830 ab 831 No match 832 833 /(\x{de})\1/ 834 \x{de}\x{de} 835 0: \xde\xde 836 1: \xde 837 838 /X/newline=any,utf,firstline 839 A\x{1ec5}ABCXYZ 840 0: X 841 842 /Xa{2,4}b/utf 843 X\=ps 844 Partial match: X 845 Xa\=ps 846 Partial match: Xa 847 Xaa\=ps 848 Partial match: Xaa 849 Xaaa\=ps 850 Partial match: Xaaa 851 Xaaaa\=ps 852 Partial match: Xaaaa 853 854 /Xa{2,4}?b/utf 855 X\=ps 856 Partial match: X 857 Xa\=ps 858 Partial match: Xa 859 Xaa\=ps 860 Partial match: Xaa 861 Xaaa\=ps 862 Partial match: Xaaa 863 Xaaaa\=ps 864 Partial match: Xaaaa 865 866 /Xa{2,4}+b/utf 867 X\=ps 868 Partial match: X 869 Xa\=ps 870 Partial match: Xa 871 Xaa\=ps 872 Partial match: Xaa 873 Xaaa\=ps 874 Partial match: Xaaa 875 Xaaaa\=ps 876 Partial match: Xaaaa 877 878 /X\x{123}{2,4}b/utf 879 X\=ps 880 Partial match: X 881 X\x{123}\=ps 882 Partial match: X\x{123} 883 X\x{123}\x{123}\=ps 884 Partial match: X\x{123}\x{123} 885 X\x{123}\x{123}\x{123}\=ps 886 Partial match: X\x{123}\x{123}\x{123} 887 X\x{123}\x{123}\x{123}\x{123}\=ps 888 Partial match: X\x{123}\x{123}\x{123}\x{123} 889 890 /X\x{123}{2,4}?b/utf 891 X\=ps 892 Partial match: X 893 X\x{123}\=ps 894 Partial match: X\x{123} 895 X\x{123}\x{123}\=ps 896 Partial match: X\x{123}\x{123} 897 X\x{123}\x{123}\x{123}\=ps 898 Partial match: X\x{123}\x{123}\x{123} 899 X\x{123}\x{123}\x{123}\x{123}\=ps 900 Partial match: X\x{123}\x{123}\x{123}\x{123} 901 902 /X\x{123}{2,4}+b/utf 903 X\=ps 904 Partial match: X 905 X\x{123}\=ps 906 Partial match: X\x{123} 907 X\x{123}\x{123}\=ps 908 Partial match: X\x{123}\x{123} 909 X\x{123}\x{123}\x{123}\=ps 910 Partial match: X\x{123}\x{123}\x{123} 911 X\x{123}\x{123}\x{123}\x{123}\=ps 912 Partial match: X\x{123}\x{123}\x{123}\x{123} 913 914 /X\x{123}{2,4}b/utf 915 \= Expect no match 916 Xx\=ps 917 No match 918 X\x{123}x\=ps 919 No match 920 X\x{123}\x{123}x\=ps 921 No match 922 X\x{123}\x{123}\x{123}x\=ps 923 No match 924 X\x{123}\x{123}\x{123}\x{123}x\=ps 925 No match 926 927 /X\x{123}{2,4}?b/utf 928 \= Expect no match 929 Xx\=ps 930 No match 931 X\x{123}x\=ps 932 No match 933 X\x{123}\x{123}x\=ps 934 No match 935 X\x{123}\x{123}\x{123}x\=ps 936 No match 937 X\x{123}\x{123}\x{123}\x{123}x\=ps 938 No match 939 940 /X\x{123}{2,4}+b/utf 941 \= Expect no match 942 Xx\=ps 943 No match 944 X\x{123}x\=ps 945 No match 946 X\x{123}\x{123}x\=ps 947 No match 948 X\x{123}\x{123}\x{123}x\=ps 949 No match 950 X\x{123}\x{123}\x{123}\x{123}x\=ps 951 No match 952 953 /X\d{2,4}b/utf 954 X\=ps 955 Partial match: X 956 X3\=ps 957 Partial match: X3 958 X33\=ps 959 Partial match: X33 960 X333\=ps 961 Partial match: X333 962 X3333\=ps 963 Partial match: X3333 964 965 /X\d{2,4}?b/utf 966 X\=ps 967 Partial match: X 968 X3\=ps 969 Partial match: X3 970 X33\=ps 971 Partial match: X33 972 X333\=ps 973 Partial match: X333 974 X3333\=ps 975 Partial match: X3333 976 977 /X\d{2,4}+b/utf 978 X\=ps 979 Partial match: X 980 X3\=ps 981 Partial match: X3 982 X33\=ps 983 Partial match: X33 984 X333\=ps 985 Partial match: X333 986 X3333\=ps 987 Partial match: X3333 988 989 /X\D{2,4}b/utf 990 X\=ps 991 Partial match: X 992 Xa\=ps 993 Partial match: Xa 994 Xaa\=ps 995 Partial match: Xaa 996 Xaaa\=ps 997 Partial match: Xaaa 998 Xaaaa\=ps 999 Partial match: Xaaaa 1000 1001 /X\D{2,4}?b/utf 1002 X\=ps 1003 Partial match: X 1004 Xa\=ps 1005 Partial match: Xa 1006 Xaa\=ps 1007 Partial match: Xaa 1008 Xaaa\=ps 1009 Partial match: Xaaa 1010 Xaaaa\=ps 1011 Partial match: Xaaaa 1012 1013 /X\D{2,4}+b/utf 1014 X\=ps 1015 Partial match: X 1016 Xa\=ps 1017 Partial match: Xa 1018 Xaa\=ps 1019 Partial match: Xaa 1020 Xaaa\=ps 1021 Partial match: Xaaa 1022 Xaaaa\=ps 1023 Partial match: Xaaaa 1024 1025 /X\D{2,4}b/utf 1026 X\=ps 1027 Partial match: X 1028 X\x{123}\=ps 1029 Partial match: X\x{123} 1030 X\x{123}\x{123}\=ps 1031 Partial match: X\x{123}\x{123} 1032 X\x{123}\x{123}\x{123}\=ps 1033 Partial match: X\x{123}\x{123}\x{123} 1034 X\x{123}\x{123}\x{123}\x{123}\=ps 1035 Partial match: X\x{123}\x{123}\x{123}\x{123} 1036 1037 /X\D{2,4}?b/utf 1038 X\=ps 1039 Partial match: X 1040 X\x{123}\=ps 1041 Partial match: X\x{123} 1042 X\x{123}\x{123}\=ps 1043 Partial match: X\x{123}\x{123} 1044 X\x{123}\x{123}\x{123}\=ps 1045 Partial match: X\x{123}\x{123}\x{123} 1046 X\x{123}\x{123}\x{123}\x{123}\=ps 1047 Partial match: X\x{123}\x{123}\x{123}\x{123} 1048 1049 /X\D{2,4}+b/utf 1050 X\=ps 1051 Partial match: X 1052 X\x{123}\=ps 1053 Partial match: X\x{123} 1054 X\x{123}\x{123}\=ps 1055 Partial match: X\x{123}\x{123} 1056 X\x{123}\x{123}\x{123}\=ps 1057 Partial match: X\x{123}\x{123}\x{123} 1058 X\x{123}\x{123}\x{123}\x{123}\=ps 1059 Partial match: X\x{123}\x{123}\x{123}\x{123} 1060 1061 /X[abc]{2,4}b/utf 1062 X\=ps 1063 Partial match: X 1064 Xa\=ps 1065 Partial match: Xa 1066 Xaa\=ps 1067 Partial match: Xaa 1068 Xaaa\=ps 1069 Partial match: Xaaa 1070 Xaaaa\=ps 1071 Partial match: Xaaaa 1072 1073 /X[abc]{2,4}?b/utf 1074 X\=ps 1075 Partial match: X 1076 Xa\=ps 1077 Partial match: Xa 1078 Xaa\=ps 1079 Partial match: Xaa 1080 Xaaa\=ps 1081 Partial match: Xaaa 1082 Xaaaa\=ps 1083 Partial match: Xaaaa 1084 1085 /X[abc]{2,4}+b/utf 1086 X\=ps 1087 Partial match: X 1088 Xa\=ps 1089 Partial match: Xa 1090 Xaa\=ps 1091 Partial match: Xaa 1092 Xaaa\=ps 1093 Partial match: Xaaa 1094 Xaaaa\=ps 1095 Partial match: Xaaaa 1096 1097 /X[abc\x{123}]{2,4}b/utf 1098 X\=ps 1099 Partial match: X 1100 X\x{123}\=ps 1101 Partial match: X\x{123} 1102 X\x{123}\x{123}\=ps 1103 Partial match: X\x{123}\x{123} 1104 X\x{123}\x{123}\x{123}\=ps 1105 Partial match: X\x{123}\x{123}\x{123} 1106 X\x{123}\x{123}\x{123}\x{123}\=ps 1107 Partial match: X\x{123}\x{123}\x{123}\x{123} 1108 1109 /X[abc\x{123}]{2,4}?b/utf 1110 X\=ps 1111 Partial match: X 1112 X\x{123}\=ps 1113 Partial match: X\x{123} 1114 X\x{123}\x{123}\=ps 1115 Partial match: X\x{123}\x{123} 1116 X\x{123}\x{123}\x{123}\=ps 1117 Partial match: X\x{123}\x{123}\x{123} 1118 X\x{123}\x{123}\x{123}\x{123}\=ps 1119 Partial match: X\x{123}\x{123}\x{123}\x{123} 1120 1121 /X[abc\x{123}]{2,4}+b/utf 1122 X\=ps 1123 Partial match: X 1124 X\x{123}\=ps 1125 Partial match: X\x{123} 1126 X\x{123}\x{123}\=ps 1127 Partial match: X\x{123}\x{123} 1128 X\x{123}\x{123}\x{123}\=ps 1129 Partial match: X\x{123}\x{123}\x{123} 1130 X\x{123}\x{123}\x{123}\x{123}\=ps 1131 Partial match: X\x{123}\x{123}\x{123}\x{123} 1132 1133 /X[^a]{2,4}b/utf 1134 X\=ps 1135 Partial match: X 1136 Xz\=ps 1137 Partial match: Xz 1138 Xzz\=ps 1139 Partial match: Xzz 1140 Xzzz\=ps 1141 Partial match: Xzzz 1142 Xzzzz\=ps 1143 Partial match: Xzzzz 1144 1145 /X[^a]{2,4}?b/utf 1146 X\=ps 1147 Partial match: X 1148 Xz\=ps 1149 Partial match: Xz 1150 Xzz\=ps 1151 Partial match: Xzz 1152 Xzzz\=ps 1153 Partial match: Xzzz 1154 Xzzzz\=ps 1155 Partial match: Xzzzz 1156 1157 /X[^a]{2,4}+b/utf 1158 X\=ps 1159 Partial match: X 1160 Xz\=ps 1161 Partial match: Xz 1162 Xzz\=ps 1163 Partial match: Xzz 1164 Xzzz\=ps 1165 Partial match: Xzzz 1166 Xzzzz\=ps 1167 Partial match: Xzzzz 1168 1169 /X[^a]{2,4}b/utf 1170 X\=ps 1171 Partial match: X 1172 X\x{123}\=ps 1173 Partial match: X\x{123} 1174 X\x{123}\x{123}\=ps 1175 Partial match: X\x{123}\x{123} 1176 X\x{123}\x{123}\x{123}\=ps 1177 Partial match: X\x{123}\x{123}\x{123} 1178 X\x{123}\x{123}\x{123}\x{123}\=ps 1179 Partial match: X\x{123}\x{123}\x{123}\x{123} 1180 1181 /X[^a]{2,4}?b/utf 1182 X\=ps 1183 Partial match: X 1184 X\x{123}\=ps 1185 Partial match: X\x{123} 1186 X\x{123}\x{123}\=ps 1187 Partial match: X\x{123}\x{123} 1188 X\x{123}\x{123}\x{123}\=ps 1189 Partial match: X\x{123}\x{123}\x{123} 1190 X\x{123}\x{123}\x{123}\x{123}\=ps 1191 Partial match: X\x{123}\x{123}\x{123}\x{123} 1192 1193 /X[^a]{2,4}+b/utf 1194 X\=ps 1195 Partial match: X 1196 X\x{123}\=ps 1197 Partial match: X\x{123} 1198 X\x{123}\x{123}\=ps 1199 Partial match: X\x{123}\x{123} 1200 X\x{123}\x{123}\x{123}\=ps 1201 Partial match: X\x{123}\x{123}\x{123} 1202 X\x{123}\x{123}\x{123}\x{123}\=ps 1203 Partial match: X\x{123}\x{123}\x{123}\x{123} 1204 1205 /(Y)X\1{2,4}b/utf 1206 YX\=ps 1207 Partial match: YX 1208 YXY\=ps 1209 Partial match: YXY 1210 YXYY\=ps 1211 Partial match: YXYY 1212 YXYYY\=ps 1213 Partial match: YXYYY 1214 YXYYYY\=ps 1215 Partial match: YXYYYY 1216 1217 /(Y)X\1{2,4}?b/utf 1218 YX\=ps 1219 Partial match: YX 1220 YXY\=ps 1221 Partial match: YXY 1222 YXYY\=ps 1223 Partial match: YXYY 1224 YXYYY\=ps 1225 Partial match: YXYYY 1226 YXYYYY\=ps 1227 Partial match: YXYYYY 1228 1229 /(Y)X\1{2,4}+b/utf 1230 YX\=ps 1231 Partial match: YX 1232 YXY\=ps 1233 Partial match: YXY 1234 YXYY\=ps 1235 Partial match: YXYY 1236 YXYYY\=ps 1237 Partial match: YXYYY 1238 YXYYYY\=ps 1239 Partial match: YXYYYY 1240 1241 /(\x{123})X\1{2,4}b/utf 1242 \x{123}X\=ps 1243 Partial match: \x{123}X 1244 \x{123}X\x{123}\=ps 1245 Partial match: \x{123}X\x{123} 1246 \x{123}X\x{123}\x{123}\=ps 1247 Partial match: \x{123}X\x{123}\x{123} 1248 \x{123}X\x{123}\x{123}\x{123}\=ps 1249 Partial match: \x{123}X\x{123}\x{123}\x{123} 1250 \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps 1251 Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123} 1252 1253 /(\x{123})X\1{2,4}?b/utf 1254 \x{123}X\=ps 1255 Partial match: \x{123}X 1256 \x{123}X\x{123}\=ps 1257 Partial match: \x{123}X\x{123} 1258 \x{123}X\x{123}\x{123}\=ps 1259 Partial match: \x{123}X\x{123}\x{123} 1260 \x{123}X\x{123}\x{123}\x{123}\=ps 1261 Partial match: \x{123}X\x{123}\x{123}\x{123} 1262 \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps 1263 Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123} 1264 1265 /(\x{123})X\1{2,4}+b/utf 1266 \x{123}X\=ps 1267 Partial match: \x{123}X 1268 \x{123}X\x{123}\=ps 1269 Partial match: \x{123}X\x{123} 1270 \x{123}X\x{123}\x{123}\=ps 1271 Partial match: \x{123}X\x{123}\x{123} 1272 \x{123}X\x{123}\x{123}\x{123}\=ps 1273 Partial match: \x{123}X\x{123}\x{123}\x{123} 1274 \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps 1275 Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123} 1276 1277 /\bthe cat\b/utf 1278 the cat\=ps 1279 0: the cat 1280 the cat\=ph 1281 Partial match: the cat 1282 1283 /abcd*/utf 1284 xxxxabcd\=ps 1285 0: abcd 1286 xxxxabcd\=ph 1287 Partial match: abcd 1288 1289 /abcd*/i,utf 1290 xxxxabcd\=ps 1291 0: abcd 1292 xxxxabcd\=ph 1293 Partial match: abcd 1294 XXXXABCD\=ps 1295 0: ABCD 1296 XXXXABCD\=ph 1297 Partial match: ABCD 1298 1299 /abc\d*/utf 1300 xxxxabc1\=ps 1301 0: abc1 1302 xxxxabc1\=ph 1303 Partial match: abc1 1304 1305 /(a)bc\1*/utf 1306 xxxxabca\=ps 1307 0: abca 1308 1: a 1309 xxxxabca\=ph 1310 Partial match: abca 1311 1312 /abc[de]*/utf 1313 xxxxabcde\=ps 1314 0: abcde 1315 xxxxabcde\=ph 1316 Partial match: abcde 1317 1318 /X\W{3}X/utf 1319 X\=ps 1320 Partial match: X 1321 1322 /\sxxx\s/utf,tables=2 1323 AB\x{85}xxx\x{a0}XYZ 1324 0: \x{85}xxx\x{a0} 1325 AB\x{a0}xxx\x{85}XYZ 1326 0: \x{a0}xxx\x{85} 1327 1328 /\S \S/utf,tables=2 1329 \x{a2} \x{84} 1330 0: \x{a2} \x{84} 1331 1332 'A#'Bx,newline=any,utf 1333 ------------------------------------------------------------------ 1334 Bra 1335 A 1336 Ket 1337 End 1338 ------------------------------------------------------------------ 1339 1340 'A# 1341 PQ'Bx,newline=any,utf 1342 ------------------------------------------------------------------ 1343 Bra 1344 APQ 1345 Ket 1346 End 1347 ------------------------------------------------------------------ 1348 1349 /a+#aa 1350 z#XX?/Bx,newline=any,utf 1351 ------------------------------------------------------------------ 1352 Bra 1353 a++ 1354 z 1355 Ket 1356 End 1357 ------------------------------------------------------------------ 1358 1359 /a+#aa 1360 z#?/Bx,newline=any,utf 1361 ------------------------------------------------------------------ 1362 Bra 1363 a++ 1364 z 1365 Ket 1366 End 1367 ------------------------------------------------------------------ 1368 1369 /\g{A}xxx#bXX(?'A'123) (?'A'456)/Bx,newline=any,utf 1371 ------------------------------------------------------------------ 1372 Bra 1373 \1 1374 xxx 1375 CBra 1 1376 456 1377 Ket 1378 Ket 1379 End 1380 ------------------------------------------------------------------ 1381 1382 /\g{A}xxx#b(?'A'123) (?'A'456)/Bx,newline=any,utf 1384 ------------------------------------------------------------------ 1385 Bra 1386 \1 1387 xxx 1388 CBra 1 1389 456 1390 Ket 1391 Ket 1392 End 1393 ------------------------------------------------------------------ 1394 1395 /^\c/utf 1396 Failed: error 168 at offset 3: \c must be followed by a printable ASCII character 1397 1398 /(\R*)(.)/s,utf 1399 \r\n 1400 0: \x{0d} 1401 1: 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{0d}\x{0d}\x{0a}\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{0d}\x{0d}\x{0a}\x{0a} 1410 2: \x{0d} 1411 1412 /(\R)*(.)/s,utf 1413 \r\n 1414 0: \x{0d} 1415 1: <unset> 1416 2: \x{0d} 1417 \r\r\n\n\r 1418 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d} 1419 1: \x{0a} 1420 2: \x{0d} 1421 \r\r\n\n\r\n 1422 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d} 1423 1: \x{0a} 1424 2: \x{0d} 1425 1426 /[^\x{1234}]+/Ii,utf 1427 Capturing subpattern count = 0 1428 Options: caseless utf 1429 Subject length lower bound = 1 1430 1431 /[^\x{1234}]+?/Ii,utf 1432 Capturing subpattern count = 0 1433 Options: caseless utf 1434 Subject length lower bound = 1 1435 1436 /[^\x{1234}]++/Ii,utf 1437 Capturing subpattern count = 0 1438 Options: caseless utf 1439 Subject length lower bound = 1 1440 1441 /[^\x{1234}]{2}/Ii,utf 1442 Capturing subpattern count = 0 1443 Options: caseless utf 1444 Subject length lower bound = 2 1445 1446 /f.*/ 1447 for\=ph 1448 Partial match: for 1449 1450 /f.*/s 1451 for\=ph 1452 Partial match: for 1453 1454 /f.*/utf 1455 for\=ph 1456 Partial match: for 1457 1458 /f.*/s,utf 1459 for\=ph 1460 Partial match: for 1461 1462 /\x{d7ff}\x{e000}/utf 1463 1464 /\x{d800}/utf 1465 Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) 1466 1467 /\x{dfff}/utf 1468 Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) 1469 1470 /\h+/utf 1471 \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000} 1472 0: \x{1680}\x{2000}\x{202f}\x{3000} 1473 \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000} 1474 0: \x{200a}\x{a0}\x{2000} 1475 1476 /[\h\x{e000}]+/B,utf 1477 ------------------------------------------------------------------ 1478 Bra 1479 [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}\x{e000}]++ 1480 Ket 1481 End 1482 ------------------------------------------------------------------ 1483 \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000} 1484 0: \x{1680}\x{2000}\x{202f}\x{3000} 1485 \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000} 1486 0: \x{200a}\x{a0}\x{2000} 1487 1488 /\H+/utf 1489 \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f} 1490 0: \x{167f}\x{1681}\x{180d}\x{180f} 1491 \x{2000}\x{200a}\x{1fff}\x{200b} 1492 0: \x{1fff}\x{200b} 1493 \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060} 1494 0: \x{202e}\x{2030}\x{205e}\x{2060} 1495 \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001} 1496 0: \x{9f}\x{a1}\x{2fff}\x{3001} 1497 1498 /[\H\x{d7ff}]+/B,utf 1499 ------------------------------------------------------------------ 1500 Bra 1501 [\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}]++ 1502 Ket 1503 End 1504 ------------------------------------------------------------------ 1505 \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f} 1506 0: \x{167f}\x{1681}\x{180d}\x{180f} 1507 \x{2000}\x{200a}\x{1fff}\x{200b} 1508 0: \x{1fff}\x{200b} 1509 \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060} 1510 0: \x{202e}\x{2030}\x{205e}\x{2060} 1511 \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001} 1512 0: \x{9f}\x{a1}\x{2fff}\x{3001} 1513 1514 /\v+/utf 1515 \x{2027}\x{2030}\x{2028}\x{2029} 1516 0: \x{2028}\x{2029} 1517 \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d 1518 0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d} 1519 1520 /[\v\x{e000}]+/B,utf 1521 ------------------------------------------------------------------ 1522 Bra 1523 [\x0a-\x0d\x85\x{2028}-\x{2029}\x{e000}]++ 1524 Ket 1525 End 1526 ------------------------------------------------------------------ 1527 \x{2027}\x{2030}\x{2028}\x{2029} 1528 0: \x{2028}\x{2029} 1529 \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d 1530 0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d} 1531 1532 /\V+/utf 1533 \x{2028}\x{2029}\x{2027}\x{2030} 1534 0: \x{2027}\x{2030} 1535 \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86} 1536 0: \x{09}\x{0e}\x{84}\x{86} 1537 1538 /[\V\x{d7ff}]+/B,utf 1539 ------------------------------------------------------------------ 1540 Bra 1541 [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{10ffff}\x{d7ff}]++ 1542 Ket 1543 End 1544 ------------------------------------------------------------------ 1545 \x{2028}\x{2029}\x{2027}\x{2030} 1546 0: \x{2027}\x{2030} 1547 \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86} 1548 0: \x{09}\x{0e}\x{84}\x{86} 1549 1550 /\R+/bsr=unicode,utf 1551 \x{2027}\x{2030}\x{2028}\x{2029} 1552 0: \x{2028}\x{2029} 1553 \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d 1554 0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d} 1555 1556 /(..)\1/utf 1557 ab\=ps 1558 Partial match: ab 1559 aba\=ps 1560 Partial match: aba 1561 abab\=ps 1562 0: abab 1563 1: ab 1564 1565 /(..)\1/i,utf 1566 ab\=ps 1567 Partial match: ab 1568 abA\=ps 1569 Partial match: abA 1570 aBAb\=ps 1571 0: aBAb 1572 1: aB 1573 1574 /(..)\1{2,}/utf 1575 ab\=ps 1576 Partial match: ab 1577 aba\=ps 1578 Partial match: aba 1579 abab\=ps 1580 Partial match: abab 1581 ababa\=ps 1582 Partial match: ababa 1583 ababab\=ps 1584 0: ababab 1585 1: ab 1586 ababab\=ph 1587 Partial match: ababab 1588 abababa\=ps 1589 0: ababab 1590 1: ab 1591 abababa\=ph 1592 Partial match: abababa 1593 1594 /(..)\1{2,}/i,utf 1595 ab\=ps 1596 Partial match: ab 1597 aBa\=ps 1598 Partial match: aBa 1599 aBAb\=ps 1600 Partial match: aBAb 1601 AbaBA\=ps 1602 Partial match: AbaBA 1603 abABAb\=ps 1604 0: abABAb 1605 1: ab 1606 aBAbaB\=ph 1607 Partial match: aBAbaB 1608 abABabA\=ps 1609 0: abABab 1610 1: ab 1611 abaBABa\=ph 1612 Partial match: abaBABa 1613 1614 /(..)\1{2,}?x/i,utf 1615 ab\=ps 1616 Partial match: ab 1617 abA\=ps 1618 Partial match: abA 1619 aBAb\=ps 1620 Partial match: aBAb 1621 abaBA\=ps 1622 Partial match: abaBA 1623 abAbaB\=ps 1624 Partial match: abAbaB 1625 abaBabA\=ps 1626 Partial match: abaBabA 1627 abAbABaBx\=ps 1628 0: abAbABaBx 1629 1: ab 1630 1631 /./utf,newline=crlf 1632 \r\=ps 1633 0: \x{0d} 1634 \r\=ph 1635 Partial match: \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}\x{0d} 1648 \r\r\r\=ph 1649 Partial match: \x{0d}\x{0d}\x{0d} 1650 1651 /.{2,3}?/utf,newline=crlf 1652 \r\=ps 1653 Partial match: \x{0d} 1654 \r\=ph 1655 Partial match: \x{0d} 1656 \r\r\=ps 1657 0: \x{0d}\x{0d} 1658 \r\r\=ph 1659 Partial match: \x{0d}\x{0d} 1660 \r\r\r\=ps 1661 0: \x{0d}\x{0d} 1662 \r\r\r\=ph 1663 0: \x{0d}\x{0d} 1664 1665 /[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/B,utf 1666 ------------------------------------------------------------------ 1667 Bra 1668 [^\x{100}] 1669 [^\x{1234}] 1670 [^\x{ffff}] 1671 [^\x{10000}] 1672 [^\x{10ffff}] 1673 Ket 1674 End 1675 ------------------------------------------------------------------ 1676 1677 /[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/Bi,utf 1678 ------------------------------------------------------------------ 1679 Bra 1680 /i [^\x{100}] 1681 /i [^\x{1234}] 1682 /i [^\x{ffff}] 1683 /i [^\x{10000}] 1684 /i [^\x{10ffff}] 1685 Ket 1686 End 1687 ------------------------------------------------------------------ 1688 1689 /[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/B,utf 1690 ------------------------------------------------------------------ 1691 Bra 1692 [^\x{100}]* 1693 [^\x{10000}]+ 1694 [^\x{10ffff}]?? 1695 [^\x{8000}]{4} 1696 [^\x{8000}]* 1697 [^\x{7fff}]{2} 1698 [^\x{7fff}]{0,7}? 1699 [^\x{fffff}]{5} 1700 [^\x{fffff}]?+ 1701 Ket 1702 End 1703 ------------------------------------------------------------------ 1704 1705 /[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/Bi,utf 1706 ------------------------------------------------------------------ 1707 Bra 1708 /i [^\x{100}]* 1709 /i [^\x{10000}]+ 1710 /i [^\x{10ffff}]?? 1711 /i [^\x{8000}]{4} 1712 /i [^\x{8000}]* 1713 /i [^\x{7fff}]{2} 1714 /i [^\x{7fff}]{0,7}? 1715 /i [^\x{fffff}]{5} 1716 /i [^\x{fffff}]?+ 1717 Ket 1718 End 1719 ------------------------------------------------------------------ 1720 1721 /(?<=\x{1234}\x{1234})\bxy/I,utf 1722 Capturing subpattern count = 0 1723 Max lookbehind = 2 1724 Options: utf 1725 First code unit = 'x' 1726 Last code unit = 'y' 1727 Subject length lower bound = 2 1728 1729 /(?<!^)ETA/utf 1730 \= Expect no match 1731 ETA 1732 No match 1733 1734 /\u0100/B,utf,alt_bsux,allow_empty_class,match_unset_backref 1735 ------------------------------------------------------------------ 1736 Bra 1737 \x{100} 1738 Ket 1739 End 1740 ------------------------------------------------------------------ 1741 1742 /[\u0100-\u0200]/B,utf,alt_bsux,allow_empty_class,match_unset_backref 1743 ------------------------------------------------------------------ 1744 Bra 1745 [\x{100}-\x{200}] 1746 Ket 1747 End 1748 ------------------------------------------------------------------ 1749 1750 /\ud800/utf,alt_bsux,allow_empty_class,match_unset_backref 1751 Failed: error 173 at offset 5: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) 1752 1753 /^a+[a\x{200}]/B,utf 1754 ------------------------------------------------------------------ 1755 Bra 1756 ^ 1757 a+ 1758 [a\x{200}] 1759 Ket 1760 End 1761 ------------------------------------------------------------------ 1762 aa 1763 0: aa 1764 1765 /[b-d\x{200}-\x{250}]*[ae-h]?#[\x{200}-\x{250}]{0,8}[\x00-\xff]*#[\x{200}-\x{250}]+[a-z]/B,utf 1766 ------------------------------------------------------------------ 1767 Bra 1768 [b-d\x{200}-\x{250}]*+ 1769 [ae-h]?+ 1770 # 1771 [\x{200}-\x{250}]{0,8}+ 1772 [\x00-\xff]* 1773 # 1774 [\x{200}-\x{250}]++ 1775 [a-z] 1776 Ket 1777 End 1778 ------------------------------------------------------------------ 1779 1780 /[\p{L}]/IB 1781 ------------------------------------------------------------------ 1782 Bra 1783 [\p{L}] 1784 Ket 1785 End 1786 ------------------------------------------------------------------ 1787 Capturing subpattern count = 0 1788 Subject length lower bound = 1 1789 1790 /[\p{^L}]/IB 1791 ------------------------------------------------------------------ 1792 Bra 1793 [\P{L}] 1794 Ket 1795 End 1796 ------------------------------------------------------------------ 1797 Capturing subpattern count = 0 1798 Subject length lower bound = 1 1799 1800 /[\P{L}]/IB 1801 ------------------------------------------------------------------ 1802 Bra 1803 [\P{L}] 1804 Ket 1805 End 1806 ------------------------------------------------------------------ 1807 Capturing subpattern count = 0 1808 Subject length lower bound = 1 1809 1810 /[\P{^L}]/IB 1811 ------------------------------------------------------------------ 1812 Bra 1813 [\p{L}] 1814 Ket 1815 End 1816 ------------------------------------------------------------------ 1817 Capturing subpattern count = 0 1818 Subject length lower bound = 1 1819 1820 /[abc\p{L}\x{0660}]/IB,utf 1821 ------------------------------------------------------------------ 1822 Bra 1823 [a-c\p{L}\x{660}] 1824 Ket 1825 End 1826 ------------------------------------------------------------------ 1827 Capturing subpattern count = 0 1828 Options: utf 1829 Subject length lower bound = 1 1830 1831 /[\p{Nd}]/IB,utf 1832 ------------------------------------------------------------------ 1833 Bra 1834 [\p{Nd}] 1835 Ket 1836 End 1837 ------------------------------------------------------------------ 1838 Capturing subpattern count = 0 1839 Options: utf 1840 Subject length lower bound = 1 1841 1234 1842 0: 1 1843 1844 /[\p{Nd}+-]+/IB,utf 1845 ------------------------------------------------------------------ 1846 Bra 1847 [+\-\p{Nd}]++ 1848 Ket 1849 End 1850 ------------------------------------------------------------------ 1851 Capturing subpattern count = 0 1852 Options: utf 1853 Subject length lower bound = 1 1854 1234 1855 0: 1234 1856 12-34 1857 0: 12-34 1858 12+\x{661}-34 1859 0: 12+\x{661}-34 1860 \= Expect no match 1861 abcd 1862 No match 1863 1864 /(?:[\PPa*]*){8,}/ 1865 1866 /[\P{Any}]/B 1867 ------------------------------------------------------------------ 1868 Bra 1869 [\P{Any}] 1870 Ket 1871 End 1872 ------------------------------------------------------------------ 1873 1874 /[\P{Any}\E]/B 1875 ------------------------------------------------------------------ 1876 Bra 1877 [\P{Any}] 1878 Ket 1879 End 1880 ------------------------------------------------------------------ 1881 1882 /(\P{Yi}+\277)/ 1883 1884 /(\P{Yi}+\277)?/ 1885 1886 /(?<=\P{Yi}{3}A)X/ 1887 1888 /\p{Yi}+(\P{Yi}+)(?1)/ 1889 1890 /(\P{Yi}{2}\277)?/ 1891 1892 /[\P{Yi}A]/ 1893 1894 /[\P{Yi}\P{Yi}\P{Yi}A]/ 1895 1896 /[^\P{Yi}A]/ 1897 1898 /[^\P{Yi}\P{Yi}\P{Yi}A]/ 1899 1900 /(\P{Yi}*\277)*/ 1901 1902 /(\P{Yi}*?\277)*/ 1903 1904 /(\p{Yi}*+\277)*/ 1905 1906 /(\P{Yi}?\277)*/ 1907 1908 /(\P{Yi}??\277)*/ 1909 1910 /(\p{Yi}?+\277)*/ 1911 1912 /(\P{Yi}{0,3}\277)*/ 1913 1914 /(\P{Yi}{0,3}?\277)*/ 1915 1916 /(\p{Yi}{0,3}+\277)*/ 1917 1918 /\p{Zl}{2,3}+/B,utf 1919 ------------------------------------------------------------------ 1920 Bra 1921 prop Zl {2} 1922 prop Zl ?+ 1923 Ket 1924 End 1925 ------------------------------------------------------------------ 1926 1929 0: \x{2028}\x{2028} 1930 \x{2028}\x{2028}\x{2028} 1931 0: \x{2028}\x{2028}\x{2028} 1932 1933 /\p{Zl}/B,utf 1934 ------------------------------------------------------------------ 1935 Bra 1936 prop Zl 1937 Ket 1938 End 1939 ------------------------------------------------------------------ 1940 1941 /\p{Lu}{3}+/B,utf 1942 ------------------------------------------------------------------ 1943 Bra 1944 prop Lu {3} 1945 Ket 1946 End 1947 ------------------------------------------------------------------ 1948 1949 /\pL{2}+/B,utf 1950 ------------------------------------------------------------------ 1951 Bra 1952 prop L {2} 1953 Ket 1954 End 1955 ------------------------------------------------------------------ 1956 1957 /\p{Cc}{2}+/B,utf 1958 ------------------------------------------------------------------ 1959 Bra 1960 prop Cc {2} 1961 Ket 1962 End 1963 ------------------------------------------------------------------ 1964 1965 /^\p{Cf}/utf 1966 \x{180e} 1967 0: \x{180e} 1968 \x{061c} 1969 0: \x{61c} 1970 \x{2066} 1971 0: \x{2066} 1972 \x{2067} 1973 0: \x{2067} 1974 \x{2068} 1975 0: \x{2068} 1976 \x{2069} 1977 0: \x{2069} 1978 1979 /^\p{Cs}/utf 1980 \x{dfff}\=no_utf_check 1981 0: \x{dfff} 1982 \= Expect no match 1983 \x{09f} 1984 No match 1985 1986 /^\p{Mn}/utf 1987 \x{1a1b} 1988 0: \x{1a1b} 1989 1990 /^\p{Pe}/utf 1991 \x{2309} 1992 0: \x{2309} 1993 \x{230b} 1994 0: \x{230b} 1995 1996 /^\p{Ps}/utf 1997 \x{2308} 1998 0: \x{2308} 1999 \x{230a} 2000 0: \x{230a} 2001 2002 /^\p{Sc}+/utf 2003 $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6} 2004 0: $\x{a2}\x{a3}\x{a4}\x{a5} 2005 \x{9f2} 2006 0: \x{9f2} 2007 \= Expect no match 2008 X 2009 No match 2010 \x{2c2} 2011 No match 2012 2013 /^\p{Zs}/utf 2014 \ \ 2015 0: 2016 \x{a0} 2017 0: \x{a0} 2018 \x{1680} 2019 0: \x{1680} 2020 \x{2000} 2021 0: \x{2000} 2022 \x{2001} 2023 0: \x{2001} 2024 \= Expect no match 2025 \x{2028} 2026 No match 2027 \x{200d} 2028 No match 2029 2030 # These are here because Perl has problems with the negative versions of the 2031 # properties and has changed how it behaves for caseless matching. 2032 2033 /\p{^Lu}/i,utf 2034 1234 2035 0: 1 2036 \= Expect no match 2037 ABC 2038 No match 2039 2040 /\P{Lu}/i,utf 2041 1234 2042 0: 1 2043 \= Expect no match 2044 ABC 2045 No match 2046 2047 /\p{Ll}/i,utf 2048 a 2049 0: a 2050 Az 2051 0: z 2052 \= Expect no match 2053 ABC 2054 No match 2055 2056 /\p{Lu}/i,utf 2057 A 2058 0: A 2059 a\x{10a0}B 2060 0: \x{10a0} 2061 \= Expect no match 2062 a 2063 No match 2064 \x{1d00} 2065 No match 2066 2067 /\p{Lu}/i,utf 2068 A 2069 0: A 2070 aZ 2071 0: Z 2072 \= Expect no match 2073 abc 2074 No match 2075 2076 /[\x{c0}\x{391}]/i,utf 2077 \x{c0} 2078 0: \x{c0} 2079 \x{e0} 2080 0: \x{e0} 2081 2082 # The next two are special cases where the lengths of the different cases of 2083 # the same character differ. The first went wrong with heap frame storage; the 2084 # second was broken in all cases. 2085 2086 /^\x{023a}+?(\x{0130}+)/i,utf 2087 \x{023a}\x{2c65}\x{0130} 2088 0: \x{23a}\x{2c65}\x{130} 2089 1: \x{130} 2090 2091 /^\x{023a}+([^X])/i,utf 2092 \x{023a}\x{2c65}X 2093 0: \x{23a}\x{2c65} 2094 1: \x{2c65} 2095 2096 /\x{c0}+\x{116}+/i,utf 2097 \x{c0}\x{e0}\x{116}\x{117} 2098 0: \x{c0}\x{e0}\x{116}\x{117} 2099 2100 /[\x{c0}\x{116}]+/i,utf 2101 \x{c0}\x{e0}\x{116}\x{117} 2102 0: \x{c0}\x{e0}\x{116}\x{117} 2103 2104 /(\x{de})\1/i,utf 2105 \x{de}\x{de} 2106 0: \x{de}\x{de} 2107 1: \x{de} 2108 \x{de}\x{fe} 2109 0: \x{de}\x{fe} 2110 1: \x{de} 2111 \x{fe}\x{fe} 2112 0: \x{fe}\x{fe} 2113 1: \x{fe} 2114 \x{fe}\x{de} 2115 0: \x{fe}\x{de} 2116 1: \x{fe} 2117 2118 /^\x{c0}$/i,utf 2119 \x{c0} 2120 0: \x{c0} 2121 \x{e0} 2122 0: \x{e0} 2123 2124 /^\x{e0}$/i,utf 2125 \x{c0} 2126 0: \x{c0} 2127 \x{e0} 2128 0: \x{e0} 2129 2130 # The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE 2131 # will match it only with UCP support, because without that it has no notion 2132 # of case for anything other than the ASCII letters. 2133 2134 /((?i)[\x{c0}])/utf 2135 \x{c0} 2136 0: \x{c0} 2137 1: \x{c0} 2138 \x{e0} 2139 0: \x{e0} 2140 1: \x{e0} 2141 2142 /(?i:[\x{c0}])/utf 2143 \x{c0} 2144 0: \x{c0} 2145 \x{e0} 2146 0: \x{e0} 2147 2148 # These are PCRE's extra properties to help with Unicodizing \d etc. 2149 2150 /^\p{Xan}/utf 2151 ABCD 2152 0: A 2153 1234 2154 0: 1 2155 \x{6ca} 2156 0: \x{6ca} 2157 \x{a6c} 2158 0: \x{a6c} 2159 \x{10a7} 2160 0: \x{10a7} 2161 \= Expect no match 2162 _ABC 2163 No match 2164 2165 /^\p{Xan}+/utf 2166 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2167 0: ABCD1234\x{6ca}\x{a6c}\x{10a7} 2168 \= Expect no match 2169 _ABC 2170 No match 2171 2172 /^\p{Xan}+?/utf 2173 \x{6ca}\x{a6c}\x{10a7}_ 2174 0: \x{6ca} 2175 2176 /^\p{Xan}*/utf 2177 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2178 0: ABCD1234\x{6ca}\x{a6c}\x{10a7} 2179 2180 /^\p{Xan}{2,9}/utf 2181 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2182 0: ABCD1234\x{6ca} 2183 2184 /^\p{Xan}{2,9}?/utf 2185 \x{6ca}\x{a6c}\x{10a7}_ 2186 0: \x{6ca}\x{a6c} 2187 2188 /^[\p{Xan}]/utf 2189 ABCD1234_ 2190 0: A 2191 1234abcd_ 2192 0: 1 2193 \x{6ca} 2194 0: \x{6ca} 2195 \x{a6c} 2196 0: \x{a6c} 2197 \x{10a7} 2198 0: \x{10a7} 2199 \= Expect no match 2200 _ABC 2201 No match 2202 2203 /^[\p{Xan}]+/utf 2204 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2205 0: ABCD1234\x{6ca}\x{a6c}\x{10a7} 2206 \= Expect no match 2207 _ABC 2208 No match 2209 2210 /^>\p{Xsp}/utf 2211 >\x{1680}\x{2028}\x{0b} 2212 0: >\x{1680} 2213 >\x{a0} 2214 0: >\x{a0} 2215 \= Expect no match 2216 \x{0b} 2217 No match 2218 2219 /^>\p{Xsp}+/utf 2220 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2221 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2222 2223 /^>\p{Xsp}+?/utf 2224 >\x{1680}\x{2028}\x{0b} 2225 0: >\x{1680} 2226 2227 /^>\p{Xsp}*/utf 2228 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2229 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2230 2231 /^>\p{Xsp}{2,9}/utf 2232 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2233 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2234 2235 /^>\p{Xsp}{2,9}?/utf 2236 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2237 0: > \x{09} 2238 2239 /^>[\p{Xsp}]/utf 2240 >\x{2028}\x{0b} 2241 0: >\x{2028} 2242 2243 /^>[\p{Xsp}]+/utf 2244 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2245 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2246 2247 /^>\p{Xps}/utf 2248 >\x{1680}\x{2028}\x{0b} 2249 0: >\x{1680} 2250 >\x{a0} 2251 0: >\x{a0} 2252 \= Expect no match 2253 \x{0b} 2254 No match 2255 2256 /^>\p{Xps}+/utf 2257 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2258 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2259 2260 /^>\p{Xps}+?/utf 2261 >\x{1680}\x{2028}\x{0b} 2262 0: >\x{1680} 2263 2264 /^>\p{Xps}*/utf 2265 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2266 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2267 2268 /^>\p{Xps}{2,9}/utf 2269 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2270 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2271 2272 /^>\p{Xps}{2,9}?/utf 2273 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2274 0: > \x{09} 2275 2276 /^>[\p{Xps}]/utf 2277 >\x{2028}\x{0b} 2278 0: >\x{2028} 2279 2280 /^>[\p{Xps}]+/utf 2281 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2282 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 2283 2284 /^\p{Xwd}/utf 2285 ABCD 2286 0: A 2287 1234 2288 0: 1 2289 \x{6ca} 2290 0: \x{6ca} 2291 \x{a6c} 2292 0: \x{a6c} 2293 \x{10a7} 2294 0: \x{10a7} 2295 _ABC 2296 0: _ 2297 \= Expect no match 2298 [] 2299 No match 2300 2301 /^\p{Xwd}+/utf 2302 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2303 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2304 2305 /^\p{Xwd}+?/utf 2306 \x{6ca}\x{a6c}\x{10a7}_ 2307 0: \x{6ca} 2308 2309 /^\p{Xwd}*/utf 2310 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2311 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2312 2313 /^\p{Xwd}{2,9}/utf 2314 A_B12\x{6ca}\x{a6c}\x{10a7} 2315 0: A_B12\x{6ca}\x{a6c}\x{10a7} 2316 2317 /^\p{Xwd}{2,9}?/utf 2318 \x{6ca}\x{a6c}\x{10a7}_ 2319 0: \x{6ca}\x{a6c} 2320 2321 /^[\p{Xwd}]/utf 2322 ABCD1234_ 2323 0: A 2324 1234abcd_ 2325 0: 1 2326 \x{6ca} 2327 0: \x{6ca} 2328 \x{a6c} 2329 0: \x{a6c} 2330 \x{10a7} 2331 0: \x{10a7} 2332 _ABC 2333 0: _ 2334 \= Expect no match 2335 [] 2336 No match 2337 2338 /^[\p{Xwd}]+/utf 2339 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2340 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 2341 2342 # A check not in UTF-8 mode 2343 2344 /^[\p{Xwd}]+/ 2345 ABCD1234_ 2346 0: ABCD1234_ 2347 2348 # Some negative checks 2349 2350 /^[\P{Xwd}]+/utf 2351 !.+\x{019}\x{35a}AB 2352 0: !.+\x{19}\x{35a} 2353 2354 /^[\p{^Xwd}]+/utf 2355 !.+\x{019}\x{35a}AB 2356 0: !.+\x{19}\x{35a} 2357 2358 /[\D]/B,utf,ucp 2359 ------------------------------------------------------------------ 2360 Bra 2361 [\P{Nd}] 2362 Ket 2363 End 2364 ------------------------------------------------------------------ 2365 1\x{3c8}2 2366 0: \x{3c8} 2367 2368 /[\d]/B,utf,ucp 2369 ------------------------------------------------------------------ 2370 Bra 2371 [\p{Nd}] 2372 Ket 2373 End 2374 ------------------------------------------------------------------ 2375 >\x{6f4}< 2376 0: \x{6f4} 2377 2378 /[\S]/B,utf,ucp 2379 ------------------------------------------------------------------ 2380 Bra 2381 [\P{Xsp}] 2382 Ket 2383 End 2384 ------------------------------------------------------------------ 2385 \x{1680}\x{6f4}\x{1680} 2386 0: \x{6f4} 2387 2388 /[\s]/B,utf,ucp 2389 ------------------------------------------------------------------ 2390 Bra 2391 [\p{Xsp}] 2392 Ket 2393 End 2394 ------------------------------------------------------------------ 2395 >\x{1680}< 2396 0: \x{1680} 2397 2398 /[\W]/B,utf,ucp 2399 ------------------------------------------------------------------ 2400 Bra 2401 [\P{Xwd}] 2402 Ket 2403 End 2404 ------------------------------------------------------------------ 2405 A\x{1712}B 2406 0: \x{1712} 2407 2408 /[\w]/B,utf,ucp 2409 ------------------------------------------------------------------ 2410 Bra 2411 [\p{Xwd}] 2412 Ket 2413 End 2414 ------------------------------------------------------------------ 2415 >\x{1723}< 2416 0: \x{1723} 2417 2418 /\D/B,utf,ucp 2419 ------------------------------------------------------------------ 2420 Bra 2421 notprop Nd 2422 Ket 2423 End 2424 ------------------------------------------------------------------ 2425 1\x{3c8}2 2426 0: \x{3c8} 2427 2428 /\d/B,utf,ucp 2429 ------------------------------------------------------------------ 2430 Bra 2431 prop Nd 2432 Ket 2433 End 2434 ------------------------------------------------------------------ 2435 >\x{6f4}< 2436 0: \x{6f4} 2437 2438 /\S/B,utf,ucp 2439 ------------------------------------------------------------------ 2440 Bra 2441 notprop Xsp 2442 Ket 2443 End 2444 ------------------------------------------------------------------ 2445 \x{1680}\x{6f4}\x{1680} 2446 0: \x{6f4} 2447 2448 /\s/B,utf,ucp 2449 ------------------------------------------------------------------ 2450 Bra 2451 prop Xsp 2452 Ket 2453 End 2454 ------------------------------------------------------------------ 2455 >\x{1680}> 2456 0: \x{1680} 2457 2458 /\W/B,utf,ucp 2459 ------------------------------------------------------------------ 2460 Bra 2461 notprop Xwd 2462 Ket 2463 End 2464 ------------------------------------------------------------------ 2465 A\x{1712}B 2466 0: \x{1712} 2467 2468 /\w/B,utf,ucp 2469 ------------------------------------------------------------------ 2470 Bra 2471 prop Xwd 2472 Ket 2473 End 2474 ------------------------------------------------------------------ 2475 >\x{1723}< 2476 0: \x{1723} 2477 2478 /[[:alpha:]]/B,ucp 2479 ------------------------------------------------------------------ 2480 Bra 2481 [\p{L}] 2482 Ket 2483 End 2484 ------------------------------------------------------------------ 2485 2486 /[[:lower:]]/B,ucp 2487 ------------------------------------------------------------------ 2488 Bra 2489 [\p{Ll}] 2490 Ket 2491 End 2492 ------------------------------------------------------------------ 2493 2494 /[[:upper:]]/B,ucp 2495 ------------------------------------------------------------------ 2496 Bra 2497 [\p{Lu}] 2498 Ket 2499 End 2500 ------------------------------------------------------------------ 2501 2502 /[[:alnum:]]/B,ucp 2503 ------------------------------------------------------------------ 2504 Bra 2505 [\p{Xan}] 2506 Ket 2507 End 2508 ------------------------------------------------------------------ 2509 2510 /[[:ascii:]]/B,ucp 2511 ------------------------------------------------------------------ 2512 Bra 2513 [\x00-\x7f] 2514 Ket 2515 End 2516 ------------------------------------------------------------------ 2517 2518 /[[:cntrl:]]/B,ucp 2519 ------------------------------------------------------------------ 2520 Bra 2521 [\p{Cc}] 2522 Ket 2523 End 2524 ------------------------------------------------------------------ 2525 2526 /[[:digit:]]/B,ucp 2527 ------------------------------------------------------------------ 2528 Bra 2529 [\p{Nd}] 2530 Ket 2531 End 2532 ------------------------------------------------------------------ 2533 2534 /[[:graph:]]/B,ucp 2535 ------------------------------------------------------------------ 2536 Bra 2537 [[:graph:]] 2538 Ket 2539 End 2540 ------------------------------------------------------------------ 2541 2542 /[[:print:]]/B,ucp 2543 ------------------------------------------------------------------ 2544 Bra 2545 [[:print:]] 2546 Ket 2547 End 2548 ------------------------------------------------------------------ 2549 2550 /[[:punct:]]/B,ucp 2551 ------------------------------------------------------------------ 2552 Bra 2553 [[:punct:]] 2554 Ket 2555 End 2556 ------------------------------------------------------------------ 2557 2558 /[[:space:]]/B,ucp 2559 ------------------------------------------------------------------ 2560 Bra 2561 [\p{Xps}] 2562 Ket 2563 End 2564 ------------------------------------------------------------------ 2565 2566 /[[:word:]]/B,ucp 2567 ------------------------------------------------------------------ 2568 Bra 2569 [\p{Xwd}] 2570 Ket 2571 End 2572 ------------------------------------------------------------------ 2573 2574 /[[:xdigit:]]/B,ucp 2575 ------------------------------------------------------------------ 2576 Bra 2577 [0-9A-Fa-f] 2578 Ket 2579 End 2580 ------------------------------------------------------------------ 2581 2582 # Unicode properties for \b abd \B 2583 2584 /\b...\B/utf,ucp 2585 abc_ 2586 0: abc 2587 \x{37e}abc\x{376} 2588 0: abc 2589 \x{37e}\x{376}\x{371}\x{393}\x{394} 2590 0: \x{376}\x{371}\x{393} 2591 !\x{c0}++\x{c1}\x{c2} 2592 0: ++\x{c1} 2593 !\x{c0}+++++ 2594 0: \x{c0}++ 2595 2596 # Without PCRE_UCP, non-ASCII always fail, even if < 256 2597 2598 /\b...\B/utf 2599 abc_ 2600 0: abc 2601 \= Expect no match 2602 \x{37e}abc\x{376} 2603 No match 2604 \x{37e}\x{376}\x{371}\x{393}\x{394} 2605 No match 2606 !\x{c0}++\x{c1}\x{c2} 2607 No match 2608 !\x{c0}+++++ 2609 No match 2610 2611 # With PCRE_UCP, non-UTF8 chars that are < 256 still check properties 2612 2613 /\b...\B/ucp 2614 abc_ 2615 0: abc 2616 !\x{c0}++\x{c1}\x{c2} 2617 0: ++\xc1 2618 !\x{c0}+++++ 2619 0: \xc0++ 2620 2621 # Some of these are silly, but they check various combinations 2622 2623 /[[:^alpha:][:^cntrl:]]+/B,utf,ucp 2624 ------------------------------------------------------------------ 2625 Bra 2626 [\P{L}\P{Cc}]++ 2627 Ket 2628 End 2629 ------------------------------------------------------------------ 2630 123 2631 0: 123 2632 abc 2633 0: abc 2634 2635 /[[:^cntrl:][:^alpha:]]+/B,utf,ucp 2636 ------------------------------------------------------------------ 2637 Bra 2638 [\P{Cc}\P{L}]++ 2639 Ket 2640 End 2641 ------------------------------------------------------------------ 2642 123 2643 0: 123 2644 abc 2645 0: abc 2646 2647 /[[:alpha:]]+/B,utf,ucp 2648 ------------------------------------------------------------------ 2649 Bra 2650 [\p{L}]++ 2651 Ket 2652 End 2653 ------------------------------------------------------------------ 2654 abc 2655 0: abc 2656 2657 /[[:^alpha:]\S]+/B,utf,ucp 2658 ------------------------------------------------------------------ 2659 Bra 2660 [\P{L}\P{Xsp}]++ 2661 Ket 2662 End 2663 ------------------------------------------------------------------ 2664 123 2665 0: 123 2666 abc 2667 0: abc 2668 2669 /[^\d]+/B,utf,ucp 2670 ------------------------------------------------------------------ 2671 Bra 2672 [^\p{Nd}]++ 2673 Ket 2674 End 2675 ------------------------------------------------------------------ 2676 abc123 2677 0: abc 2678 abc\x{123} 2679 0: abc\x{123} 2680 \x{660}abc 2681 0: abc 2682 2683 /\p{Lu}+9\p{Lu}+B\p{Lu}+b/B 2684 ------------------------------------------------------------------ 2685 Bra 2686 prop Lu ++ 2687 9 2688 prop Lu + 2689 B 2690 prop Lu ++ 2691 b 2692 Ket 2693 End 2694 ------------------------------------------------------------------ 2695 2696 /\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/B 2697 ------------------------------------------------------------------ 2698 Bra 2699 notprop Lu + 2700 9 2701 notprop Lu ++ 2702 B 2703 notprop Lu + 2704 b 2705 Ket 2706 End 2707 ------------------------------------------------------------------ 2708 2709 /\P{Lu}+9\P{Lu}+B\P{Lu}+b/B 2710 ------------------------------------------------------------------ 2711 Bra 2712 notprop Lu + 2713 9 2714 notprop Lu ++ 2715 B 2716 notprop Lu + 2717 b 2718 Ket 2719 End 2720 ------------------------------------------------------------------ 2721 2722 /\p{Han}+X\p{Greek}+\x{370}/B,utf 2723 ------------------------------------------------------------------ 2724 Bra 2725 prop Han ++ 2726 X 2727 prop Greek + 2728 \x{370} 2729 Ket 2730 End 2731 ------------------------------------------------------------------ 2732 2733 /\p{Xan}+!\p{Xan}+A/B 2734 ------------------------------------------------------------------ 2735 Bra 2736 prop Xan ++ 2737 ! 2738 prop Xan + 2739 A 2740 Ket 2741 End 2742 ------------------------------------------------------------------ 2743 2744 /\p{Xsp}+!\p{Xsp}\t/B 2745 ------------------------------------------------------------------ 2746 Bra 2747 prop Xsp ++ 2748 ! 2749 prop Xsp 2750 \x09 2751 Ket 2752 End 2753 ------------------------------------------------------------------ 2754 2755 /\p{Xps}+!\p{Xps}\t/B 2756 ------------------------------------------------------------------ 2757 Bra 2758 prop Xps ++ 2759 ! 2760 prop Xps 2761 \x09 2762 Ket 2763 End 2764 ------------------------------------------------------------------ 2765 2766 /\p{Xwd}+!\p{Xwd}_/B 2767 ------------------------------------------------------------------ 2768 Bra 2769 prop Xwd ++ 2770 ! 2771 prop Xwd 2772 _ 2773 Ket 2774 End 2775 ------------------------------------------------------------------ 2776 2777 /A+\p{N}A+\dB+\p{N}*B+\d*/B,ucp 2778 ------------------------------------------------------------------ 2779 Bra 2780 A++ 2781 prop N 2782 A++ 2783 prop Nd 2784 B+ 2785 prop N *+ 2786 B++ 2787 prop Nd *+ 2788 Ket 2789 End 2790 ------------------------------------------------------------------ 2791 2792 # These behaved oddly in Perl, so they are kept in this test 2793 2794 /(\x{23a}\x{23a}\x{23a})?\1/i,utf 2795 \= Expect no match 2796 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} 2797 No match 2798 2799 /()?\1/i,utf 2800 \= Expect no match 2801 2802 No match 2803 2804 /(\x{23a}\x{23a}\x{23a})?\1/i,utf 2805 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 2806 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 2807 1: \x{23a}\x{23a}\x{23a} 2808 2809 /()?\1/i,utf 2810 2811 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 2812 1: \x{23a}\x{23a}\x{23a} 2813 2814 /(\x{23a}\x{23a}\x{23a})\1/i,utf 2815 \= Expect no match 2816 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} 2817 No match 2818 2819 /()\1/i,utf 2820 \= Expect no match 2821 2822 No match 2823 2824 /(\x{23a}\x{23a}\x{23a})\1/i,utf 2825 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 2826 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 2827 1: \x{23a}\x{23a}\x{23a} 2828 2829 /()\1/i,utf 2830 2831 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} 2832 1: \x{23a}\x{23a}\x{23a} 2833 2834 /(\x{2c65}\x{2c65})\1/i,utf 2835 \x{2c65}\x{2c65}\x{23a}\x{23a} 2836 0: \x{2c65}\x{2c65}\x{23a}\x{23a} 2837 1: \x{2c65}\x{2c65} 2838 2839 /()\1/i,utf 2840 2841 0: \x{2c65}\x{2c65}\x{23a}\x{23a} 2842 1: \x{2c65}\x{2c65} 2843 2844 /(\x{23a}\x{23a}\x{23a})\1Y/i,utf 2845 X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ 2846 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}Y 2847 1: \x{23a}\x{23a}\x{23a} 2848 2849 /(\x{2c65}\x{2c65})\1Y/i,utf 2850 X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ 2851 0: \x{2c65}\x{2c65}\x{23a}\x{23a}Y 2852 1: \x{2c65}\x{2c65} 2853 2854 # These scripts weren't yet in Perl when I added Unicode 6.0.0 to PCRE 2855 2856 /^[\p{Batak}]/utf 2857 \x{1bc0} 2858 0: \x{1bc0} 2859 \x{1bff} 2860 0: \x{1bff} 2861 \= Expect no match 2862 \x{1bf4} 2863 No match 2864 2865 /^[\p{Brahmi}]/utf 2866 \x{11000} 2867 0: \x{11000} 2868 \x{1106f} 2869 0: \x{1106f} 2870 \= Expect no match 2871 \x{1104e} 2872 No match 2873 2874 /^[\p{Mandaic}]/utf 2875 \x{840} 2876 0: \x{840} 2877 \x{85e} 2878 0: \x{85e} 2879 \= Expect no match 2880 \x{85c} 2881 No match 2882 \x{85d} 2883 No match 2884 2885 /(\X*)(.)/s,utf 2886 A\x{300} 2887 0: A 2888 1: 2889 2: A 2890 2891 /^S(\X*)e(\X*)$/utf 2892 Stereo 2893 0: Ste\x{301}re\x{301}o 2894 1: te\x{301}r 2895 2: \x{301}o 2896 2897 /^\X/utf 2898 reo 2899 0: \x{301} 2900 2901 /^a\X41z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 2902 aX41z 2903 0: aX41z 2904 \= Expect no match 2905 aAz 2906 No match 2907 2908 /\X/ 2909 a\=ps 2910 0: a 2911 a\=ph 2912 Partial match: a 2913 2914 /\Xa/ 2915 aa\=ps 2916 0: aa 2917 aa\=ph 2918 0: aa 2919 2920 /\X{2}/ 2921 aa\=ps 2922 0: aa 2923 aa\=ph 2924 Partial match: aa 2925 2926 /\X+a/ 2927 a\=ps 2928 Partial match: a 2929 aa\=ps 2930 0: aa 2931 aa\=ph 2932 Partial match: aa 2933 2934 /\X+?a/ 2935 a\=ps 2936 Partial match: a 2937 ab\=ps 2938 Partial match: ab 2939 aa\=ps 2940 0: aa 2941 aa\=ph 2942 0: aa 2943 aba\=ps 2944 0: aba 2945 2946 # These Unicode 6.1.0 scripts are not known to Perl. 2947 2948 /\p{Chakma}\d/utf,ucp 2949 \x{11100}\x{1113c} 2950 0: \x{11100}\x{1113c} 2951 2952 /\p{Takri}\d/utf,ucp 2953 \x{11680}\x{116c0} 2954 0: \x{11680}\x{116c0} 2955 2956 /^\X/utf 2957 A\=ps 2958 0: A 2959 A\=ph 2960 Partial match: A 2961 A\x{300}\x{301}\=ps 2962 0: A\x{300}\x{301} 2963 A\x{300}\x{301}\=ph 2964 Partial match: A\x{300}\x{301} 2965 A\x{301}\=ps 2966 0: A\x{301} 2967 A\x{301}\=ph 2968 Partial match: A\x{301} 2969 2970 /^\X{2,3}/utf 2971 A\=ps 2972 Partial match: A 2973 A\=ph 2974 Partial match: A 2975 AA\=ps 2976 0: AA 2977 AA\=ph 2978 Partial match: AA 2979 A\x{300}\x{301}\=ps 2980 Partial match: A\x{300}\x{301} 2981 A\x{300}\x{301}\=ph 2982 Partial match: A\x{300}\x{301} 2983 A\x{300}\x{301}A\x{300}\x{301}\=ps 2984 0: A\x{300}\x{301}A\x{300}\x{301} 2985 A\x{300}\x{301}A\x{300}\x{301}\=ph 2986 Partial match: A\x{300}\x{301}A\x{300}\x{301} 2987 2988 /^\X{2}/utf 2989 AA\=ps 2990 0: AA 2991 AA\=ph 2992 Partial match: AA 2993 A\x{300}\x{301}A\x{300}\x{301}\=ps 2994 0: A\x{300}\x{301}A\x{300}\x{301} 2995 A\x{300}\x{301}A\x{300}\x{301}\=ph 2996 Partial match: A\x{300}\x{301}A\x{300}\x{301} 2997 2998 /^\X+/utf 2999 AA\=ps 3000 0: AA 3001 AA\=ph 3002 Partial match: AA 3003 3004 /^\X+?Z/utf 3005 AA\=ps 3006 Partial match: AA 3007 AA\=ph 3008 Partial match: AA 3009 3010 /A\x{3a3}B/IBi,utf 3011 ------------------------------------------------------------------ 3012 Bra 3013 /i A 3014 clist 03a3 03c2 03c3 3015 /i B 3016 Ket 3017 End 3018 ------------------------------------------------------------------ 3019 Capturing subpattern count = 0 3020 Options: caseless utf 3021 First code unit = 'A' (caseless) 3022 Last code unit = 'B' (caseless) 3023 Subject length lower bound = 3 3024 3025 /[\x{3a3}]/Bi,utf 3026 ------------------------------------------------------------------ 3027 Bra 3028 clist 03a3 03c2 03c3 3029 Ket 3030 End 3031 ------------------------------------------------------------------ 3032 3033 /[^\x{3a3}]/Bi,utf 3034 ------------------------------------------------------------------ 3035 Bra 3036 not clist 03a3 03c2 03c3 3037 Ket 3038 End 3039 ------------------------------------------------------------------ 3040 3041 /[\x{3a3}]+/Bi,utf 3042 ------------------------------------------------------------------ 3043 Bra 3044 clist 03a3 03c2 03c3 ++ 3045 Ket 3046 End 3047 ------------------------------------------------------------------ 3048 3049 /[^\x{3a3}]+/Bi,utf 3050 ------------------------------------------------------------------ 3051 Bra 3052 not clist 03a3 03c2 03c3 ++ 3053 Ket 3054 End 3055 ------------------------------------------------------------------ 3056 3057 /a*\x{3a3}/Bi,utf 3058 ------------------------------------------------------------------ 3059 Bra 3060 /i a*+ 3061 clist 03a3 03c2 03c3 3062 Ket 3063 End 3064 ------------------------------------------------------------------ 3065 3066 /\x{3a3}+a/Bi,utf 3067 ------------------------------------------------------------------ 3068 Bra 3069 clist 03a3 03c2 03c3 ++ 3070 /i a 3071 Ket 3072 End 3073 ------------------------------------------------------------------ 3074 3075 /\x{3a3}*\x{3c2}/Bi,utf 3076 ------------------------------------------------------------------ 3077 Bra 3078 clist 03a3 03c2 03c3 * 3079 clist 03a3 03c2 03c3 3080 Ket 3081 End 3082 ------------------------------------------------------------------ 3083 3084 /\x{3a3}{3}/i,utf,aftertext 3085 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 3086 0: \x{3a3}\x{3c3}\x{3c2} 3087 0+ \x{3a3}\x{3c3}\x{3c2} 3088 3089 /\x{3a3}{2,4}/i,utf,aftertext 3090 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 3091 0: \x{3a3}\x{3c3}\x{3c2}\x{3a3} 3092 0+ \x{3c3}\x{3c2} 3093 3094 /\x{3a3}{2,4}?/i,utf,aftertext 3095 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 3096 0: \x{3a3}\x{3c3} 3097 0+ \x{3c2}\x{3a3}\x{3c3}\x{3c2} 3098 3099 /\x{3a3}+./i,utf,aftertext 3100 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 3101 0: \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 3102 0+ 3103 3104 /\x{3a3}++./i,utf,aftertext 3105 \= Expect no match 3106 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} 3107 No match 3108 3109 /\x{3a3}*\x{3c2}/Bi,utf 3110 ------------------------------------------------------------------ 3111 Bra 3112 clist 03a3 03c2 03c3 * 3113 clist 03a3 03c2 03c3 3114 Ket 3115 End 3116 ------------------------------------------------------------------ 3117 3118 /[^\x{3a3}]*\x{3c2}/Bi,utf 3119 ------------------------------------------------------------------ 3120 Bra 3121 not clist 03a3 03c2 03c3 *+ 3122 clist 03a3 03c2 03c3 3123 Ket 3124 End 3125 ------------------------------------------------------------------ 3126 3127 /[^a]*\x{3c2}/Bi,utf 3128 ------------------------------------------------------------------ 3129 Bra 3130 /i [^a]* 3131 clist 03a3 03c2 03c3 3132 Ket 3133 End 3134 ------------------------------------------------------------------ 3135 3136 /ist/Bi,utf 3137 ------------------------------------------------------------------ 3138 Bra 3139 /i i 3140 clist 0053 0073 017f 3141 /i t 3142 Ket 3143 End 3144 ------------------------------------------------------------------ 3145 \= Expect no match 3146 ikt 3147 No match 3148 3149 /is+t/i,utf 3150 iSs\x{17f}t 3151 0: iSs\x{17f}t 3152 \= Expect no match 3153 ikt 3154 No match 3155 3156 /is+?t/i,utf 3157 \= Expect no match 3158 ikt 3159 No match 3160 3161 /is?t/i,utf 3162 \= Expect no match 3163 ikt 3164 No match 3165 3166 /is{2}t/i,utf 3167 \= Expect no match 3168 iskt 3169 No match 3170 3171 # This property is a PCRE special 3172 3173 /^\p{Xuc}/utf 3174 $abc 3175 0: $ 3176 @abc 3177 0: @ 3178 `abc 3179 0: ` 3180 \x{1234}abc 3181 0: \x{1234} 3182 \= Expect no match 3183 abc 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: $ 3196 \= Expect no match 3197 \x{9f} 3198 No match 3199 3200 /^\p{Xuc}+?\*/utf 3201 $@`\x{a0}\x{1234}\x{e000}** 3202 0: $@`\x{a0}\x{1234}\x{e000}* 3203 \= Expect no match 3204 \x{9f} 3205 No match 3206 3207 /^\p{Xuc}++/utf 3208 $@`\x{a0}\x{1234}\x{e000}** 3209 0: $@`\x{a0}\x{1234}\x{e000} 3210 \= Expect no match 3211 \x{9f} 3212 No match 3213 3214 /^\p{Xuc}{3,5}/utf 3215 $@`\x{a0}\x{1234}\x{e000}** 3216 0: $@`\x{a0}\x{1234} 3217 \= Expect no match 3218 \x{9f} 3219 No match 3220 3221 /^\p{Xuc}{3,5}?/utf 3222 $@`\x{a0}\x{1234}\x{e000}** 3223 0: $@` 3224 \= Expect no match 3225 \x{9f} 3226 No match 3227 3228 /^[\p{Xuc}]/utf 3229 $@`\x{a0}\x{1234}\x{e000}** 3230 0: $ 3231 \= Expect no match 3232 \x{9f} 3233 No match 3234 3235 /^[\p{Xuc}]+/utf 3236 $@`\x{a0}\x{1234}\x{e000}** 3237 0: $@`\x{a0}\x{1234}\x{e000} 3238 \= Expect no match 3239 \x{9f} 3240 No match 3241 3242 /^\P{Xuc}/utf 3243 abc 3244 0: a 3245 \= Expect no match 3246 $abc 3247 No match 3248 @abc 3249 No match 3250 `abc 3251 No match 3252 \x{1234}abc 3253 No match 3254 3255 /^[\P{Xuc}]/utf 3256 abc 3257 0: a 3258 \= Expect no match 3259 $abc 3260 No match 3261 @abc 3262 No match 3263 `abc 3264 No match 3265 \x{1234}abc 3266 No match 3267 3268 # Some auto-possessification tests 3269 3270 /\pN+\z/B 3271 ------------------------------------------------------------------ 3272 Bra 3273 prop N ++ 3274 \z 3275 Ket 3276 End 3277 ------------------------------------------------------------------ 3278 3279 /\PN+\z/B 3280 ------------------------------------------------------------------ 3281 Bra 3282 notprop N ++ 3283 \z 3284 Ket 3285 End 3286 ------------------------------------------------------------------ 3287 3288 /\pN+/B 3289 ------------------------------------------------------------------ 3290 Bra 3291 prop N ++ 3292 Ket 3293 End 3294 ------------------------------------------------------------------ 3295 3296 /\PN+/B 3297 ------------------------------------------------------------------ 3298 Bra 3299 notprop N ++ 3300 Ket 3301 End 3302 ------------------------------------------------------------------ 3303 3304 /\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 3305 ------------------------------------------------------------------ 3306 Bra 3307 prop Any + 3308 prop Any 3309 prop Any + 3310 notprop Any 3311 prop Any + 3312 prop L& 3313 prop Any + 3314 prop L 3315 prop Any + 3316 prop Lu 3317 prop Any + 3318 prop Han 3319 prop Any + 3320 prop Xan 3321 prop Any + 3322 prop Xsp 3323 prop Any + 3324 prop Xps 3325 prop Xwd + 3326 prop Any 3327 prop Any + 3328 prop Xuc 3329 Ket 3330 End 3331 ------------------------------------------------------------------ 3332 3333 /\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 3334 ------------------------------------------------------------------ 3335 Bra 3336 prop L& + 3337 prop Any 3338 prop L& + 3339 prop L& 3340 notprop L& ++ 3341 prop L& 3342 prop L& + 3343 prop L 3344 prop L& + 3345 prop Lu 3346 prop L& + 3347 prop Han 3348 prop L& + 3349 prop Xan 3350 prop L& ++ 3351 notprop Xan 3352 prop L& ++ 3353 prop Xsp 3354 prop L& ++ 3355 prop Xps 3356 prop Xwd + 3357 prop L& 3358 prop L& + 3359 prop Xuc 3360 Ket 3361 End 3362 ------------------------------------------------------------------ 3363 3364 /\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 3365 ------------------------------------------------------------------ 3366 Bra 3367 prop N + 3368 prop Any 3369 prop N + 3370 prop L& 3371 prop N ++ 3372 prop L 3373 prop N + 3374 notprop L 3375 prop N ++ 3376 notprop N 3377 prop N ++ 3378 prop Lu 3379 prop N + 3380 prop Han 3381 prop N + 3382 prop Xan 3383 prop N ++ 3384 prop Xsp 3385 prop N ++ 3386 prop Xps 3387 prop Xwd + 3388 prop N 3389 prop N + 3390 prop Xuc 3391 Ket 3392 End 3393 ------------------------------------------------------------------ 3394 3395 /\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 3396 ------------------------------------------------------------------ 3397 Bra 3398 prop Lu + 3399 prop Any 3400 prop Lu + 3401 prop L& 3402 prop Lu + 3403 prop L 3404 prop Lu + 3405 prop Lu 3406 notprop Lu ++ 3407 prop Lu 3408 prop Lu ++ 3409 prop Nd 3410 prop Lu + 3411 notprop Nd 3412 prop Lu + 3413 prop Han 3414 prop Lu + 3415 prop Xan 3416 prop Lu ++ 3417 prop Xsp 3418 prop Lu ++ 3419 prop Xps 3420 prop Xwd + 3421 prop Lu 3422 prop Lu + 3423 prop Xuc 3424 Ket 3425 End 3426 ------------------------------------------------------------------ 3427 3428 /\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 3429 ------------------------------------------------------------------ 3430 Bra 3431 prop Han + 3432 prop Lu 3433 prop Han + 3434 prop L& 3435 prop Han + 3436 prop L 3437 prop Han + 3438 prop Lu 3439 prop Han ++ 3440 prop Arabic 3441 prop Arabic + 3442 prop Arabic 3443 prop Han + 3444 prop Xan 3445 prop Han + 3446 prop Xsp 3447 prop Han + 3448 prop Xps 3449 prop Xwd + 3450 prop Han 3451 prop Han + 3452 prop Xuc 3453 Ket 3454 End 3455 ------------------------------------------------------------------ 3456 3457 /\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 3458 ------------------------------------------------------------------ 3459 Bra 3460 prop Xan + 3461 prop Any 3462 prop Xan + 3463 prop L& 3464 notprop Xan ++ 3465 prop L& 3466 prop Xan + 3467 prop L 3468 prop Xan + 3469 prop Lu 3470 prop Xan + 3471 prop Han 3472 prop Xan + 3473 prop Xan 3474 prop Xan ++ 3475 notprop Xan 3476 prop Xan ++ 3477 prop Xsp 3478 prop Xan ++ 3479 prop Xps 3480 prop Xwd + 3481 prop Xan 3482 prop Xan + 3483 prop Xuc 3484 Ket 3485 End 3486 ------------------------------------------------------------------ 3487 3488 /\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 3489 ------------------------------------------------------------------ 3490 Bra 3491 prop Xsp + 3492 prop Any 3493 prop Xsp ++ 3494 prop L& 3495 prop Xsp ++ 3496 prop L 3497 prop Xsp ++ 3498 prop Lu 3499 prop Xsp + 3500 prop Han 3501 prop Xsp ++ 3502 prop Xan 3503 prop Xsp + 3504 prop Xsp 3505 notprop Xsp ++ 3506 prop Xsp 3507 prop Xsp + 3508 prop Xps 3509 prop Xwd ++ 3510 prop Xsp 3511 prop Xsp + 3512 prop Xuc 3513 Ket 3514 End 3515 ------------------------------------------------------------------ 3516 3517 /\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 3518 ------------------------------------------------------------------ 3519 Bra 3520 prop Xwd + 3521 prop Any 3522 prop Xwd + 3523 prop L& 3524 prop Xwd + 3525 prop L 3526 prop Xwd + 3527 prop Lu 3528 prop Xwd + 3529 prop Han 3530 prop Xwd + 3531 prop Xan 3532 prop Xwd ++ 3533 prop Xsp 3534 prop Xwd ++ 3535 prop Xps 3536 prop Xwd + 3537 prop Xwd 3538 prop Xwd ++ 3539 notprop Xwd 3540 prop Xwd + 3541 prop Xuc 3542 Ket 3543 End 3544 ------------------------------------------------------------------ 3545 3546 /\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 3547 ------------------------------------------------------------------ 3548 Bra 3549 prop Xuc + 3550 prop Any 3551 prop Xuc + 3552 prop L& 3553 prop Xuc + 3554 prop L 3555 prop Xuc + 3556 prop Lu 3557 prop Xuc + 3558 prop Han 3559 prop Xuc + 3560 prop Xan 3561 prop Xuc + 3562 prop Xsp 3563 prop Xuc + 3564 prop Xps 3565 prop Xwd + 3566 prop Xuc 3567 prop Xuc + 3568 prop Xuc 3569 prop Xuc ++ 3570 notprop Xuc 3571 Ket 3572 End 3573 ------------------------------------------------------------------ 3574 3575 /\p{N}+\p{Ll} \p{N}+\p{Nd} \p{N}+\P{Nd}/Bx,ucp 3576 ------------------------------------------------------------------ 3577 Bra 3578 prop N ++ 3579 prop Ll 3580 prop N + 3581 prop Nd 3582 prop N + 3583 notprop Nd 3584 Ket 3585 End 3586 ------------------------------------------------------------------ 3587 3588 /\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 3589 ------------------------------------------------------------------ 3590 Bra 3591 prop Xan + 3592 prop L 3593 prop Xan + 3594 prop N 3595 prop Xan ++ 3596 prop C 3597 prop Xan + 3598 notprop L 3599 notprop Xan ++ 3600 prop N 3601 prop Xan + 3602 notprop C 3603 Ket 3604 End 3605 ------------------------------------------------------------------ 3606 3607 /\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 3608 ------------------------------------------------------------------ 3609 Bra 3610 prop L + 3611 prop Xan 3612 prop N + 3613 prop Xan 3614 prop C ++ 3615 prop Xan 3616 notprop L + 3617 prop Xan 3618 prop N + 3619 prop Xan 3620 notprop C + 3621 prop Xan 3622 prop L ++ 3623 notprop Xan 3624 Ket 3625 End 3626 ------------------------------------------------------------------ 3627 3628 /\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 3629 ------------------------------------------------------------------ 3630 Bra 3631 prop Xan + 3632 prop Lu 3633 prop Xan + 3634 prop Nd 3635 prop Xan ++ 3636 prop Cc 3637 prop Xan + 3638 notprop Ll 3639 notprop Xan ++ 3640 prop No 3641 prop Xan + 3642 notprop Cf 3643 Ket 3644 End 3645 ------------------------------------------------------------------ 3646 3647 /\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 3648 ------------------------------------------------------------------ 3649 Bra 3650 prop Lu + 3651 prop Xan 3652 prop Nd + 3653 prop Xan 3654 prop Cs ++ 3655 prop Xan 3656 notprop Lt + 3657 prop Xan 3658 prop Nl + 3659 prop Xan 3660 notprop Cc + 3661 prop Xan 3662 prop Lt ++ 3663 notprop Xan 3664 Ket 3665 End 3666 ------------------------------------------------------------------ 3667 3668 /\w+\p{P} \w+\p{Po} \w+\s \p{Xan}+\s \s+\p{Xan} \s+\w/Bx,ucp 3669 ------------------------------------------------------------------ 3670 Bra 3671 prop Xwd + 3672 prop P 3673 prop Xwd + 3674 prop Po 3675 prop Xwd ++ 3676 prop Xsp 3677 prop Xan ++ 3678 prop Xsp 3679 prop Xsp ++ 3680 prop Xan 3681 prop Xsp ++ 3682 prop Xwd 3683 Ket 3684 End 3685 ------------------------------------------------------------------ 3686 3687 /\w+\P{P} \W+\p{Po} \w+\S \P{Xan}+\s \s+\P{Xan} \s+\W/Bx,ucp 3688 ------------------------------------------------------------------ 3689 Bra 3690 prop Xwd + 3691 notprop P 3692 notprop Xwd + 3693 prop Po 3694 prop Xwd + 3695 notprop Xsp 3696 notprop Xan + 3697 prop Xsp 3698 prop Xsp + 3699 notprop Xan 3700 prop Xsp + 3701 notprop Xwd 3702 Ket 3703 End 3704 ------------------------------------------------------------------ 3705 3706 /\w+\p{Po} \w+\p{Pc} \W+\p{Po} \W+\p{Pc} \w+\P{Po} \w+\P{Pc}/Bx,ucp 3707 ------------------------------------------------------------------ 3708 Bra 3709 prop Xwd + 3710 prop Po 3711 prop Xwd ++ 3712 prop Pc 3713 notprop Xwd + 3714 prop Po 3715 notprop Xwd + 3716 prop Pc 3717 prop Xwd + 3718 notprop Po 3719 prop Xwd + 3720 notprop Pc 3721 Ket 3722 End 3723 ------------------------------------------------------------------ 3724 3725 /\p{Nl}+\p{Xan} \P{Nl}+\p{Xan} \p{Nl}+\P{Xan} \P{Nl}+\P{Xan}/Bx,ucp 3726 ------------------------------------------------------------------ 3727 Bra 3728 prop Nl + 3729 prop Xan 3730 notprop Nl + 3731 prop Xan 3732 prop Nl ++ 3733 notprop Xan 3734 notprop Nl + 3735 notprop Xan 3736 Ket 3737 End 3738 ------------------------------------------------------------------ 3739 3740 /\p{Xan}+\p{Nl} \P{Xan}+\p{Nl} \p{Xan}+\P{Nl} \P{Xan}+\P{Nl}/Bx,ucp 3741 ------------------------------------------------------------------ 3742 Bra 3743 prop Xan + 3744 prop Nl 3745 notprop Xan ++ 3746 prop Nl 3747 prop Xan + 3748 notprop Nl 3749 notprop Xan + 3750 notprop Nl 3751 Ket 3752 End 3753 ------------------------------------------------------------------ 3754 3755 /\p{Xan}+\p{Nd} \P{Xan}+\p{Nd} \p{Xan}+\P{Nd} \P{Xan}+\P{Nd}/Bx,ucp 3756 ------------------------------------------------------------------ 3757 Bra 3758 prop Xan + 3759 prop Nd 3760 notprop Xan ++ 3761 prop Nd 3762 prop Xan + 3763 notprop Nd 3764 notprop Xan + 3765 notprop Nd 3766 Ket 3767 End 3768 ------------------------------------------------------------------ 3769 3770 # End auto-possessification tests 3771 3772 /\w+/B,utf,ucp,auto_callout 3773 ------------------------------------------------------------------ 3774 Bra 3775 Callout 255 0 3 3776 prop Xwd ++ 3777 Callout 255 3 0 3778 Ket 3779 End 3780 ------------------------------------------------------------------ 3781 abcd 3782 --->abcd 3783 +0 ^ \w+ 3784 +3 ^ ^ 3785 0: abcd 3786 3787 /[\p{N}]?+/B,no_auto_possess 3788 ------------------------------------------------------------------ 3789 Bra 3790 [\p{N}]?+ 3791 Ket 3792 End 3793 ------------------------------------------------------------------ 3794 3795 /[\p{L}ab]{2,3}+/B,no_auto_possess 3796 ------------------------------------------------------------------ 3797 Bra 3798 [ab\p{L}]{2,3}+ 3799 Ket 3800 End 3801 ------------------------------------------------------------------ 3802 3803 /\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 3804 ------------------------------------------------------------------ 3805 Bra 3806 \D+ 3807 extuni 3808 \d+ 3809 extuni 3810 \S+ 3811 extuni 3812 \s+ 3813 extuni 3814 \W+ 3815 extuni 3816 \w+ 3817 extuni 3818 \R+ 3819 extuni 3820 \H+ 3821 extuni 3822 \h+ 3823 extuni 3824 \V+ 3825 extuni 3826 \v+ 3827 extuni 3828 a+ 3829 extuni 3830 \x0a+ 3831 extuni 3832 Any+ 3833 extuni 3834 Ket 3835 End 3836 ------------------------------------------------------------------ 3837 3838 /.+\X/Bsx 3839 ------------------------------------------------------------------ 3840 Bra 3841 AllAny+ 3842 extuni 3843 Ket 3844 End 3845 ------------------------------------------------------------------ 3846 3847 /\X+$/Bmx 3848 ------------------------------------------------------------------ 3849 Bra 3850 extuni+ 3851 /m $ 3852 Ket 3853 End 3854 ------------------------------------------------------------------ 3855 3856 /\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 3857 ------------------------------------------------------------------ 3858 Bra 3859 extuni+ 3860 \D 3861 extuni+ 3862 \d 3863 extuni+ 3864 \S 3865 extuni+ 3866 \s 3867 extuni+ 3868 \W 3869 extuni+ 3870 \w 3871 extuni+ 3872 Any 3873 extuni+ 3874 \R 3875 extuni+ 3876 \H 3877 extuni+ 3878 \h 3879 extuni+ 3880 \V 3881 extuni+ 3882 \v 3883 extuni+ 3884 extuni 3885 extuni+ 3886 \Z 3887 extuni++ 3888 \z 3889 extuni+ 3890 $ 3891 Ket 3892 End 3893 ------------------------------------------------------------------ 3894 3895 /\d+\s{0,5}=\s*\S?=\w{0,4}\W*/B,utf,ucp 3896 ------------------------------------------------------------------ 3897 Bra 3898 prop Nd ++ 3899 prop Xsp {0,5}+ 3900 = 3901 prop Xsp *+ 3902 notprop Xsp ? 3903 = 3904 prop Xwd {0,4}+ 3905 notprop Xwd *+ 3906 Ket 3907 End 3908 ------------------------------------------------------------------ 3909 3910 /[RST]+/Bi,utf,ucp 3911 ------------------------------------------------------------------ 3912 Bra 3913 [R-Tr-t\x{17f}]++ 3914 Ket 3915 End 3916 ------------------------------------------------------------------ 3917 3918 /[R-T]+/Bi,utf,ucp 3919 ------------------------------------------------------------------ 3920 Bra 3921 [R-Tr-t\x{17f}]++ 3922 Ket 3923 End 3924 ------------------------------------------------------------------ 3925 3926 /[Q-U]+/Bi,utf,ucp 3927 ------------------------------------------------------------------ 3928 Bra 3929 [Q-Uq-u\x{17f}]++ 3930 Ket 3931 End 3932 ------------------------------------------------------------------ 3933 3934 /^s?c/Iim,utf 3935 Capturing subpattern count = 0 3936 Options: caseless multiline utf 3937 First code unit at start or follows newline 3938 Last code unit = 'c' (caseless) 3939 Subject length lower bound = 1 3940 scat 3941 0: sc 3942 3943 /\X?abc/utf,no_start_optimize 3944 \xff\x7f\x00\x00\x03\x00\x41\xcc\x80\x41\x{300}\x61\x62\x63\x00\=no_utf_check,offset=06 3945 0: A\x{300}abc 3946 3947 /\x{100}\x{200}\K\x{300}/utf,startchar 3948 \x{100}\x{200}\x{300} 3949 0: \x{100}\x{200}\x{300} 3950 ^^^^^^^^^^^^^^ 3951 3952 # Test UTF characters in a substitution 3953 3954 /bc/utf,replace=XZ 3955 123bc123 3956 1: 123X\x{1234}Z123 3957 3958 /(?<=abc)(|def)/g,utf,replace=<$0> 3959 123abcyzabcdef789abcqr 3960 4: 123abc<>\x{e1}yzabc<><def>789abc<>\x{1234}qr 3961 3962 /[A-`]/iB,utf 3963 ------------------------------------------------------------------ 3964 Bra 3965 [A-z\x{212a}\x{17f}] 3966 Ket 3967 End 3968 ------------------------------------------------------------------ 3969 abcdefghijklmno 3970 0: a 3971 3972 /(?<=\K\x{17f})/g,utf,aftertext 3973 \x{17f}\x{17f}\x{17f}\x{17f}\x{17f} 3974 0: \x{17f} 3975 0+ \x{17f}\x{17f}\x{17f}\x{17f} 3976 0: \x{17f} 3977 0+ \x{17f}\x{17f}\x{17f} 3978 0: \x{17f} 3979 0+ \x{17f}\x{17f} 3980 0: \x{17f} 3981 0+ \x{17f} 3982 0: \x{17f} 3983 0+ 3984 3985 /(?<=\K\x{17f})/altglobal,utf,aftertext 3986 \x{17f}\x{17f}\x{17f}\x{17f}\x{17f} 3987 0: \x{17f} 3988 0+ \x{17f}\x{17f}\x{17f}\x{17f} 3989 0: \x{17f} 3990 0+ \x{17f}\x{17f}\x{17f} 3991 0: \x{17f} 3992 0+ \x{17f}\x{17f} 3993 0: \x{17f} 3994 0+ \x{17f} 3995 0: \x{17f} 3996 0+ 3997 3998 "\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" 3999 Failed: error 122 at offset 1227: unmatched closing parenthesis 4000 4001 /$(&.+[\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'})*?/ 4002 4003 "(*UTF)(*UCP)(.UTF).+X(\V+;\^(\D|)!999}(?(?C{7(?C')\H*\S*/^\x5\xa\\xd3\x85n?(;\D*(?m).[^mH+((*UCP)(*U:F)})(?!^)(?'" 4004 Failed: error 124 at offset 113: letter or underscore expected after (?< or (?' 4005 4006 /[\pS#moq]/ 4007 = 4008 0: = 4009 4010 /(*:a\x{12345}b\t(d\)c)xxx/utf,alt_verbnames,mark 4011 cxxxz 4012 0: xxx 4013 MK: a\x{12345}b\x{09}(d)c 4014 4015 /abcd/utf,replace=x\x{824}y\o{3333}z(\Q12\$34$$\x34\E5$$),substitute_extended 4016 abcd 4017 1: x\x{824}y\x{6db}z(12\$34$$\x345$) 4018 4019 /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 4020 a\x{e0}\x{101}\x{c0}\x{102} 4021 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 4022 4023 /((?<digit>\d)|(?<letter>\p{L}))/g,substitute_extended,replace=<${digit:+digit; :not digit; }${letter:+letter:not a letter}> 4024 ab12cde 4025 7: <not digit; letter><not digit; letter><digit; not a letter><digit; not a letter><not digit; letter><not digit; letter><not digit; letter> 4026 4027 /[\W\p{Any}]/B 4028 ------------------------------------------------------------------ 4029 Bra 4030 [\x00-/:-@[-^`{-\xff\p{Any}] 4031 Ket 4032 End 4033 ------------------------------------------------------------------ 4034 abc 4035 0: a 4036 123 4037 0: 1 4038 4039 /[\W\pL]/B 4040 ------------------------------------------------------------------ 4041 Bra 4042 [\x00-/:-@[-^`{-\xff\p{L}] 4043 Ket 4044 End 4045 ------------------------------------------------------------------ 4046 abc 4047 0: a 4048 \= Expect no match 4049 123 4050 No match 4051 4052 /(*UCP)(*UTF)[[:>:]]X/B 4053 ------------------------------------------------------------------ 4054 Bra 4055 \b 4056 AssertB 4057 Reverse 4058 prop Xwd 4059 Ket 4060 X 4061 Ket 4062 End 4063 ------------------------------------------------------------------ 4064 4065 /abc/utf,replace=xyz 4066 abc\=zero_terminate 4067 1: xyz 4068 4069 /a[[:punct:]b]/ucp,bincode 4070 ------------------------------------------------------------------ 4071 Bra 4072 a 4073 [b[:punct:]] 4074 Ket 4075 End 4076 ------------------------------------------------------------------ 4077 4078 /a[[:punct:]b]/utf,ucp,bincode 4079 ------------------------------------------------------------------ 4080 Bra 4081 a 4082 [b[:punct:]] 4083 Ket 4084 End 4085 ------------------------------------------------------------------ 4086 4087 /a[b[:punct:]]/utf,ucp,bincode 4088 ------------------------------------------------------------------ 4089 Bra 4090 a 4091 [b[:punct:]] 4092 Ket 4093 End 4094 ------------------------------------------------------------------ 4095 4096 /[[:^ascii:]]/utf,ucp,bincode 4097 ------------------------------------------------------------------ 4098 Bra 4099 [\x80-\xff] (neg) 4100 Ket 4101 End 4102 ------------------------------------------------------------------ 4103 4104 /[[:^ascii:]\w]/utf,ucp,bincode 4105 ------------------------------------------------------------------ 4106 Bra 4107 [\x80-\xff\p{Xwd}\x{100}-\x{10ffff}] 4108 Ket 4109 End 4110 ------------------------------------------------------------------ 4111 4112 /[\w[:^ascii:]]/utf,ucp,bincode 4113 ------------------------------------------------------------------ 4114 Bra 4115 [\x80-\xff\p{Xwd}\x{100}-\x{10ffff}] 4116 Ket 4117 End 4118 ------------------------------------------------------------------ 4119 4120 /[^[:ascii:]\W]/utf,ucp,bincode 4121 ------------------------------------------------------------------ 4122 Bra 4123 [^\x00-\x7f\P{Xwd}] 4124 Ket 4125 End 4126 ------------------------------------------------------------------ 4127 \x{de} 4128 0: \x{de} 4129 \x{200} 4130 0: \x{200} 4131 \= Expect no match 4132 \x{300} 4133 No match 4134 \x{37e} 4135 No match 4136 4137 /[[:^ascii:]a]/utf,ucp,bincode 4138 ------------------------------------------------------------------ 4139 Bra 4140 [a\x80-\xff] (neg) 4141 Ket 4142 End 4143 ------------------------------------------------------------------ 4144 4145 /L(?#(|++<!(2)?/B,utf,no_auto_possess,auto_callout 4146 ------------------------------------------------------------------ 4147 Bra 4148 Callout 255 0 14 4149 L? 4150 Callout 255 14 0 4151 Ket 4152 End 4153 ------------------------------------------------------------------ 4154 4155 /L(?#(|++<!(2)?/B,utf,ucp,auto_callout 4156 ------------------------------------------------------------------ 4157 Bra 4158 Callout 255 0 14 4159 L?+ 4160 Callout 255 14 0 4161 Ket 4162 End 4163 ------------------------------------------------------------------ 4164 4165 /(*UTF)C\x09((?<!'(?x)!*H? #\xcc\x9a[^$]/ 4166 Failed: error 114 at offset 39: missing closing parenthesis 4167 4168 # End of testinput5 4169