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