1/-- These are a few representative patterns whose lengths and offsets are to be 2shown when the link size is 2. This is just a doublecheck test to ensure the 3sizes don't go horribly wrong when something is changed. The pattern contents 4are all themselves checked in other tests. Unicode, including property support, 5is required for these tests. --/ 6 7/((?i)b)/BM 8Memory allocation (code space): 48 9------------------------------------------------------------------ 10 0 9 Bra 11 2 5 CBra 1 12 5 /i b 13 7 5 Ket 14 9 9 Ket 15 11 End 16------------------------------------------------------------------ 17 18/(?s)(.*X|^B)/BM 19Memory allocation (code space): 76 20------------------------------------------------------------------ 21 0 16 Bra 22 2 7 CBra 1 23 5 AllAny* 24 7 X 25 9 5 Alt 26 11 ^ 27 12 B 28 14 12 Ket 29 16 16 Ket 30 18 End 31------------------------------------------------------------------ 32 33/(?s:.*X|^B)/BM 34Memory allocation (code space): 72 35------------------------------------------------------------------ 36 0 15 Bra 37 2 6 Bra 38 4 AllAny* 39 6 X 40 8 5 Alt 41 10 ^ 42 11 B 43 13 11 Ket 44 15 15 Ket 45 17 End 46------------------------------------------------------------------ 47 48/^[[:alnum:]]/BM 49Memory allocation (code space): 60 50------------------------------------------------------------------ 51 0 12 Bra 52 2 ^ 53 3 [0-9A-Za-z] 54 12 12 Ket 55 14 End 56------------------------------------------------------------------ 57 58/#/IxMD 59Memory allocation (code space): 20 60------------------------------------------------------------------ 61 0 2 Bra 62 2 2 Ket 63 4 End 64------------------------------------------------------------------ 65Capturing subpattern count = 0 66May match empty string 67Options: extended 68No first char 69No need char 70 71/a#/IxMD 72Memory allocation (code space): 28 73------------------------------------------------------------------ 74 0 4 Bra 75 2 a 76 4 4 Ket 77 6 End 78------------------------------------------------------------------ 79Capturing subpattern count = 0 80Options: extended 81First char = 'a' 82No need char 83 84/x?+/BM 85Memory allocation (code space): 28 86------------------------------------------------------------------ 87 0 4 Bra 88 2 x?+ 89 4 4 Ket 90 6 End 91------------------------------------------------------------------ 92 93/x++/BM 94Memory allocation (code space): 28 95------------------------------------------------------------------ 96 0 4 Bra 97 2 x++ 98 4 4 Ket 99 6 End 100------------------------------------------------------------------ 101 102/x{1,3}+/BM 103Memory allocation (code space): 40 104------------------------------------------------------------------ 105 0 7 Bra 106 2 x 107 4 x{0,2}+ 108 7 7 Ket 109 9 End 110------------------------------------------------------------------ 111 112/(x)*+/BM 113Memory allocation (code space): 52 114------------------------------------------------------------------ 115 0 10 Bra 116 2 Braposzero 117 3 5 CBraPos 1 118 6 x 119 8 5 KetRpos 120 10 10 Ket 121 12 End 122------------------------------------------------------------------ 123 124/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/BM 125Memory allocation (code space): 220 126------------------------------------------------------------------ 127 0 52 Bra 128 2 ^ 129 3 47 CBra 1 130 6 5 CBra 2 131 9 a+ 132 11 5 Ket 133 13 13 CBra 3 134 16 [ab]+? 135 26 13 Ket 136 28 13 CBra 4 137 31 [bc]+ 138 41 13 Ket 139 43 5 CBra 5 140 46 \w*+ 141 48 5 Ket 142 50 47 Ket 143 52 52 Ket 144 54 End 145------------------------------------------------------------------ 146 147|8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|BM 148Memory allocation (code space): 3296 149------------------------------------------------------------------ 150 0 821 Bra 151 2 8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X 152820 \b 153821 821 Ket 154823 End 155------------------------------------------------------------------ 156 157|\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|BM 158Memory allocation (code space): 3256 159------------------------------------------------------------------ 160 0 811 Bra 161 2 $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X 162810 \b 163811 811 Ket 164813 End 165------------------------------------------------------------------ 166 167/(a(?1)b)/BM 168Memory allocation (code space): 64 169------------------------------------------------------------------ 170 0 13 Bra 171 2 9 CBra 1 172 5 a 173 7 2 Recurse 174 9 b 175 11 9 Ket 176 13 13 Ket 177 15 End 178------------------------------------------------------------------ 179 180/(a(?1)+b)/BM 181Memory allocation (code space): 80 182------------------------------------------------------------------ 183 0 17 Bra 184 2 13 CBra 1 185 5 a 186 7 4 Once 187 9 2 Recurse 188 11 4 KetRmax 189 13 b 190 15 13 Ket 191 17 17 Ket 192 19 End 193------------------------------------------------------------------ 194 195/a(?P<name1>b|c)d(?P<longername2>e)/BM 196Memory allocation (code space): 186 197------------------------------------------------------------------ 198 0 24 Bra 199 2 a 200 4 5 CBra 1 201 7 b 202 9 4 Alt 203 11 c 204 13 9 Ket 205 15 d 206 17 5 CBra 2 207 20 e 208 22 5 Ket 209 24 24 Ket 210 26 End 211------------------------------------------------------------------ 212 213/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/BM 214Memory allocation (code space): 155 215------------------------------------------------------------------ 216 0 29 Bra 217 2 18 Bra 218 4 a 219 6 12 CBra 1 220 9 c 221 11 5 CBra 2 222 14 d 223 16 5 Ket 224 18 12 Ket 225 20 18 Ket 226 22 5 CBra 3 227 25 a 228 27 5 Ket 229 29 29 Ket 230 31 End 231------------------------------------------------------------------ 232 233/(?P<a>a)...(?P=a)bbb(?P>a)d/BM 234Memory allocation (code space): 157 235------------------------------------------------------------------ 236 0 24 Bra 237 2 5 CBra 1 238 5 a 239 7 5 Ket 240 9 Any 241 10 Any 242 11 Any 243 12 \1 244 14 bbb 245 20 2 Recurse 246 22 d 247 24 24 Ket 248 26 End 249------------------------------------------------------------------ 250 251/abc(?C255)de(?C)f/BM 252Memory allocation (code space): 100 253------------------------------------------------------------------ 254 0 22 Bra 255 2 abc 256 8 Callout 255 10 1 257 12 de 258 16 Callout 0 16 1 259 20 f 260 22 22 Ket 261 24 End 262------------------------------------------------------------------ 263 264/abcde/CBM 265Memory allocation (code space): 156 266------------------------------------------------------------------ 267 0 36 Bra 268 2 Callout 255 0 1 269 6 a 270 8 Callout 255 1 1 271 12 b 272 14 Callout 255 2 1 273 18 c 274 20 Callout 255 3 1 275 24 d 276 26 Callout 255 4 1 277 30 e 278 32 Callout 255 5 0 279 36 36 Ket 280 38 End 281------------------------------------------------------------------ 282 283/\x{100}/8BM 284Memory allocation (code space): 28 285------------------------------------------------------------------ 286 0 4 Bra 287 2 \x{100} 288 4 4 Ket 289 6 End 290------------------------------------------------------------------ 291 292/\x{1000}/8BM 293Memory allocation (code space): 28 294------------------------------------------------------------------ 295 0 4 Bra 296 2 \x{1000} 297 4 4 Ket 298 6 End 299------------------------------------------------------------------ 300 301/\x{10000}/8BM 302Memory allocation (code space): 28 303------------------------------------------------------------------ 304 0 4 Bra 305 2 \x{10000} 306 4 4 Ket 307 6 End 308------------------------------------------------------------------ 309 310/\x{100000}/8BM 311Memory allocation (code space): 28 312------------------------------------------------------------------ 313 0 4 Bra 314 2 \x{100000} 315 4 4 Ket 316 6 End 317------------------------------------------------------------------ 318 319/\x{10ffff}/8BM 320Memory allocation (code space): 28 321------------------------------------------------------------------ 322 0 4 Bra 323 2 \x{10ffff} 324 4 4 Ket 325 6 End 326------------------------------------------------------------------ 327 328/\x{110000}/8BM 329Failed: character value in \x{} or \o{} is too large at offset 9 330 331/[\x{ff}]/8BM 332Memory allocation (code space): 28 333------------------------------------------------------------------ 334 0 4 Bra 335 2 \x{ff} 336 4 4 Ket 337 6 End 338------------------------------------------------------------------ 339 340/[\x{100}]/8BM 341Memory allocation (code space): 28 342------------------------------------------------------------------ 343 0 4 Bra 344 2 \x{100} 345 4 4 Ket 346 6 End 347------------------------------------------------------------------ 348 349/\x80/8BM 350Memory allocation (code space): 28 351------------------------------------------------------------------ 352 0 4 Bra 353 2 \x80 354 4 4 Ket 355 6 End 356------------------------------------------------------------------ 357 358/\xff/8BM 359Memory allocation (code space): 28 360------------------------------------------------------------------ 361 0 4 Bra 362 2 \x{ff} 363 4 4 Ket 364 6 End 365------------------------------------------------------------------ 366 367/\x{0041}\x{2262}\x{0391}\x{002e}/D8M 368Memory allocation (code space): 52 369------------------------------------------------------------------ 370 0 10 Bra 371 2 A\x{2262}\x{391}. 372 10 10 Ket 373 12 End 374------------------------------------------------------------------ 375Capturing subpattern count = 0 376Options: utf 377First char = 'A' 378Need char = '.' 379 380/\x{D55c}\x{ad6d}\x{C5B4}/D8M 381Memory allocation (code space): 44 382------------------------------------------------------------------ 383 0 8 Bra 384 2 \x{d55c}\x{ad6d}\x{c5b4} 385 8 8 Ket 386 10 End 387------------------------------------------------------------------ 388Capturing subpattern count = 0 389Options: utf 390First char = \x{d55c} 391Need char = \x{c5b4} 392 393/\x{65e5}\x{672c}\x{8a9e}/D8M 394Memory allocation (code space): 44 395------------------------------------------------------------------ 396 0 8 Bra 397 2 \x{65e5}\x{672c}\x{8a9e} 398 8 8 Ket 399 10 End 400------------------------------------------------------------------ 401Capturing subpattern count = 0 402Options: utf 403First char = \x{65e5} 404Need char = \x{8a9e} 405 406/[\x{100}]/8BM 407Memory allocation (code space): 28 408------------------------------------------------------------------ 409 0 4 Bra 410 2 \x{100} 411 4 4 Ket 412 6 End 413------------------------------------------------------------------ 414 415/[Z\x{100}]/8BM 416Memory allocation (code space): 76 417------------------------------------------------------------------ 418 0 16 Bra 419 2 [Z\x{100}] 420 16 16 Ket 421 18 End 422------------------------------------------------------------------ 423 424/^[\x{100}\E-\Q\E\x{150}]/B8M 425Memory allocation (code space): 52 426------------------------------------------------------------------ 427 0 10 Bra 428 2 ^ 429 3 [\x{100}-\x{150}] 430 10 10 Ket 431 12 End 432------------------------------------------------------------------ 433 434/^[\QĀ\E-\QŐ\E]/B8M 435Memory allocation (code space): 52 436------------------------------------------------------------------ 437 0 10 Bra 438 2 ^ 439 3 [\x{100}-\x{150}] 440 10 10 Ket 441 12 End 442------------------------------------------------------------------ 443 444/^[\QĀ\E-\QŐ\E/B8M 445Failed: missing terminating ] for character class at offset 13 446 447/[\p{L}]/BM 448Memory allocation (code space): 48 449------------------------------------------------------------------ 450 0 9 Bra 451 2 [\p{L}] 452 9 9 Ket 453 11 End 454------------------------------------------------------------------ 455 456/[\p{^L}]/BM 457Memory allocation (code space): 48 458------------------------------------------------------------------ 459 0 9 Bra 460 2 [\P{L}] 461 9 9 Ket 462 11 End 463------------------------------------------------------------------ 464 465/[\P{L}]/BM 466Memory allocation (code space): 48 467------------------------------------------------------------------ 468 0 9 Bra 469 2 [\P{L}] 470 9 9 Ket 471 11 End 472------------------------------------------------------------------ 473 474/[\P{^L}]/BM 475Memory allocation (code space): 48 476------------------------------------------------------------------ 477 0 9 Bra 478 2 [\p{L}] 479 9 9 Ket 480 11 End 481------------------------------------------------------------------ 482 483/[abc\p{L}\x{0660}]/8BM 484Memory allocation (code space): 88 485------------------------------------------------------------------ 486 0 19 Bra 487 2 [a-c\p{L}\x{660}] 488 19 19 Ket 489 21 End 490------------------------------------------------------------------ 491 492/[\p{Nd}]/8BM 493Memory allocation (code space): 48 494------------------------------------------------------------------ 495 0 9 Bra 496 2 [\p{Nd}] 497 9 9 Ket 498 11 End 499------------------------------------------------------------------ 500 501/[\p{Nd}+-]+/8BM 502Memory allocation (code space): 84 503------------------------------------------------------------------ 504 0 18 Bra 505 2 [+\-\p{Nd}]++ 506 18 18 Ket 507 20 End 508------------------------------------------------------------------ 509 510/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iBM 511Memory allocation (code space): 60 512------------------------------------------------------------------ 513 0 12 Bra 514 2 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0} 515 12 12 Ket 516 14 End 517------------------------------------------------------------------ 518 519/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8BM 520Memory allocation (code space): 60 521------------------------------------------------------------------ 522 0 12 Bra 523 2 A\x{391}\x{10427}\x{ff3a}\x{1fb0} 524 12 12 Ket 525 14 End 526------------------------------------------------------------------ 527 528/[\x{105}-\x{109}]/8iBM 529Memory allocation (code space): 48 530------------------------------------------------------------------ 531 0 9 Bra 532 2 [\x{104}-\x{109}] 533 9 9 Ket 534 11 End 535------------------------------------------------------------------ 536 537/( ( (?(1)0|) )* )/xBM 538Memory allocation (code space): 104 539------------------------------------------------------------------ 540 0 23 Bra 541 2 19 CBra 1 542 5 Brazero 543 6 13 SCBra 2 544 9 6 Cond 545 11 1 Cond ref 546 13 0 547 15 2 Alt 548 17 8 Ket 549 19 13 KetRmax 550 21 19 Ket 551 23 23 Ket 552 25 End 553------------------------------------------------------------------ 554 555/( (?(1)0|)* )/xBM 556Memory allocation (code space): 84 557------------------------------------------------------------------ 558 0 18 Bra 559 2 14 CBra 1 560 5 Brazero 561 6 6 SCond 562 8 1 Cond ref 563 10 0 564 12 2 Alt 565 14 8 KetRmax 566 16 14 Ket 567 18 18 Ket 568 20 End 569------------------------------------------------------------------ 570 571/[a]/BM 572Memory allocation (code space): 28 573------------------------------------------------------------------ 574 0 4 Bra 575 2 a 576 4 4 Ket 577 6 End 578------------------------------------------------------------------ 579 580/[a]/8BM 581Memory allocation (code space): 28 582------------------------------------------------------------------ 583 0 4 Bra 584 2 a 585 4 4 Ket 586 6 End 587------------------------------------------------------------------ 588 589/[\xaa]/BM 590Memory allocation (code space): 28 591------------------------------------------------------------------ 592 0 4 Bra 593 2 \x{aa} 594 4 4 Ket 595 6 End 596------------------------------------------------------------------ 597 598/[\xaa]/8BM 599Memory allocation (code space): 28 600------------------------------------------------------------------ 601 0 4 Bra 602 2 \x{aa} 603 4 4 Ket 604 6 End 605------------------------------------------------------------------ 606 607/[^a]/BM 608Memory allocation (code space): 28 609------------------------------------------------------------------ 610 0 4 Bra 611 2 [^a] 612 4 4 Ket 613 6 End 614------------------------------------------------------------------ 615 616/[^a]/8BM 617Memory allocation (code space): 28 618------------------------------------------------------------------ 619 0 4 Bra 620 2 [^a] 621 4 4 Ket 622 6 End 623------------------------------------------------------------------ 624 625/[^\xaa]/BM 626Memory allocation (code space): 28 627------------------------------------------------------------------ 628 0 4 Bra 629 2 [^\x{aa}] 630 4 4 Ket 631 6 End 632------------------------------------------------------------------ 633 634/[^\xaa]/8BM 635Memory allocation (code space): 28 636------------------------------------------------------------------ 637 0 4 Bra 638 2 [^\x{aa}] 639 4 4 Ket 640 6 End 641------------------------------------------------------------------ 642 643/[^\d]/8WB 644------------------------------------------------------------------ 645 0 9 Bra 646 2 [^\p{Nd}] 647 9 9 Ket 648 11 End 649------------------------------------------------------------------ 650 651/[[:^alpha:][:^cntrl:]]+/8WB 652------------------------------------------------------------------ 653 0 21 Bra 654 2 [ -~\x80-\xff\P{L}\x{100}-\x{10ffff}]++ 655 21 21 Ket 656 23 End 657------------------------------------------------------------------ 658 659/[[:^cntrl:][:^alpha:]]+/8WB 660------------------------------------------------------------------ 661 0 21 Bra 662 2 [ -~\x80-\xff\x{100}-\x{10ffff}\P{L}]++ 663 21 21 Ket 664 23 End 665------------------------------------------------------------------ 666 667/[[:alpha:]]+/8WB 668------------------------------------------------------------------ 669 0 10 Bra 670 2 [\p{L}]++ 671 10 10 Ket 672 12 End 673------------------------------------------------------------------ 674 675/[[:^alpha:]\S]+/8WB 676------------------------------------------------------------------ 677 0 13 Bra 678 2 [\P{L}\P{Xsp}]++ 679 13 13 Ket 680 15 End 681------------------------------------------------------------------ 682 683/abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/B 684------------------------------------------------------------------ 685 0 60 Bra 686 2 abc 687 8 5 CBra 1 688 11 d 689 13 4 Alt 690 15 e 691 17 9 Ket 692 19 *THEN 693 20 x 694 22 12 CBra 2 695 25 123 696 31 *THEN 697 32 4 698 34 24 Alt 699 36 567 700 42 5 CBra 3 701 45 b 702 47 4 Alt 703 49 q 704 51 9 Ket 705 53 *THEN 706 54 xx 707 58 36 Ket 708 60 60 Ket 709 62 End 710------------------------------------------------------------------ 711 712/(((a\2)|(a*)\g<-1>))*a?/B 713------------------------------------------------------------------ 714 0 39 Bra 715 2 Brazero 716 3 32 SCBra 1 717 6 27 Once 718 8 12 CBra 2 719 11 7 CBra 3 720 14 a 721 16 \2 722 18 7 Ket 723 20 11 Alt 724 22 5 CBra 4 725 25 a* 726 27 5 Ket 727 29 22 Recurse 728 31 23 Ket 729 33 27 Ket 730 35 32 KetRmax 731 37 a?+ 732 39 39 Ket 733 41 End 734------------------------------------------------------------------ 735 736/((?+1)(\1))/B 737------------------------------------------------------------------ 738 0 20 Bra 739 2 16 Once 740 4 12 CBra 1 741 7 9 Recurse 742 9 5 CBra 2 743 12 \1 744 14 5 Ket 745 16 12 Ket 746 18 16 Ket 747 20 20 Ket 748 22 End 749------------------------------------------------------------------ 750 751/.((?2)(?R)\1)()/B 752------------------------------------------------------------------ 753 0 23 Bra 754 2 Any 755 3 13 Once 756 5 9 CBra 1 757 8 18 Recurse 758 10 0 Recurse 759 12 \1 760 14 9 Ket 761 16 13 Ket 762 18 3 CBra 2 763 21 3 Ket 764 23 23 Ket 765 25 End 766------------------------------------------------------------------ 767 768/-- End of testinput11 --/ 769