1 # This set of tests checks UTF and Unicode property support with the DFA 2 # matching functionality of pcre_dfa_match(). A default subject modifier is 3 # used to force DFA matching for all tests. 4 5 #subject dfa 6 #newline_default LF any anyCRLF 7 8 /\x{100}ab/utf 9 \x{100}ab 10 11 /a\x{100}*b/utf 12 ab 13 a\x{100}b 14 a\x{100}\x{100}b 15 16 /a\x{100}+b/utf 17 a\x{100}b 18 a\x{100}\x{100}b 19 \= Expect no match 20 ab 21 22 /\bX/utf 23 Xoanon 24 +Xoanon 25 \x{300}Xoanon 26 \= Expect no match 27 YXoanon 28 29 /\BX/utf 30 YXoanon 31 \= Expect no match 32 Xoanon 33 +Xoanon 34 \x{300}Xoanon 35 36 /X\b/utf 37 X+oanon 38 ZX\x{300}oanon 39 FAX 40 \= Expect no match 41 Xoanon 42 43 /X\B/utf 44 Xoanon 45 \= Expect no match 46 X+oanon 47 ZX\x{300}oanon 48 FAX 49 50 /[^a]/utf 51 abcd 52 a\x{100} 53 54 /^[abc\x{123}\x{400}-\x{402}]{2,3}\d/utf 55 ab99 56 \x{123}\x{123}45 57 \x{400}\x{401}\x{402}6 58 \= Expect no match 59 d99 60 \x{123}\x{122}4 61 \x{400}\x{403}6 62 \x{400}\x{401}\x{402}\x{402}6 63 64 /a.b/utf 65 acb 66 a\x7fb 67 a\x{100}b 68 \= Expect no match 69 a\nb 70 71 /a(.{3})b/utf 72 a\x{4000}xyb 73 a\x{4000}\x7fyb 74 a\x{4000}\x{100}yb 75 \= Expect no match 76 a\x{4000}b 77 ac\ncb 78 79 /a(.*?)(.)/ 80 a\xc0\x88b 81 82 /a(.*?)(.)/utf 83 a\x{100}b 84 85 /a(.*)(.)/ 86 a\xc0\x88b 87 88 /a(.*)(.)/utf 89 a\x{100}b 90 91 /a(.)(.)/ 92 a\xc0\x92bcd 93 94 /a(.)(.)/utf 95 a\x{240}bcd 96 97 /a(.?)(.)/ 98 a\xc0\x92bcd 99 100 /a(.?)(.)/utf 101 a\x{240}bcd 102 103 /a(.??)(.)/ 104 a\xc0\x92bcd 105 106 /a(.??)(.)/utf 107 a\x{240}bcd 108 109 /a(.{3})b/utf 110 a\x{1234}xyb 111 a\x{1234}\x{4321}yb 112 a\x{1234}\x{4321}\x{3412}b 113 \= Expect no match 114 a\x{1234}b 115 ac\ncb 116 117 /a(.{3,})b/utf 118 a\x{1234}xyb 119 a\x{1234}\x{4321}yb 120 a\x{1234}\x{4321}\x{3412}b 121 axxxxbcdefghijb 122 a\x{1234}\x{4321}\x{3412}\x{3421}b 123 \= Expect no match 124 a\x{1234}b 125 126 /a(.{3,}?)b/utf 127 a\x{1234}xyb 128 a\x{1234}\x{4321}yb 129 a\x{1234}\x{4321}\x{3412}b 130 axxxxbcdefghijb 131 a\x{1234}\x{4321}\x{3412}\x{3421}b 132 \= Expect no match 133 a\x{1234}b 134 135 /a(.{3,5})b/utf 136 a\x{1234}xyb 137 a\x{1234}\x{4321}yb 138 a\x{1234}\x{4321}\x{3412}b 139 axxxxbcdefghijb 140 a\x{1234}\x{4321}\x{3412}\x{3421}b 141 axbxxbcdefghijb 142 axxxxxbcdefghijb 143 \= Expect no match 144 a\x{1234}b 145 axxxxxxbcdefghijb 146 147 /a(.{3,5}?)b/utf 148 a\x{1234}xyb 149 a\x{1234}\x{4321}yb 150 a\x{1234}\x{4321}\x{3412}b 151 axxxxbcdefghijb 152 a\x{1234}\x{4321}\x{3412}\x{3421}b 153 axbxxbcdefghijb 154 axxxxxbcdefghijb 155 \= Expect no match 156 a\x{1234}b 157 axxxxxxbcdefghijb 158 159 /^[a\x{c0}]/utf 160 \= Expect no match 161 \x{100} 162 163 /(?<=aXb)cd/utf 164 aXbcd 165 166 /(?<=a\x{100}b)cd/utf 167 a\x{100}bcd 168 169 /(?<=a\x{100000}b)cd/utf 170 a\x{100000}bcd 171 172 /(?:\x{100}){3}b/utf 173 \x{100}\x{100}\x{100}b 174 \= Expect no match 175 \x{100}\x{100}b 176 177 /\x{ab}/utf 178 \x{ab} 179 \xc2\xab 180 \= Expect no match 181 \x00{ab} 182 183 /(?<=(.))X/utf 184 WXYZ 185 \x{256}XYZ 186 \= Expect no match 187 XYZ 188 189 /[^a]+/g,utf 190 bcd 191 \x{100}aY\x{256}Z 192 193 /^[^a]{2}/utf 194 \x{100}bc 195 196 /^[^a]{2,}/utf 197 \x{100}bcAa 198 199 /^[^a]{2,}?/utf 200 \x{100}bca 201 202 /[^a]+/gi,utf 203 bcd 204 \x{100}aY\x{256}Z 205 206 /^[^a]{2}/i,utf 207 \x{100}bc 208 209 /^[^a]{2,}/i,utf 210 \x{100}bcAa 211 212 /^[^a]{2,}?/i,utf 213 \x{100}bca 214 215 /\x{100}{0,0}/utf 216 abcd 217 218 /\x{100}?/utf 219 abcd 220 \x{100}\x{100} 221 222 /\x{100}{0,3}/utf 223 \x{100}\x{100} 224 \x{100}\x{100}\x{100}\x{100} 225 226 /\x{100}*/utf 227 abce 228 \x{100}\x{100}\x{100}\x{100} 229 230 /\x{100}{1,1}/utf 231 abcd\x{100}\x{100}\x{100}\x{100} 232 233 /\x{100}{1,3}/utf 234 abcd\x{100}\x{100}\x{100}\x{100} 235 236 /\x{100}+/utf 237 abcd\x{100}\x{100}\x{100}\x{100} 238 239 /\x{100}{3}/utf 240 abcd\x{100}\x{100}\x{100}XX 241 242 /\x{100}{3,5}/utf 243 abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX 244 245 /\x{100}{3,}/utf,no_auto_possess 246 abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX 247 248 /(?<=a\x{100}{2}b)X/utf 249 Xyyya\x{100}\x{100}bXzzz 250 251 /\D*/utf,no_auto_possess 252 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 253 254 /\D*/utf,no_auto_possess 255 \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100} 256 257 /\D/utf 258 1X2 259 1\x{100}2 260 261 />\S/utf 262 > >X Y 263 > >\x{100} Y 264 265 /\d/utf 266 \x{100}3 267 268 /\s/utf 269 \x{100} X 270 271 /\D+/utf 272 12abcd34 273 \= Expect no match 274 1234 275 276 /\D{2,3}/utf 277 12abcd34 278 12ab34 279 \= Expect no match 280 1234 281 12a34 282 283 /\D{2,3}?/utf 284 12abcd34 285 12ab34 286 \= Expect no match 287 1234 288 12a34 289 290 /\d+/utf 291 12abcd34 292 293 /\d{2,3}/utf 294 12abcd34 295 1234abcd 296 \= Expect no match 297 1.4 298 299 /\d{2,3}?/utf 300 12abcd34 301 1234abcd 302 \= Expect no match 303 1.4 304 305 /\S+/utf 306 12abcd34 307 \= Expect no match 308 \ \ 309 310 /\S{2,3}/utf 311 12abcd34 312 1234abcd 313 \= Expect no match 314 \ \ 315 316 /\S{2,3}?/utf 317 12abcd34 318 1234abcd 319 \= Expect no match 320 \ \ 321 322 />\s+</utf 323 12> <34 324 325 />\s{2,3}</utf 326 ab> <cd 327 ab> <ce 328 \= Expect no match 329 ab> <cd 330 331 />\s{2,3}?</utf 332 ab> <cd 333 ab> <ce 334 \= Expect no match 335 ab> <cd 336 337 /\w+/utf 338 12 34 339 \= Expect no match 340 +++=*! 341 342 /\w{2,3}/utf 343 ab cd 344 abcd ce 345 \= Expect no match 346 a.b.c 347 348 /\w{2,3}?/utf 349 ab cd 350 abcd ce 351 \= Expect no match 352 a.b.c 353 354 /\W+/utf 355 12====34 356 \= Expect no match 357 abcd 358 359 /\W{2,3}/utf 360 ab====cd 361 ab==cd 362 \= Expect no match 363 a.b.c 364 365 /\W{2,3}?/utf 366 ab====cd 367 ab==cd 368 \= Expect no match 369 a.b.c 370 371 /[\x{100}]/utf 372 \x{100} 373 Z\x{100} 374 \x{100}Z 375 376 /[Z\x{100}]/utf 377 Z\x{100} 378 \x{100} 379 \x{100}Z 380 381 /[\x{100}\x{200}]/utf 382 ab\x{100}cd 383 ab\x{200}cd 384 385 /[\x{100}-\x{200}]/utf 386 ab\x{100}cd 387 ab\x{200}cd 388 ab\x{111}cd 389 390 /[z-\x{200}]/utf 391 ab\x{100}cd 392 ab\x{200}cd 393 ab\x{111}cd 394 abzcd 395 ab|cd 396 397 /[Q\x{100}\x{200}]/utf 398 ab\x{100}cd 399 ab\x{200}cd 400 Q? 401 402 /[Q\x{100}-\x{200}]/utf 403 ab\x{100}cd 404 ab\x{200}cd 405 ab\x{111}cd 406 Q? 407 408 /[Qz-\x{200}]/utf 409 ab\x{100}cd 410 ab\x{200}cd 411 ab\x{111}cd 412 abzcd 413 ab|cd 414 Q? 415 416 /[\x{100}\x{200}]{1,3}/utf 417 ab\x{100}cd 418 ab\x{200}cd 419 ab\x{200}\x{100}\x{200}\x{100}cd 420 421 /[\x{100}\x{200}]{1,3}?/utf 422 ab\x{100}cd 423 ab\x{200}cd 424 ab\x{200}\x{100}\x{200}\x{100}cd 425 426 /[Q\x{100}\x{200}]{1,3}/utf 427 ab\x{100}cd 428 ab\x{200}cd 429 ab\x{200}\x{100}\x{200}\x{100}cd 430 431 /[Q\x{100}\x{200}]{1,3}?/utf 432 ab\x{100}cd 433 ab\x{200}cd 434 ab\x{200}\x{100}\x{200}\x{100}cd 435 436 /(?<=[\x{100}\x{200}])X/utf 437 abc\x{200}X 438 abc\x{100}X 439 \= Expect no match 440 X 441 442 /(?<=[Q\x{100}\x{200}])X/utf 443 abc\x{200}X 444 abc\x{100}X 445 abQX 446 \= Expect no match 447 X 448 449 /(?<=[\x{100}\x{200}]{3})X/utf 450 abc\x{100}\x{200}\x{100}X 451 \= Expect no match 452 abc\x{200}X 453 X 454 455 /[^\x{100}\x{200}]X/utf 456 AX 457 \x{150}X 458 \x{500}X 459 \= Expect no match 460 \x{100}X 461 \x{200}X 462 463 /[^Q\x{100}\x{200}]X/utf 464 AX 465 \x{150}X 466 \x{500}X 467 \= Expect no match 468 \x{100}X 469 \x{200}X 470 QX 471 472 /[^\x{100}-\x{200}]X/utf 473 AX 474 \x{500}X 475 \= Expect no match 476 \x{100}X 477 \x{150}X 478 \x{200}X 479 480 /[z-\x{100}]/i,utf 481 z 482 Z 483 \x{100} 484 \= Expect no match 485 \x{102} 486 y 487 488 /[\xFF]/ 489 >\xff< 490 491 /[\xff]/utf 492 >\x{ff}< 493 494 /[^\xFF]/ 495 XYZ 496 497 /[^\xff]/utf 498 XYZ 499 \x{123} 500 501 /^[ac]*b/utf 502 \= Expect no match 503 xb 504 505 /^[ac\x{100}]*b/utf 506 \= Expect no match 507 xb 508 509 /^[^x]*b/i,utf 510 \= Expect no match 511 xb 512 513 /^[^x]*b/utf 514 \= Expect no match 515 xb 516 517 /^\d*b/utf 518 \= Expect no match 519 xb 520 521 /(|a)/g,utf 522 catac 523 a\x{256}a 524 525 /^\x{85}$/i,utf 526 \x{85} 527 528 /^abc./gmx,newline=any,utf 529 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK 530 531 /abc.$/gmx,newline=any,utf 532 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9 533 534 /^a\Rb/bsr=unicode,utf 535 a\nb 536 a\rb 537 a\r\nb 538 a\x0bb 539 a\x0cb 540 a\x{85}b 541 a\x{2028}b 542 a\x{2029}b 543 \= Expect no match 544 a\n\rb 545 546 /^a\R*b/bsr=unicode,utf 547 ab 548 a\nb 549 a\rb 550 a\r\nb 551 a\x0bb 552 a\x0c\x{2028}\x{2029}b 553 a\x{85}b 554 a\n\rb 555 a\n\r\x{85}\x0cb 556 557 /^a\R+b/bsr=unicode,utf 558 a\nb 559 a\rb 560 a\r\nb 561 a\x0bb 562 a\x0c\x{2028}\x{2029}b 563 a\x{85}b 564 a\n\rb 565 a\n\r\x{85}\x0cb 566 \= Expect no match 567 ab 568 569 /^a\R{1,3}b/bsr=unicode,utf 570 a\nb 571 a\n\rb 572 a\n\r\x{85}b 573 a\r\n\r\nb 574 a\r\n\r\n\r\nb 575 a\n\r\n\rb 576 a\n\n\r\nb 577 \= Expect no match 578 a\n\n\n\rb 579 a\r 580 581 /\h+\V?\v{3,4}/utf,no_auto_possess 582 \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a 583 584 /\V?\v{3,4}/utf,no_auto_possess 585 \x20\x{a0}X\x0a\x0b\x0c\x0d\x0a 586 587 /\h+\V?\v{3,4}/utf,no_auto_possess 588 >\x09\x20\x{a0}X\x0a\x0a\x0a< 589 590 /\V?\v{3,4}/utf,no_auto_possess 591 >\x09\x20\x{a0}X\x0a\x0a\x0a< 592 593 /\H\h\V\v/utf 594 X X\x0a 595 X\x09X\x0b 596 \= Expect no match 597 \x{a0} X\x0a 598 599 /\H*\h+\V?\v{3,4}/utf,no_auto_possess 600 \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a 601 \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a 602 \x09\x20\x{a0}\x0a\x0b\x0c 603 \= Expect no match 604 \x09\x20\x{a0}\x0a\x0b 605 606 /\H\h\V\v/utf 607 \x{3001}\x{3000}\x{2030}\x{2028} 608 X\x{180e}X\x{85} 609 \= Expect no match 610 \x{2009} X\x0a 611 612 /\H*\h+\V?\v{3,4}/utf,no_auto_possess 613 \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a 614 \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a 615 \x09\x20\x{202f}\x0a\x0b\x0c 616 \= Expect no match 617 \x09\x{200a}\x{a0}\x{2028}\x0b 618 619 /a\Rb/I,bsr=anycrlf,utf 620 a\rb 621 a\nb 622 a\r\nb 623 \= Expect no match 624 a\x{85}b 625 a\x0bb 626 627 /a\Rb/I,bsr=unicode,utf 628 a\rb 629 a\nb 630 a\r\nb 631 a\x{85}b 632 a\x0bb 633 634 /a\R?b/I,bsr=anycrlf,utf 635 a\rb 636 a\nb 637 a\r\nb 638 \= Expect no match 639 a\x{85}b 640 a\x0bb 641 642 /a\R?b/I,bsr=unicode,utf 643 a\rb 644 a\nb 645 a\r\nb 646 a\x{85}b 647 a\x0bb 648 649 /X/newline=any,utf,firstline 650 A\x{1ec5}ABCXYZ 651 652 /abcd*/utf 653 xxxxabcd\=ps 654 xxxxabcd\=ph 655 656 /abcd*/i,utf 657 xxxxabcd\=ps 658 xxxxabcd\=ph 659 XXXXABCD\=ps 660 XXXXABCD\=ph 661 662 /abc\d*/utf 663 xxxxabc1\=ps 664 xxxxabc1\=ph 665 666 /abc[de]*/utf 667 xxxxabcde\=ps 668 xxxxabcde\=ph 669 670 /\bthe cat\b/utf 671 the cat\=ps 672 the cat\=ph 673 674 /./newline=crlf,utf 675 \r\=ps 676 \r\=ph 677 678 /.{2,3}/newline=crlf,utf 679 \r\=ps 680 \r\=ph 681 \r\r\=ps 682 \r\r\=ph 683 \r\r\r\=ps 684 \r\r\r\=ph 685 686 /.{2,3}?/newline=crlf,utf 687 \r\=ps 688 \r\=ph 689 \r\r\=ps 690 \r\r\=ph 691 \r\r\r\=ps 692 \r\r\r\=ph 693 694 /[^\x{100}]/utf 695 \x{100}\x{101}X 696 697 /[^\x{100}]+/utf 698 \x{100}\x{101}X 699 700 /\pL\P{Nd}/utf 701 AB 702 \= Expect no match 703 A0 704 00 705 706 /\X./utf 707 AB 708 A\x{300}BC 709 A\x{300}\x{301}\x{302}BC 710 \= Expect no match 711 \x{300} 712 713 /\X\X/utf 714 ABC 715 A\x{300}B\x{300}\x{301}C 716 A\x{300}\x{301}\x{302}BC 717 \= Expect no match 718 \x{300} 719 720 /^\pL+/utf 721 abcd 722 a 723 724 /^\PL+/utf 725 1234 726 = 727 \= Expect no match 728 abcd 729 730 /^\X+/utf 731 abcdA\x{300}\x{301}\x{302} 732 A\x{300}\x{301}\x{302} 733 A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302} 734 a 735 \x{300}\x{301}\x{302} 736 737 /\X?abc/utf 738 abc 739 A\x{300}abc 740 A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz 741 \x{300}abc 742 743 /^\X?abc/utf 744 abc 745 A\x{300}abc 746 \x{300}abc 747 \= Expect no match 748 A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz 749 750 /\X*abc/utf 751 abc 752 A\x{300}abc 753 A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz 754 \x{300}abc 755 756 /^\X*abc/utf 757 abc 758 A\x{300}abc 759 A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz 760 \x{300}abc 761 762 /^\pL?=./utf 763 A=b 764 =c 765 \= Expect no match 766 1=2 767 AAAA=b 768 769 /^\pL*=./utf 770 AAAA=b 771 =c 772 \= Expect no match 773 1=2 774 775 /^\X{2,3}X/utf 776 A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X 777 A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X 778 \= Expect no match 779 X 780 A\x{300}\x{301}\x{302}X 781 A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X 782 783 /^\pC\pL\pM\pN\pP\pS\pZ</utf 784 \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}< 785 \np\x{300}9!\$ < 786 \= Expect no match 787 ap\x{300}9!\$ < 788 789 /^\PC/utf 790 X 791 \= Expect no match 792 \x7f 793 794 /^\PL/utf 795 9 796 \= Expect no match 797 \x{c0} 798 799 /^\PM/utf 800 X 801 \= Expect no match 802 \x{30f} 803 804 /^\PN/utf 805 X 806 \= Expect no match 807 \x{660} 808 809 /^\PP/utf 810 X 811 \= Expect no match 812 \x{66c} 813 814 /^\PS/utf 815 X 816 \= Expect no match 817 \x{f01} 818 819 /^\PZ/utf 820 X 821 \= Expect no match 822 \x{1680} 823 824 /^\p{Cc}/utf 825 \x{017} 826 \x{09f} 827 \= Expect no match 828 \x{0600} 829 830 /^\p{Cf}/utf 831 \x{601} 832 \x{180e} 833 \x{061c} 834 \x{2066} 835 \x{2067} 836 \x{2068} 837 \x{2069} 838 \= Expect no match 839 \x{09f} 840 841 /^\p{Cn}/utf 842 \= Expect no match 843 \x{09f} 844 845 /^\p{Co}/utf 846 \x{f8ff} 847 \= Expect no match 848 \x{09f} 849 850 /^\p{Cs}/utf 851 \x{dfff}\=no_utf_check 852 \= Expect no match 853 \x{09f} 854 855 /^\p{Ll}/utf 856 a 857 \= Expect no match 858 Z 859 \x{e000} 860 861 /^\p{Lm}/utf 862 \x{2b0} 863 \= Expect no match 864 a 865 866 /^\p{Lo}/utf 867 \x{1bb} 868 \= Expect no match 869 a 870 \x{2b0} 871 872 /^\p{Lt}/utf 873 \x{1c5} 874 \= Expect no match 875 a 876 \x{2b0} 877 878 /^\p{Lu}/utf 879 A 880 \= Expect no match 881 \x{2b0} 882 883 /^\p{Mc}/utf 884 \x{903} 885 \= Expect no match 886 X 887 \x{300} 888 889 /^\p{Me}/utf 890 \x{488} 891 \= Expect no match 892 X 893 \x{903} 894 \x{300} 895 896 /^\p{Mn}/utf 897 \x{300} 898 \x{1a1b} 899 \= Expect no match 900 X 901 \x{903} 902 903 /^\p{Nd}+/utf,no_auto_possess 904 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a} 905 \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa} 906 \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970} 907 \= Expect no match 908 X 909 910 /^\p{Nl}/utf 911 \x{16ee} 912 \= Expect no match 913 X 914 \x{966} 915 916 /^\p{No}/utf 917 \x{b2} 918 \x{b3} 919 \= Expect no match 920 X 921 \x{16ee} 922 923 /^\p{Pc}/utf 924 \x5f 925 \x{203f} 926 \= Expect no match 927 X 928 - 929 \x{58a} 930 931 /^\p{Pd}/utf 932 - 933 \x{58a} 934 \= Expect no match 935 X 936 \x{203f} 937 938 /^\p{Pe}/utf 939 ) 940 ] 941 } 942 \x{f3b} 943 \x{2309} 944 \x{230b} 945 \= Expect no match 946 X 947 \x{203f} 948 ( 949 [ 950 { 951 \x{f3c} 952 953 /^\p{Pf}/utf 954 \x{bb} 955 \x{2019} 956 \= Expect no match 957 X 958 \x{203f} 959 960 /^\p{Pi}/utf 961 \x{ab} 962 \x{2018} 963 \= Expect no match 964 X 965 \x{203f} 966 967 /^\p{Po}/utf 968 ! 969 \x{37e} 970 \= Expect no match 971 X 972 \x{203f} 973 974 /^\p{Ps}/utf 975 ( 976 [ 977 { 978 \x{f3c} 979 \x{2308} 980 \x{230a} 981 \= Expect no match 982 X 983 ) 984 ] 985 } 986 \x{f3b} 987 988 /^\p{Sc}+/utf 989 $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6} 990 \x{9f2} 991 \= Expect no match 992 X 993 \x{2c2} 994 995 /^\p{Sk}/utf 996 \x{2c2} 997 \= Expect no match 998 X 999 \x{9f2} 1000 1001 /^\p{Sm}+/utf 1002 +<|~\x{ac}\x{2044} 1003 \= Expect no match 1004 X 1005 \x{9f2} 1006 1007 /^\p{So}/utf 1008 \x{a6} 1009 \x{482} 1010 \= Expect no match 1011 X 1012 \x{9f2} 1013 1014 /^\p{Zl}/utf 1015 \x{2028} 1016 \= Expect no match 1017 X 1018 \x{2029} 1019 1020 /^\p{Zp}/utf 1021 \x{2029} 1022 \= Expect no match 1023 X 1024 \x{2028} 1025 1026 /^\p{Zs}/utf 1027 \ \ 1028 \x{a0} 1029 \x{1680} 1030 \x{2000} 1031 \x{2001} 1032 \= Expect no match 1033 \x{2028} 1034 \x{200d} 1035 1036 /\p{Nd}+(..)/utf 1037 \x{660}\x{661}\x{662}ABC 1038 1039 /\p{Nd}+?(..)/utf 1040 \x{660}\x{661}\x{662}ABC 1041 1042 /\p{Nd}{2,}(..)/utf 1043 \x{660}\x{661}\x{662}ABC 1044 1045 /\p{Nd}{2,}?(..)/utf 1046 \x{660}\x{661}\x{662}ABC 1047 1048 /\p{Nd}*(..)/utf 1049 \x{660}\x{661}\x{662}ABC 1050 1051 /\p{Nd}*?(..)/utf 1052 \x{660}\x{661}\x{662}ABC 1053 1054 /\p{Nd}{2}(..)/utf 1055 \x{660}\x{661}\x{662}ABC 1056 1057 /\p{Nd}{2,3}(..)/utf 1058 \x{660}\x{661}\x{662}ABC 1059 1060 /\p{Nd}{2,3}?(..)/utf 1061 \x{660}\x{661}\x{662}ABC 1062 1063 /\p{Nd}?(..)/utf 1064 \x{660}\x{661}\x{662}ABC 1065 1066 /\p{Nd}??(..)/utf 1067 \x{660}\x{661}\x{662}ABC 1068 1069 /\p{Nd}*+(..)/utf 1070 \x{660}\x{661}\x{662}ABC 1071 1072 /\p{Nd}*+(...)/utf 1073 \x{660}\x{661}\x{662}ABC 1074 1075 /\p{Nd}*+(....)/utf 1076 \= Expect no match 1077 \x{660}\x{661}\x{662}ABC 1078 1079 /\p{Lu}/i,utf 1080 A 1081 a\x{10a0}B 1082 \= Expect no match 1083 a 1084 \x{1d00} 1085 1086 /\p{^Lu}/i,utf 1087 1234 1088 \= Expect no match 1089 ABC 1090 1091 /\P{Lu}/i,utf 1092 1234 1093 \= Expect no match 1094 ABC 1095 1096 /(?<=A\p{Nd})XYZ/utf 1097 A2XYZ 1098 123A5XYZPQR 1099 ABA\x{660}XYZpqr 1100 \= Expect no match 1101 AXYZ 1102 XYZ 1103 1104 /(?<!\pL)XYZ/utf 1105 1XYZ 1106 AB=XYZ.. 1107 XYZ 1108 \= Expect no match 1109 WXYZ 1110 1111 /[\p{Nd}]/utf 1112 1234 1113 1114 /[\p{Nd}+-]+/utf 1115 1234 1116 12-34 1117 12+\x{661}-34 1118 \= Expect no match 1119 abcd 1120 1121 /[\P{Nd}]+/utf 1122 abcd 1123 \= Expect no match 1124 1234 1125 1126 /\D+/utf,no_auto_possess 1127 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1128 \= Expect no match 1129 11111111111111111111111111111111111111111111111111111111111111111111111 1130 1131 /\P{Nd}+/utf,no_auto_possess 1132 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1133 \= Expect no match 1134 11111111111111111111111111111111111111111111111111111111111111111111111 1135 1136 /[\D]+/utf,no_auto_possess 1137 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1138 \= Expect no match 1139 11111111111111111111111111111111111111111111111111111111111111111111111 1140 1141 /[\P{Nd}]+/utf,no_auto_possess 1142 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1143 \= Expect no match 1144 11111111111111111111111111111111111111111111111111111111111111111111111 1145 1146 /[\D\P{Nd}]+/utf,no_auto_possess 1147 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1148 \= Expect no match 1149 11111111111111111111111111111111111111111111111111111111111111111111111 1150 1151 /\pL/utf 1152 a 1153 A 1154 1155 /\pL/i,utf 1156 a 1157 A 1158 1159 /\p{Lu}/utf 1160 A 1161 aZ 1162 \= Expect no match 1163 abc 1164 1165 /\p{Lu}/i,utf 1166 A 1167 aZ 1168 \= Expect no match 1169 abc 1170 1171 /\p{Ll}/utf 1172 a 1173 Az 1174 \= Expect no match 1175 ABC 1176 1177 /\p{Ll}/i,utf 1178 a 1179 Az 1180 \= Expect no match 1181 ABC 1182 1183 /^\x{c0}$/i,utf 1184 \x{c0} 1185 \x{e0} 1186 1187 /^\x{e0}$/i,utf 1188 \x{c0} 1189 \x{e0} 1190 1191 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf 1192 A\x{391}\x{10427}\x{ff3a}\x{1fb0} 1193 \= Expect no match 1194 a\x{391}\x{10427}\x{ff3a}\x{1fb0} 1195 A\x{3b1}\x{10427}\x{ff3a}\x{1fb0} 1196 A\x{391}\x{1044F}\x{ff3a}\x{1fb0} 1197 A\x{391}\x{10427}\x{ff5a}\x{1fb0} 1198 A\x{391}\x{10427}\x{ff3a}\x{1fb8} 1199 1200 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf 1201 A\x{391}\x{10427}\x{ff3a}\x{1fb0} 1202 a\x{391}\x{10427}\x{ff3a}\x{1fb0} 1203 A\x{3b1}\x{10427}\x{ff3a}\x{1fb0} 1204 A\x{391}\x{1044F}\x{ff3a}\x{1fb0} 1205 A\x{391}\x{10427}\x{ff5a}\x{1fb0} 1206 A\x{391}\x{10427}\x{ff3a}\x{1fb8} 1207 1208 /\x{391}+/i,utf 1209 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391} 1210 1211 /\x{391}{3,5}(.)/i,utf 1212 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X 1213 1214 /\x{391}{3,5}?(.)/i,utf 1215 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X 1216 1217 /[\x{391}\x{ff3a}]/i,utf 1218 \x{391} 1219 \x{ff3a} 1220 \x{3b1} 1221 \x{ff5a} 1222 1223 /[\x{c0}\x{391}]/i,utf 1224 \x{c0} 1225 \x{e0} 1226 1227 /[\x{105}-\x{109}]/i,utf 1228 \x{104} 1229 \x{105} 1230 \x{109} 1231 \= Expect no match 1232 \x{100} 1233 \x{10a} 1234 1235 /[z-\x{100}]/i,utf 1236 Z 1237 z 1238 \x{39c} 1239 \x{178} 1240 | 1241 \x{80} 1242 \x{ff} 1243 \x{100} 1244 \x{101} 1245 \= Expect no match 1246 \x{102} 1247 Y 1248 y 1249 1250 /[z-\x{100}]/i,utf 1251 1252 /^\X/utf 1253 A 1254 A\x{300}BC 1255 A\x{300}\x{301}\x{302}BC 1256 \x{300} 1257 1258 /^(\X*)C/utf 1259 A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 1260 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 1261 1262 /^(\X*?)C/utf 1263 A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 1264 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 1265 1266 /^(\X*)(.)/utf 1267 A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 1268 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 1269 1270 /^(\X*?)(.)/utf 1271 A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 1272 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 1273 1274 /^\X(.)/utf 1275 \= Expect no match 1276 A\x{300}\x{301}\x{302} 1277 1278 /^\X{2,3}(.)/utf 1279 A\x{300}\x{301}B\x{300}X 1280 A\x{300}\x{301}B\x{300}C\x{300}\x{301} 1281 A\x{300}\x{301}B\x{300}C\x{300}\x{301}X 1282 A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X 1283 1284 /^\X{2,3}?(.)/utf 1285 A\x{300}\x{301}B\x{300}X 1286 A\x{300}\x{301}B\x{300}C\x{300}\x{301} 1287 A\x{300}\x{301}B\x{300}C\x{300}\x{301}X 1288 A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X 1289 1290 /^\pN{2,3}X/ 1291 12X 1292 123X 1293 \= Expect no match 1294 X 1295 1X 1296 1234X 1297 1298 /\x{100}/i,utf 1299 \x{100} 1300 \x{101} 1301 1302 /^\p{Han}+/utf 1303 \x{2e81}\x{3007}\x{2f804}\x{31a0} 1304 \= Expect no match 1305 \x{2e7f} 1306 1307 /^\P{Katakana}+/utf 1308 \x{3105} 1309 \= Expect no match 1310 \x{30ff} 1311 1312 /^[\p{Arabic}]/utf 1313 \x{06e9} 1314 \x{060b} 1315 \= Expect no match 1316 X\x{06e9} 1317 1318 /^[\P{Yi}]/utf 1319 \x{2f800} 1320 \= Expect no match 1321 \x{a014} 1322 \x{a4c6} 1323 1324 /^\p{Any}X/utf 1325 AXYZ 1326 \x{1234}XYZ 1327 \= Expect no match 1328 X 1329 1330 /^\P{Any}X/utf 1331 \= Expect no match 1332 AX 1333 1334 /^\p{Any}?X/utf 1335 XYZ 1336 AXYZ 1337 \x{1234}XYZ 1338 \= Expect no match 1339 ABXYZ 1340 1341 /^\P{Any}?X/utf 1342 XYZ 1343 \= Expect no match 1344 AXYZ 1345 \x{1234}XYZ 1346 ABXYZ 1347 1348 /^\p{Any}+X/utf 1349 AXYZ 1350 \x{1234}XYZ 1351 A\x{1234}XYZ 1352 \= Expect no match 1353 XYZ 1354 1355 /^\P{Any}+X/utf 1356 \= Expect no match 1357 AXYZ 1358 \x{1234}XYZ 1359 A\x{1234}XYZ 1360 XYZ 1361 1362 /^\p{Any}*X/utf 1363 XYZ 1364 AXYZ 1365 \x{1234}XYZ 1366 A\x{1234}XYZ 1367 1368 /^\P{Any}*X/utf 1369 XYZ 1370 \= Expect no match 1371 AXYZ 1372 \x{1234}XYZ 1373 A\x{1234}XYZ 1374 1375 /^[\p{Any}]X/utf 1376 AXYZ 1377 \x{1234}XYZ 1378 \= Expect no match 1379 X 1380 1381 /^[\P{Any}]X/utf 1382 \= Expect no match 1383 AX 1384 1385 /^[\p{Any}]?X/utf 1386 XYZ 1387 AXYZ 1388 \x{1234}XYZ 1389 \= Expect no match 1390 ABXYZ 1391 1392 /^[\P{Any}]?X/utf 1393 XYZ 1394 \= Expect no match 1395 AXYZ 1396 \x{1234}XYZ 1397 ABXYZ 1398 1399 /^[\p{Any}]+X/utf 1400 AXYZ 1401 \x{1234}XYZ 1402 A\x{1234}XYZ 1403 \= Expect no match 1404 XYZ 1405 1406 /^[\P{Any}]+X/utf 1407 \= Expect no match 1408 AXYZ 1409 \x{1234}XYZ 1410 A\x{1234}XYZ 1411 XYZ 1412 1413 /^[\p{Any}]*X/utf 1414 XYZ 1415 AXYZ 1416 \x{1234}XYZ 1417 A\x{1234}XYZ 1418 1419 /^[\P{Any}]*X/utf 1420 XYZ 1421 \= Expect no match 1422 AXYZ 1423 \x{1234}XYZ 1424 A\x{1234}XYZ 1425 1426 /^\p{Any}{3,5}?/utf 1427 abcdefgh 1428 \x{1234}\n\r\x{3456}xyz 1429 1430 /^\p{Any}{3,5}/utf 1431 abcdefgh 1432 \x{1234}\n\r\x{3456}xyz 1433 1434 /^\P{Any}{3,5}?/utf 1435 \= Expect no match 1436 abcdefgh 1437 \x{1234}\n\r\x{3456}xyz 1438 1439 /^\p{L&}X/utf 1440 AXY 1441 aXY 1442 \x{1c5}XY 1443 \= Expect no match 1444 \x{1bb}XY 1445 \x{2b0}XY 1446 !XY 1447 1448 /^[\p{L&}]X/utf 1449 AXY 1450 aXY 1451 \x{1c5}XY 1452 \= Expect no match 1453 \x{1bb}XY 1454 \x{2b0}XY 1455 !XY 1456 1457 /^\p{L&}+X/utf 1458 AXY 1459 aXY 1460 AbcdeXyz 1461 \x{1c5}AbXY 1462 abcDEXypqreXlmn 1463 \= Expect no match 1464 \x{1bb}XY 1465 \x{2b0}XY 1466 !XY 1467 1468 /^[\p{L&}]+X/utf 1469 AXY 1470 aXY 1471 AbcdeXyz 1472 \x{1c5}AbXY 1473 abcDEXypqreXlmn 1474 \= Expect no match 1475 \x{1bb}XY 1476 \x{2b0}XY 1477 !XY 1478 1479 /^\p{L&}+?X/utf 1480 AXY 1481 aXY 1482 AbcdeXyz 1483 \x{1c5}AbXY 1484 abcDEXypqreXlmn 1485 \= Expect no match 1486 \x{1bb}XY 1487 \x{2b0}XY 1488 !XY 1489 1490 /^[\p{L&}]+?X/utf 1491 AXY 1492 aXY 1493 AbcdeXyz 1494 \x{1c5}AbXY 1495 abcDEXypqreXlmn 1496 \= Expect no match 1497 \x{1bb}XY 1498 \x{2b0}XY 1499 !XY 1500 1501 /^\P{L&}X/utf 1502 !XY 1503 \x{1bb}XY 1504 \x{2b0}XY 1505 \= Expect no match 1506 \x{1c5}XY 1507 AXY 1508 1509 /^[\P{L&}]X/utf 1510 !XY 1511 \x{1bb}XY 1512 \x{2b0}XY 1513 \= Expect no match 1514 \x{1c5}XY 1515 AXY 1516 1517 /^\x{023a}+?(\x{0130}+)/i,utf 1518 \x{023a}\x{2c65}\x{0130} 1519 1520 /^\x{023a}+([^X])/i,utf 1521 \x{023a}\x{2c65}X 1522 1523 /\x{c0}+\x{116}+/i,utf 1524 \x{c0}\x{e0}\x{116}\x{117} 1525 1526 /[\x{c0}\x{116}]+/i,utf 1527 \x{c0}\x{e0}\x{116}\x{117} 1528 1529 # Check property support in non-UTF-8 mode 1530 1531 /\p{L}{4}/ 1532 123abcdefg 1533 123abc\xc4\xc5zz 1534 1535 /\p{Carian}\p{Cham}\p{Kayah_Li}\p{Lepcha}\p{Lycian}\p{Lydian}\p{Ol_Chiki}\p{Rejang}\p{Saurashtra}\p{Sundanese}\p{Vai}/utf 1536 \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}==== 1537 1538 /\x{a77d}\x{1d79}/i,utf 1539 \x{a77d}\x{1d79} 1540 \x{1d79}\x{a77d} 1541 1542 /\x{a77d}\x{1d79}/utf 1543 \x{a77d}\x{1d79} 1544 \= Expect no match 1545 \x{1d79}\x{a77d} 1546 1547 /^\p{Xan}/utf 1548 ABCD 1549 1234 1550 \x{6ca} 1551 \x{a6c} 1552 \x{10a7} 1553 \= Expect no match 1554 _ABC 1555 1556 /^\p{Xan}+/utf 1557 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1558 \= Expect no match 1559 _ABC 1560 1561 /^\p{Xan}*/utf 1562 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1563 1564 /^\p{Xan}{2,9}/utf 1565 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1566 1567 /^[\p{Xan}]/utf 1568 ABCD1234_ 1569 1234abcd_ 1570 \x{6ca} 1571 \x{a6c} 1572 \x{10a7} 1573 \= Expect no match 1574 _ABC 1575 1576 /^[\p{Xan}]+/utf 1577 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1578 \= Expect no match 1579 _ABC 1580 1581 /^>\p{Xsp}/utf 1582 >\x{1680}\x{2028}\x{0b} 1583 \= Expect no match 1584 \x{0b} 1585 1586 /^>\p{Xsp}+/utf,no_auto_possess 1587 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1588 1589 /^>\p{Xsp}*/utf,no_auto_possess 1590 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1591 1592 /^>\p{Xsp}{2,9}/utf,no_auto_possess 1593 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1594 1595 /^>[\p{Xsp}]/utf,no_auto_possess 1596 >\x{2028}\x{0b} 1597 1598 /^>[\p{Xsp}]+/utf,no_auto_possess 1599 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1600 1601 /^>\p{Xps}/utf 1602 >\x{1680}\x{2028}\x{0b} 1603 >\x{a0} 1604 \= Expect no match 1605 \x{0b} 1606 1607 /^>\p{Xps}+/utf 1608 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1609 1610 /^>\p{Xps}+?/utf 1611 >\x{1680}\x{2028}\x{0b} 1612 1613 /^>\p{Xps}*/utf 1614 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1615 1616 /^>\p{Xps}{2,9}/utf 1617 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1618 1619 /^>\p{Xps}{2,9}?/utf 1620 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1621 1622 /^>[\p{Xps}]/utf 1623 >\x{2028}\x{0b} 1624 1625 /^>[\p{Xps}]+/utf 1626 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} 1627 1628 /^\p{Xwd}/utf 1629 ABCD 1630 1234 1631 \x{6ca} 1632 \x{a6c} 1633 \x{10a7} 1634 _ABC 1635 \= Expect no match 1636 [] 1637 1638 /^\p{Xwd}+/utf 1639 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1640 1641 /^\p{Xwd}*/utf 1642 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1643 1644 /^\p{Xwd}{2,9}/utf 1645 A_12\x{6ca}\x{a6c}\x{10a7} 1646 1647 /^[\p{Xwd}]/utf 1648 ABCD1234_ 1649 1234abcd_ 1650 \x{6ca} 1651 \x{a6c} 1652 \x{10a7} 1653 _ABC 1654 \= Expect no match 1655 [] 1656 1657 /^[\p{Xwd}]+/utf 1658 ABCD1234\x{6ca}\x{a6c}\x{10a7}_ 1659 1660 # Unicode properties for \b abd \B 1661 1662 /\b...\B/utf,ucp 1663 abc_ 1664 \x{37e}abc\x{376} 1665 \x{37e}\x{376}\x{371}\x{393}\x{394} 1666 !\x{c0}++\x{c1}\x{c2} 1667 !\x{c0}+++++ 1668 1669 # Without PCRE_UCP, non-ASCII always fail, even if < 256 1670 1671 /\b...\B/utf 1672 abc_ 1673 \= Expect no match 1674 \x{37e}abc\x{376} 1675 \x{37e}\x{376}\x{371}\x{393}\x{394} 1676 !\x{c0}++\x{c1}\x{c2} 1677 !\x{c0}+++++ 1678 1679 # With PCRE_UCP, non-UTF8 chars that are < 256 still check properties 1680 1681 /\b...\B/ucp 1682 abc_ 1683 !\x{c0}++\x{c1}\x{c2} 1684 !\x{c0}+++++ 1685 1686 # Caseless single negated characters > 127 need UCP support 1687 1688 /[^\x{100}]/i,utf 1689 \x{100}\x{101}X 1690 1691 /[^\x{100}]+/i,utf 1692 \x{100}\x{101}XX 1693 1694 /^\X/utf 1695 A\=ps 1696 A\=ph 1697 A\x{300}\x{301}\=ps 1698 A\x{300}\x{301}\=ph 1699 A\x{301}\=ps 1700 A\x{301}\=ph 1701 1702 /^\X{2,3}/utf 1703 A\=ps 1704 A\=ph 1705 AA\=ps 1706 AA\=ph 1707 A\x{300}\x{301}\=ps 1708 A\x{300}\x{301}\=ph 1709 A\x{300}\x{301}A\x{300}\x{301}\=ps 1710 A\x{300}\x{301}A\x{300}\x{301}\=ph 1711 1712 /^\X{2}/utf 1713 AA\=ps 1714 AA\=ph 1715 A\x{300}\x{301}A\x{300}\x{301}\=ps 1716 A\x{300}\x{301}A\x{300}\x{301}\=ph 1717 1718 /^\X+/utf 1719 AA\=ps 1720 AA\=ph 1721 1722 /^\X+?Z/utf 1723 AA\=ps 1724 AA\=ph 1725 1726 # These are tests for extended grapheme clusters 1727 1728 /^\X/utf,aftertext 1729 G\x{34e}\x{34e}X 1730 \x{34e}\x{34e}X 1731 \x04X 1732 \x{1100}X 1733 \x{1100}\x{34e}X 1734 \x{1b04}\x{1b04}X 1735 \= These match up to the roman letters 1736 \x{1111}\x{1111}L,L 1737 \x{1111}\x{1111}\x{1169}L,L,V 1738 \x{1111}\x{ae4c}L, LV 1739 \x{1111}\x{ad89}L, LVT 1740 \x{1111}\x{ae4c}\x{1169}L, LV, V 1741 \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V 1742 \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T 1743 \x{1111}\x{ad89}\x{11fe}L, LVT, T 1744 \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T 1745 \x{ad89}\x{11fe}\x{11fe}LVT, T, T 1746 \= These match just the first codepoint (invalid sequence) 1747 \x{1111}\x{11fe}L, T 1748 \x{ae4c}\x{1111}LV, L 1749 \x{ae4c}\x{ae4c}LV, LV 1750 \x{ae4c}\x{ad89}LV, LVT 1751 \x{1169}\x{1111}V, L 1752 \x{1169}\x{ae4c}V, LV 1753 \x{1169}\x{ad89}V, LVT 1754 \x{ad89}\x{1111}LVT, L 1755 \x{ad89}\x{1169}LVT, V 1756 \x{ad89}\x{ae4c}LVT, LV 1757 \x{ad89}\x{ad89}LVT, LVT 1758 \x{11fe}\x{1111}T, L 1759 \x{11fe}\x{1169}T, V 1760 \x{11fe}\x{ae4c}T, LV 1761 \x{11fe}\x{ad89}T, LVT 1762 \= Test extend and spacing mark 1763 \x{1111}\x{ae4c}\x{0711}L, LV, extend 1764 \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark 1765 \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark 1766 \= Test CR, LF, and control 1767 \x0d\x{0711}CR, extend 1768 \x0d\x{1b04}CR, spacingmark 1769 \x0a\x{0711}LF, extend 1770 \x0a\x{1b04}LF, spacingmark 1771 \x0b\x{0711}Control, extend 1772 \x09\x{1b04}Control, spacingmark 1773 \= There are no Prepend characters, so we can't test Prepend, CR 1774 1775 /^(?>\X{2})X/utf,aftertext 1776 \x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1777 1778 /^\X{2,4}X/utf,aftertext 1779 \x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1780 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1781 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1782 1783 /^\X{2,4}?X/utf,aftertext 1784 \x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1785 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1786 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X 1787 1788 /\x{1e9e}+/i,utf 1789 \x{1e9e}\x{00df} 1790 1791 /[z\x{1e9e}]+/i,utf 1792 \x{1e9e}\x{00df} 1793 1794 /\x{00df}+/i,utf 1795 \x{1e9e}\x{00df} 1796 1797 /[z\x{00df}]+/i,utf 1798 \x{1e9e}\x{00df} 1799 1800 /\x{1f88}+/i,utf 1801 \x{1f88}\x{1f80} 1802 1803 /[z\x{1f88}]+/i,utf 1804 \x{1f88}\x{1f80} 1805 1806 # Perl matches these 1807 1808 /\x{00b5}+/i,utf 1809 \x{00b5}\x{039c}\x{03bc} 1810 1811 /\x{039c}+/i,utf 1812 \x{00b5}\x{039c}\x{03bc} 1813 1814 /\x{03bc}+/i,utf 1815 \x{00b5}\x{039c}\x{03bc} 1816 1817 1818 /\x{00c5}+/i,utf 1819 \x{00c5}\x{00e5}\x{212b} 1820 1821 /\x{00e5}+/i,utf 1822 \x{00c5}\x{00e5}\x{212b} 1823 1824 /\x{212b}+/i,utf 1825 \x{00c5}\x{00e5}\x{212b} 1826 1827 /\x{01c4}+/i,utf 1828 \x{01c4}\x{01c5}\x{01c6} 1829 1830 /\x{01c5}+/i,utf 1831 \x{01c4}\x{01c5}\x{01c6} 1832 1833 /\x{01c6}+/i,utf 1834 \x{01c4}\x{01c5}\x{01c6} 1835 1836 /\x{01c7}+/i,utf 1837 \x{01c7}\x{01c8}\x{01c9} 1838 1839 /\x{01c8}+/i,utf 1840 \x{01c7}\x{01c8}\x{01c9} 1841 1842 /\x{01c9}+/i,utf 1843 \x{01c7}\x{01c8}\x{01c9} 1844 1845 1846 /\x{01ca}+/i,utf 1847 \x{01ca}\x{01cb}\x{01cc} 1848 1849 /\x{01cb}+/i,utf 1850 \x{01ca}\x{01cb}\x{01cc} 1851 1852 /\x{01cc}+/i,utf 1853 \x{01ca}\x{01cb}\x{01cc} 1854 1855 /\x{01f1}+/i,utf 1856 \x{01f1}\x{01f2}\x{01f3} 1857 1858 /\x{01f2}+/i,utf 1859 \x{01f1}\x{01f2}\x{01f3} 1860 1861 /\x{01f3}+/i,utf 1862 \x{01f1}\x{01f2}\x{01f3} 1863 1864 /\x{0345}+/i,utf 1865 \x{0345}\x{0399}\x{03b9}\x{1fbe} 1866 1867 /\x{0399}+/i,utf 1868 \x{0345}\x{0399}\x{03b9}\x{1fbe} 1869 1870 /\x{03b9}+/i,utf 1871 \x{0345}\x{0399}\x{03b9}\x{1fbe} 1872 1873 /\x{1fbe}+/i,utf 1874 \x{0345}\x{0399}\x{03b9}\x{1fbe} 1875 1876 /\x{0392}+/i,utf 1877 \x{0392}\x{03b2}\x{03d0} 1878 1879 /\x{03b2}+/i,utf 1880 \x{0392}\x{03b2}\x{03d0} 1881 1882 /\x{03d0}+/i,utf 1883 \x{0392}\x{03b2}\x{03d0} 1884 1885 1886 /\x{0395}+/i,utf 1887 \x{0395}\x{03b5}\x{03f5} 1888 1889 /\x{03b5}+/i,utf 1890 \x{0395}\x{03b5}\x{03f5} 1891 1892 /\x{03f5}+/i,utf 1893 \x{0395}\x{03b5}\x{03f5} 1894 1895 /\x{0398}+/i,utf 1896 \x{0398}\x{03b8}\x{03d1}\x{03f4} 1897 1898 /\x{03b8}+/i,utf 1899 \x{0398}\x{03b8}\x{03d1}\x{03f4} 1900 1901 /\x{03d1}+/i,utf 1902 \x{0398}\x{03b8}\x{03d1}\x{03f4} 1903 1904 /\x{03f4}+/i,utf 1905 \x{0398}\x{03b8}\x{03d1}\x{03f4} 1906 1907 /\x{039a}+/i,utf 1908 \x{039a}\x{03ba}\x{03f0} 1909 1910 /\x{03ba}+/i,utf 1911 \x{039a}\x{03ba}\x{03f0} 1912 1913 /\x{03f0}+/i,utf 1914 \x{039a}\x{03ba}\x{03f0} 1915 1916 /\x{03a0}+/i,utf 1917 \x{03a0}\x{03c0}\x{03d6} 1918 1919 /\x{03c0}+/i,utf 1920 \x{03a0}\x{03c0}\x{03d6} 1921 1922 /\x{03d6}+/i,utf 1923 \x{03a0}\x{03c0}\x{03d6} 1924 1925 /\x{03a1}+/i,utf 1926 \x{03a1}\x{03c1}\x{03f1} 1927 1928 /\x{03c1}+/i,utf 1929 \x{03a1}\x{03c1}\x{03f1} 1930 1931 /\x{03f1}+/i,utf 1932 \x{03a1}\x{03c1}\x{03f1} 1933 1934 /\x{03a3}+/i,utf 1935 \x{03A3}\x{03C2}\x{03C3} 1936 1937 /\x{03c2}+/i,utf 1938 \x{03A3}\x{03C2}\x{03C3} 1939 1940 /\x{03c3}+/i,utf 1941 \x{03A3}\x{03C2}\x{03C3} 1942 1943 /\x{03a6}+/i,utf 1944 \x{03a6}\x{03c6}\x{03d5} 1945 1946 /\x{03c6}+/i,utf 1947 \x{03a6}\x{03c6}\x{03d5} 1948 1949 /\x{03d5}+/i,utf 1950 \x{03a6}\x{03c6}\x{03d5} 1951 1952 /\x{03c9}+/i,utf 1953 \x{03c9}\x{03a9}\x{2126} 1954 1955 /\x{03a9}+/i,utf 1956 \x{03c9}\x{03a9}\x{2126} 1957 1958 /\x{2126}+/i,utf 1959 \x{03c9}\x{03a9}\x{2126} 1960 1961 /\x{1e60}+/i,utf 1962 \x{1e60}\x{1e61}\x{1e9b} 1963 1964 /\x{1e61}+/i,utf 1965 \x{1e60}\x{1e61}\x{1e9b} 1966 1967 /\x{1e9b}+/i,utf 1968 \x{1e60}\x{1e61}\x{1e9b} 1969 1970 /\x{1e9e}+/i,utf 1971 \x{1e9e}\x{00df} 1972 1973 /\x{00df}+/i,utf 1974 \x{1e9e}\x{00df} 1975 1976 /\x{1f88}+/i,utf 1977 \x{1f88}\x{1f80} 1978 1979 /\x{1f80}+/i,utf 1980 \x{1f88}\x{1f80} 1981 1982 /\x{004b}+/i,utf 1983 \x{004b}\x{006b}\x{212a} 1984 1985 /\x{006b}+/i,utf 1986 \x{004b}\x{006b}\x{212a} 1987 1988 /\x{212a}+/i,utf 1989 \x{004b}\x{006b}\x{212a} 1990 1991 /\x{0053}+/i,utf 1992 \x{0053}\x{0073}\x{017f} 1993 1994 /\x{0073}+/i,utf 1995 \x{0053}\x{0073}\x{017f} 1996 1997 /\x{017f}+/i,utf 1998 \x{0053}\x{0073}\x{017f} 1999 2000 /ist/i,utf 2001 \= Expect no match 2002 ikt 2003 2004 /is+t/i,utf 2005 iSs\x{17f}t 2006 \= Expect no match 2007 ikt 2008 2009 /is+?t/i,utf 2010 \= Expect no match 2011 ikt 2012 2013 /is?t/i,utf 2014 \= Expect no match 2015 ikt 2016 2017 /is{2}t/i,utf 2018 \= Expect no match 2019 iskt 2020 2021 /^\p{Xuc}/utf 2022 $abc 2023 @abc 2024 `abc 2025 \x{1234}abc 2026 \= Expect no match 2027 abc 2028 2029 /^\p{Xuc}+/utf 2030 $@`\x{a0}\x{1234}\x{e000}** 2031 \= Expect no match 2032 \x{9f} 2033 2034 /^\p{Xuc}+?/utf 2035 $@`\x{a0}\x{1234}\x{e000}** 2036 \= Expect no match 2037 \x{9f} 2038 2039 /^\p{Xuc}+?\*/utf 2040 $@`\x{a0}\x{1234}\x{e000}** 2041 \= Expect no match 2042 \x{9f} 2043 2044 /^\p{Xuc}++/utf 2045 $@`\x{a0}\x{1234}\x{e000}** 2046 \= Expect no match 2047 \x{9f} 2048 2049 /^\p{Xuc}{3,5}/utf 2050 $@`\x{a0}\x{1234}\x{e000}** 2051 \= Expect no match 2052 \x{9f} 2053 2054 /^\p{Xuc}{3,5}?/utf 2055 $@`\x{a0}\x{1234}\x{e000}** 2056 \= Expect no match 2057 \x{9f} 2058 2059 /^[\p{Xuc}]/utf 2060 $@`\x{a0}\x{1234}\x{e000}** 2061 \= Expect no match 2062 \x{9f} 2063 2064 /^[\p{Xuc}]+/utf 2065 $@`\x{a0}\x{1234}\x{e000}** 2066 \= Expect no match 2067 \x{9f} 2068 2069 /^\P{Xuc}/utf 2070 abc 2071 \= Expect no match 2072 $abc 2073 @abc 2074 `abc 2075 \x{1234}abc 2076 2077 /^[\P{Xuc}]/utf 2078 abc 2079 \= Expect no match 2080 $abc 2081 @abc 2082 `abc 2083 \x{1234}abc 2084 2085 /^A\s+Z/utf,ucp 2086 A\x{2005}Z 2087 A\x{85}\x{180e}\x{2005}Z 2088 2089 /^A[\s]+Z/utf,ucp 2090 A\x{2005}Z 2091 A\x{85}\x{180e}\x{2005}Z 2092 2093 /(?<=\x{100})\x{200}(?=\x{300})/utf,allusedtext 2094 \x{100}\x{200}\x{300} 2095 2096 # End of testinput7 2097