1 /-- This set of tests checks UTF-8 support with the DFA matching functionality 2 of pcre_dfa_exec(). The -dfa flag must be used with pcretest when running 3 it. --/ 4 5 /\x{100}ab/8 6 \x{100}ab 7 8 /a\x{100}*b/8 9 ab 10 a\x{100}b 11 a\x{100}\x{100}b 12 13 /a\x{100}+b/8 14 a\x{100}b 15 a\x{100}\x{100}b 16 *** Failers 17 ab 18 19 /\bX/8 20 Xoanon 21 +Xoanon 22 \x{300}Xoanon 23 *** Failers 24 YXoanon 25 26 /\BX/8 27 YXoanon 28 *** Failers 29 Xoanon 30 +Xoanon 31 \x{300}Xoanon 32 33 /X\b/8 34 X+oanon 35 ZX\x{300}oanon 36 FAX 37 *** Failers 38 Xoanon 39 40 /X\B/8 41 Xoanon 42 *** Failers 43 X+oanon 44 ZX\x{300}oanon 45 FAX 46 47 /[^a]/8 48 abcd 49 a\x{100} 50 51 /^[abc\x{123}\x{400}-\x{402}]{2,3}\d/8 52 ab99 53 \x{123}\x{123}45 54 \x{400}\x{401}\x{402}6 55 *** Failers 56 d99 57 \x{123}\x{122}4 58 \x{400}\x{403}6 59 \x{400}\x{401}\x{402}\x{402}6 60 61 /abc/8 62 ] 63 64 65 \? 66 \xe1\x88 67 \P\xe1\x88 68 \P\P\xe1\x88 69 70 /a.b/8 71 acb 72 a\x7fb 73 a\x{100}b 74 *** Failers 75 a\nb 76 77 /a(.{3})b/8 78 a\x{4000}xyb 79 a\x{4000}\x7fyb 80 a\x{4000}\x{100}yb 81 *** Failers 82 a\x{4000}b 83 ac\ncb 84 85 /a(.*?)(.)/ 86 a\xc0\x88b 87 88 /a(.*?)(.)/8 89 a\x{100}b 90 91 /a(.*)(.)/ 92 a\xc0\x88b 93 94 /a(.*)(.)/8 95 a\x{100}b 96 97 /a(.)(.)/ 98 a\xc0\x92bcd 99 100 /a(.)(.)/8 101 a\x{240}bcd 102 103 /a(.?)(.)/ 104 a\xc0\x92bcd 105 106 /a(.?)(.)/8 107 a\x{240}bcd 108 109 /a(.??)(.)/ 110 a\xc0\x92bcd 111 112 /a(.??)(.)/8 113 a\x{240}bcd 114 115 /a(.{3})b/8 116 a\x{1234}xyb 117 a\x{1234}\x{4321}yb 118 a\x{1234}\x{4321}\x{3412}b 119 *** Failers 120 a\x{1234}b 121 ac\ncb 122 123 /a(.{3,})b/8 124 a\x{1234}xyb 125 a\x{1234}\x{4321}yb 126 a\x{1234}\x{4321}\x{3412}b 127 axxxxbcdefghijb 128 a\x{1234}\x{4321}\x{3412}\x{3421}b 129 *** Failers 130 a\x{1234}b 131 132 /a(.{3,}?)b/8 133 a\x{1234}xyb 134 a\x{1234}\x{4321}yb 135 a\x{1234}\x{4321}\x{3412}b 136 axxxxbcdefghijb 137 a\x{1234}\x{4321}\x{3412}\x{3421}b 138 *** Failers 139 a\x{1234}b 140 141 /a(.{3,5})b/8 142 a\x{1234}xyb 143 a\x{1234}\x{4321}yb 144 a\x{1234}\x{4321}\x{3412}b 145 axxxxbcdefghijb 146 a\x{1234}\x{4321}\x{3412}\x{3421}b 147 axbxxbcdefghijb 148 axxxxxbcdefghijb 149 *** Failers 150 a\x{1234}b 151 axxxxxxbcdefghijb 152 153 /a(.{3,5}?)b/8 154 a\x{1234}xyb 155 a\x{1234}\x{4321}yb 156 a\x{1234}\x{4321}\x{3412}b 157 axxxxbcdefghijb 158 a\x{1234}\x{4321}\x{3412}\x{3421}b 159 axbxxbcdefghijb 160 axxxxxbcdefghijb 161 *** Failers 162 a\x{1234}b 163 axxxxxxbcdefghijb 164 165 /^[a\x{c0}]/8 166 *** Failers 167 \x{100} 168 169 /(?<=aXb)cd/8 170 aXbcd 171 172 /(?<=a\x{100}b)cd/8 173 a\x{100}bcd 174 175 /(?<=a\x{100000}b)cd/8 176 a\x{100000}bcd 177 178 /(?:\x{100}){3}b/8 179 \x{100}\x{100}\x{100}b 180 *** Failers 181 \x{100}\x{100}b 182 183 /\x{ab}/8 184 \x{ab} 185 \xc2\xab 186 *** Failers 187 \x00{ab} 188 189 /(?<=(.))X/8 190 WXYZ 191 \x{256}XYZ 192 *** Failers 193 XYZ 194 195 /[^a]+/8g 196 bcd 197 \x{100}aY\x{256}Z 198 199 /^[^a]{2}/8 200 \x{100}bc 201 202 /^[^a]{2,}/8 203 \x{100}bcAa 204 205 /^[^a]{2,}?/8 206 \x{100}bca 207 208 /[^a]+/8ig 209 bcd 210 \x{100}aY\x{256}Z 211 212 /^[^a]{2}/8i 213 \x{100}bc 214 215 /^[^a]{2,}/8i 216 \x{100}bcAa 217 218 /^[^a]{2,}?/8i 219 \x{100}bca 220 221 /\x{100}{0,0}/8 222 abcd 223 224 /\x{100}?/8 225 abcd 226 \x{100}\x{100} 227 228 /\x{100}{0,3}/8 229 \x{100}\x{100} 230 \x{100}\x{100}\x{100}\x{100} 231 232 /\x{100}*/8 233 abce 234 \x{100}\x{100}\x{100}\x{100} 235 236 /\x{100}{1,1}/8 237 abcd\x{100}\x{100}\x{100}\x{100} 238 239 /\x{100}{1,3}/8 240 abcd\x{100}\x{100}\x{100}\x{100} 241 242 /\x{100}+/8 243 abcd\x{100}\x{100}\x{100}\x{100} 244 245 /\x{100}{3}/8 246 abcd\x{100}\x{100}\x{100}XX 247 248 /\x{100}{3,5}/8 249 abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX 250 251 /\x{100}{3,}/8 252 abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX 253 254 /(?<=a\x{100}{2}b)X/8 255 Xyyya\x{100}\x{100}bXzzz 256 257 /\D*/8 258 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 259 260 /\D*/8 261 \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} 262 263 /\D/8 264 1X2 265 1\x{100}2 266 267 />\S/8 268 > >X Y 269 > >\x{100} Y 270 271 /\d/8 272 \x{100}3 273 274 /\s/8 275 \x{100} X 276 277 /\D+/8 278 12abcd34 279 *** Failers 280 1234 281 282 /\D{2,3}/8 283 12abcd34 284 12ab34 285 *** Failers 286 1234 287 12a34 288 289 /\D{2,3}?/8 290 12abcd34 291 12ab34 292 *** Failers 293 1234 294 12a34 295 296 /\d+/8 297 12abcd34 298 *** Failers 299 300 /\d{2,3}/8 301 12abcd34 302 1234abcd 303 *** Failers 304 1.4 305 306 /\d{2,3}?/8 307 12abcd34 308 1234abcd 309 *** Failers 310 1.4 311 312 /\S+/8 313 12abcd34 314 *** Failers 315 \ \ 316 317 /\S{2,3}/8 318 12abcd34 319 1234abcd 320 *** Failers 321 \ \ 322 323 /\S{2,3}?/8 324 12abcd34 325 1234abcd 326 *** Failers 327 \ \ 328 329 />\s+</8 330 12> <34 331 *** Failers 332 333 />\s{2,3}</8 334 ab> <cd 335 ab> <ce 336 *** Failers 337 ab> <cd 338 339 />\s{2,3}?</8 340 ab> <cd 341 ab> <ce 342 *** Failers 343 ab> <cd 344 345 /\w+/8 346 12 34 347 *** Failers 348 +++=*! 349 350 /\w{2,3}/8 351 ab cd 352 abcd ce 353 *** Failers 354 a.b.c 355 356 /\w{2,3}?/8 357 ab cd 358 abcd ce 359 *** Failers 360 a.b.c 361 362 /\W+/8 363 12====34 364 *** Failers 365 abcd 366 367 /\W{2,3}/8 368 ab====cd 369 ab==cd 370 *** Failers 371 a.b.c 372 373 /\W{2,3}?/8 374 ab====cd 375 ab==cd 376 *** Failers 377 a.b.c 378 379 /[\x{100}]/8 380 \x{100} 381 Z\x{100} 382 \x{100}Z 383 *** Failers 384 385 /[Z\x{100}]/8 386 Z\x{100} 387 \x{100} 388 \x{100}Z 389 *** Failers 390 391 /[\x{100}\x{200}]/8 392 ab\x{100}cd 393 ab\x{200}cd 394 *** Failers 395 396 /[\x{100}-\x{200}]/8 397 ab\x{100}cd 398 ab\x{200}cd 399 ab\x{111}cd 400 *** Failers 401 402 /[z-\x{200}]/8 403 ab\x{100}cd 404 ab\x{200}cd 405 ab\x{111}cd 406 abzcd 407 ab|cd 408 *** Failers 409 410 /[Q\x{100}\x{200}]/8 411 ab\x{100}cd 412 ab\x{200}cd 413 Q? 414 *** Failers 415 416 /[Q\x{100}-\x{200}]/8 417 ab\x{100}cd 418 ab\x{200}cd 419 ab\x{111}cd 420 Q? 421 *** Failers 422 423 /[Qz-\x{200}]/8 424 ab\x{100}cd 425 ab\x{200}cd 426 ab\x{111}cd 427 abzcd 428 ab|cd 429 Q? 430 *** Failers 431 432 /[\x{100}\x{200}]{1,3}/8 433 ab\x{100}cd 434 ab\x{200}cd 435 ab\x{200}\x{100}\x{200}\x{100}cd 436 *** Failers 437 438 /[\x{100}\x{200}]{1,3}?/8 439 ab\x{100}cd 440 ab\x{200}cd 441 ab\x{200}\x{100}\x{200}\x{100}cd 442 *** Failers 443 444 /[Q\x{100}\x{200}]{1,3}/8 445 ab\x{100}cd 446 ab\x{200}cd 447 ab\x{200}\x{100}\x{200}\x{100}cd 448 *** Failers 449 450 /[Q\x{100}\x{200}]{1,3}?/8 451 ab\x{100}cd 452 ab\x{200}cd 453 ab\x{200}\x{100}\x{200}\x{100}cd 454 *** Failers 455 456 /(?<=[\x{100}\x{200}])X/8 457 abc\x{200}X 458 abc\x{100}X 459 *** Failers 460 X 461 462 /(?<=[Q\x{100}\x{200}])X/8 463 abc\x{200}X 464 abc\x{100}X 465 abQX 466 *** Failers 467 X 468 469 /(?<=[\x{100}\x{200}]{3})X/8 470 abc\x{100}\x{200}\x{100}X 471 *** Failers 472 abc\x{200}X 473 X 474 475 /[^\x{100}\x{200}]X/8 476 AX 477 \x{150}X 478 \x{500}X 479 *** Failers 480 \x{100}X 481 \x{200}X 482 483 /[^Q\x{100}\x{200}]X/8 484 AX 485 \x{150}X 486 \x{500}X 487 *** Failers 488 \x{100}X 489 \x{200}X 490 QX 491 492 /[^\x{100}-\x{200}]X/8 493 AX 494 \x{500}X 495 *** Failers 496 \x{100}X 497 \x{150}X 498 \x{200}X 499 500 /[z-\x{100}]/8i 501 z 502 Z 503 \x{100} 504 *** Failers 505 \x{102} 506 y 507 508 /[\xFF]/ 509 >\xff< 510 511 /[\xff]/8 512 >\x{ff}< 513 514 /[^\xFF]/ 515 XYZ 516 517 /[^\xff]/8 518 XYZ 519 \x{123} 520 521 /^[ac]*b/8 522 xb 523 524 /^[ac\x{100}]*b/8 525 xb 526 527 /^[^x]*b/8i 528 xb 529 530 /^[^x]*b/8 531 xb 532 533 /^\d*b/8 534 xb 535 536 /(|a)/g8 537 catac 538 a\x{256}a 539 540 /^\x{85}$/8i 541 \x{85} 542 543 /^abc./mgx8<any> 544 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK 545 546 /abc.$/mgx8<any> 547 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9 548 549 /^a\Rb/8<bsr_unicode> 550 a\nb 551 a\rb 552 a\r\nb 553 a\x0bb 554 a\x0cb 555 a\x{85}b 556 a\x{2028}b 557 a\x{2029}b 558 ** Failers 559 a\n\rb 560 561 /^a\R*b/8<bsr_unicode> 562 ab 563 a\nb 564 a\rb 565 a\r\nb 566 a\x0bb 567 a\x0c\x{2028}\x{2029}b 568 a\x{85}b 569 a\n\rb 570 a\n\r\x{85}\x0cb 571 572 /^a\R+b/8<bsr_unicode> 573 a\nb 574 a\rb 575 a\r\nb 576 a\x0bb 577 a\x0c\x{2028}\x{2029}b 578 a\x{85}b 579 a\n\rb 580 a\n\r\x{85}\x0cb 581 ** Failers 582 ab 583 584 /^a\R{1,3}b/8<bsr_unicode> 585 a\nb 586 a\n\rb 587 a\n\r\x{85}b 588 a\r\n\r\nb 589 a\r\n\r\n\r\nb 590 a\n\r\n\rb 591 a\n\n\r\nb 592 ** Failers 593 a\n\n\n\rb 594 a\r 595 596 /\h+\V?\v{3,4}/8 597 \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a 598 599 /\V?\v{3,4}/8 600 \x20\x{a0}X\x0a\x0b\x0c\x0d\x0a 601 602 /\h+\V?\v{3,4}/8 603 >\x09\x20\x{a0}X\x0a\x0a\x0a< 604 605 /\V?\v{3,4}/8 606 >\x09\x20\x{a0}X\x0a\x0a\x0a< 607 608 /\H\h\V\v/8 609 X X\x0a 610 X\x09X\x0b 611 ** Failers 612 \x{a0} X\x0a 613 614 /\H*\h+\V?\v{3,4}/8 615 \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a 616 \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a 617 \x09\x20\x{a0}\x0a\x0b\x0c 618 ** Failers 619 \x09\x20\x{a0}\x0a\x0b 620 621 /\H\h\V\v/8 622 \x{3001}\x{3000}\x{2030}\x{2028} 623 X\x{180e}X\x{85} 624 ** Failers 625 \x{2009} X\x0a 626 627 /\H*\h+\V?\v{3,4}/8 628 \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a 629 \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a 630 \x09\x20\x{202f}\x0a\x0b\x0c 631 ** Failers 632 \x09\x{200a}\x{a0}\x{2028}\x0b 633 634 /a\Rb/I8<bsr_anycrlf> 635 a\rb 636 a\nb 637 a\r\nb 638 ** Failers 639 a\x{85}b 640 a\x0bb 641 642 /a\Rb/I8<bsr_unicode> 643 a\rb 644 a\nb 645 a\r\nb 646 a\x{85}b 647 a\x0bb 648 ** Failers 649 a\x{85}b\<bsr_anycrlf> 650 a\x0bb\<bsr_anycrlf> 651 652 /a\R?b/I8<bsr_anycrlf> 653 a\rb 654 a\nb 655 a\r\nb 656 ** Failers 657 a\x{85}b 658 a\x0bb 659 660 /a\R?b/I8<bsr_unicode> 661 a\rb 662 a\nb 663 a\r\nb 664 a\x{85}b 665 a\x0bb 666 ** Failers 667 a\x{85}b\<bsr_anycrlf> 668 a\x0bb\<bsr_anycrlf> 669 670 /X/8f<any> 671 A\x{1ec5}ABCXYZ 672 673 /abcd*/8 674 xxxxabcd\P 675 xxxxabcd\P\P 676 677 /abcd*/i8 678 xxxxabcd\P 679 xxxxabcd\P\P 680 XXXXABCD\P 681 XXXXABCD\P\P 682 683 /abc\d*/8 684 xxxxabc1\P 685 xxxxabc1\P\P 686 687 /abc[de]*/8 688 xxxxabcde\P 689 xxxxabcde\P\P 690 691 /\bthe cat\b/8 692 the cat\P 693 the cat\P\P 694 695 /a+/8 696 a\x{123}aa\>1 697 a\x{123}aa\>2 698 a\x{123}aa\>3 699 a\x{123}aa\>4 700 a\x{123}aa\>5 701 a\x{123}aa\>6 702 703 /-- End of testinput8 --/ 704