1# There are two sorts of patterns in this test. A number of them are 2# representative patterns whose lengths and offsets are checked. This is just a 3# doublecheck test to ensure the sizes don't go horribly wrong when something 4# is changed. The operation of these patterns is checked in other tests. 5# 6# This file also contains tests whose output varies with code unit size and/or 7# link size. Unicode support is required for these tests. There are separate 8# output files for each code unit size and link size. 9 10#pattern fullbincode,memory 11 12/((?i)b)/ 13Memory allocation (code space): 17 14------------------------------------------------------------------ 15 0 13 Bra 16 3 7 CBra 1 17 8 /i b 18 10 7 Ket 19 13 13 Ket 20 16 End 21------------------------------------------------------------------ 22 23/(?s)(.*X|^B)/ 24Memory allocation (code space): 25 25------------------------------------------------------------------ 26 0 21 Bra 27 3 9 CBra 1 28 8 AllAny* 29 10 X 30 12 6 Alt 31 15 ^ 32 16 B 33 18 15 Ket 34 21 21 Ket 35 24 End 36------------------------------------------------------------------ 37 38/(?s:.*X|^B)/ 39Memory allocation (code space): 23 40------------------------------------------------------------------ 41 0 19 Bra 42 3 7 Bra 43 6 AllAny* 44 8 X 45 10 6 Alt 46 13 ^ 47 14 B 48 16 13 Ket 49 19 19 Ket 50 22 End 51------------------------------------------------------------------ 52 53/^[[:alnum:]]/ 54Memory allocation (code space): 41 55------------------------------------------------------------------ 56 0 37 Bra 57 3 ^ 58 4 [0-9A-Za-z] 59 37 37 Ket 60 40 End 61------------------------------------------------------------------ 62 63/#/Ix 64Memory allocation (code space): 7 65------------------------------------------------------------------ 66 0 3 Bra 67 3 3 Ket 68 6 End 69------------------------------------------------------------------ 70Capturing subpattern count = 0 71May match empty string 72Options: extended 73Subject length lower bound = 0 74 75/a#/Ix 76Memory allocation (code space): 9 77------------------------------------------------------------------ 78 0 5 Bra 79 3 a 80 5 5 Ket 81 8 End 82------------------------------------------------------------------ 83Capturing subpattern count = 0 84Options: extended 85First code unit = 'a' 86Subject length lower bound = 1 87 88/x?+/ 89Memory allocation (code space): 9 90------------------------------------------------------------------ 91 0 5 Bra 92 3 x?+ 93 5 5 Ket 94 8 End 95------------------------------------------------------------------ 96 97/x++/ 98Memory allocation (code space): 9 99------------------------------------------------------------------ 100 0 5 Bra 101 3 x++ 102 5 5 Ket 103 8 End 104------------------------------------------------------------------ 105 106/x{1,3}+/ 107Memory allocation (code space): 13 108------------------------------------------------------------------ 109 0 9 Bra 110 3 x 111 5 x{0,2}+ 112 9 9 Ket 113 12 End 114------------------------------------------------------------------ 115 116/(x)*+/ 117Memory allocation (code space): 18 118------------------------------------------------------------------ 119 0 14 Bra 120 3 Braposzero 121 4 7 CBraPos 1 122 9 x 123 11 7 KetRpos 124 14 14 Ket 125 17 End 126------------------------------------------------------------------ 127 128/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/ 129Memory allocation (code space): 120 130------------------------------------------------------------------ 131 0 116 Bra 132 3 ^ 133 4 109 CBra 1 134 9 7 CBra 2 135 14 a+ 136 16 7 Ket 137 19 39 CBra 3 138 24 [ab]+? 139 58 39 Ket 140 61 39 CBra 4 141 66 [bc]+ 142100 39 Ket 143103 7 CBra 5 144108 \w*+ 145110 7 Ket 146113 109 Ket 147116 116 Ket 148119 End 149------------------------------------------------------------------ 150 151"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" 152Memory allocation (code space): 826 153------------------------------------------------------------------ 154 0 822 Bra 155 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 156821 \b 157822 822 Ket 158825 End 159------------------------------------------------------------------ 160 161"\$\<\.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" 162Memory allocation (code space): 816 163------------------------------------------------------------------ 164 0 812 Bra 165 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 166811 \b 167812 812 Ket 168815 End 169------------------------------------------------------------------ 170 171/(a(?1)b)/ 172Memory allocation (code space): 22 173------------------------------------------------------------------ 174 0 18 Bra 175 3 12 CBra 1 176 8 a 177 10 3 Recurse 178 13 b 179 15 12 Ket 180 18 18 Ket 181 21 End 182------------------------------------------------------------------ 183 184/(a(?1)+b)/ 185Memory allocation (code space): 28 186------------------------------------------------------------------ 187 0 24 Bra 188 3 18 CBra 1 189 8 a 190 10 6 SBra 191 13 3 Recurse 192 16 6 KetRmax 193 19 b 194 21 18 Ket 195 24 24 Ket 196 27 End 197------------------------------------------------------------------ 198 199/a(?P<name1>b|c)d(?P<longername2>e)/ 200Memory allocation (code space): 36 201------------------------------------------------------------------ 202 0 32 Bra 203 3 a 204 5 7 CBra 1 205 10 b 206 12 5 Alt 207 15 c 208 17 12 Ket 209 20 d 210 22 7 CBra 2 211 27 e 212 29 7 Ket 213 32 32 Ket 214 35 End 215------------------------------------------------------------------ 216 217/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/ 218Memory allocation (code space): 45 219------------------------------------------------------------------ 220 0 41 Bra 221 3 25 Bra 222 6 a 223 8 17 CBra 1 224 13 c 225 15 7 CBra 2 226 20 d 227 22 7 Ket 228 25 17 Ket 229 28 25 Ket 230 31 7 CBra 3 231 36 a 232 38 7 Ket 233 41 41 Ket 234 44 End 235------------------------------------------------------------------ 236 237/(?P<a>a)...(?P=a)bbb(?P>a)d/ 238Memory allocation (code space): 34 239------------------------------------------------------------------ 240 0 30 Bra 241 3 7 CBra 1 242 8 a 243 10 7 Ket 244 13 Any 245 14 Any 246 15 Any 247 16 \1 248 19 bbb 249 25 3 Recurse 250 28 d 251 30 30 Ket 252 33 End 253------------------------------------------------------------------ 254 255/abc(?C255)de(?C)f/ 256Memory allocation (code space): 31 257------------------------------------------------------------------ 258 0 27 Bra 259 3 abc 260 9 Callout 255 10 1 261 15 de 262 19 Callout 0 16 1 263 25 f 264 27 27 Ket 265 30 End 266------------------------------------------------------------------ 267 268/abcde/auto_callout 269Memory allocation (code space): 53 270------------------------------------------------------------------ 271 0 49 Bra 272 3 Callout 255 0 1 273 9 a 274 11 Callout 255 1 1 275 17 b 276 19 Callout 255 2 1 277 25 c 278 27 Callout 255 3 1 279 33 d 280 35 Callout 255 4 1 281 41 e 282 43 Callout 255 5 0 283 49 49 Ket 284 52 End 285------------------------------------------------------------------ 286 287/\x{100}/utf 288Memory allocation (code space): 10 289------------------------------------------------------------------ 290 0 6 Bra 291 3 \x{100} 292 6 6 Ket 293 9 End 294------------------------------------------------------------------ 295 296/\x{1000}/utf 297Memory allocation (code space): 11 298------------------------------------------------------------------ 299 0 7 Bra 300 3 \x{1000} 301 7 7 Ket 302 10 End 303------------------------------------------------------------------ 304 305/\x{10000}/utf 306Memory allocation (code space): 12 307------------------------------------------------------------------ 308 0 8 Bra 309 3 \x{10000} 310 8 8 Ket 311 11 End 312------------------------------------------------------------------ 313 314/\x{100000}/utf 315Memory allocation (code space): 12 316------------------------------------------------------------------ 317 0 8 Bra 318 3 \x{100000} 319 8 8 Ket 320 11 End 321------------------------------------------------------------------ 322 323/\x{10ffff}/utf 324Memory allocation (code space): 12 325------------------------------------------------------------------ 326 0 8 Bra 327 3 \x{10ffff} 328 8 8 Ket 329 11 End 330------------------------------------------------------------------ 331 332/\x{110000}/utf 333Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large 334 335/[\x{ff}]/utf 336Memory allocation (code space): 10 337------------------------------------------------------------------ 338 0 6 Bra 339 3 \x{ff} 340 6 6 Ket 341 9 End 342------------------------------------------------------------------ 343 344/[\x{100}]/utf 345Memory allocation (code space): 10 346------------------------------------------------------------------ 347 0 6 Bra 348 3 \x{100} 349 6 6 Ket 350 9 End 351------------------------------------------------------------------ 352 353/\x80/utf 354Memory allocation (code space): 10 355------------------------------------------------------------------ 356 0 6 Bra 357 3 \x{80} 358 6 6 Ket 359 9 End 360------------------------------------------------------------------ 361 362/\xff/utf 363Memory allocation (code space): 10 364------------------------------------------------------------------ 365 0 6 Bra 366 3 \x{ff} 367 6 6 Ket 368 9 End 369------------------------------------------------------------------ 370 371/\x{0041}\x{2262}\x{0391}\x{002e}/I,utf 372Memory allocation (code space): 18 373------------------------------------------------------------------ 374 0 14 Bra 375 3 A\x{2262}\x{391}. 376 14 14 Ket 377 17 End 378------------------------------------------------------------------ 379Capturing subpattern count = 0 380Options: utf 381First code unit = 'A' 382Last code unit = '.' 383Subject length lower bound = 4 384 385/\x{D55c}\x{ad6d}\x{C5B4}/I,utf 386Memory allocation (code space): 19 387------------------------------------------------------------------ 388 0 15 Bra 389 3 \x{d55c}\x{ad6d}\x{c5b4} 390 15 15 Ket 391 18 End 392------------------------------------------------------------------ 393Capturing subpattern count = 0 394Options: utf 395First code unit = \xed 396Last code unit = \xb4 397Subject length lower bound = 3 398 399/\x{65e5}\x{672c}\x{8a9e}/I,utf 400Memory allocation (code space): 19 401------------------------------------------------------------------ 402 0 15 Bra 403 3 \x{65e5}\x{672c}\x{8a9e} 404 15 15 Ket 405 18 End 406------------------------------------------------------------------ 407Capturing subpattern count = 0 408Options: utf 409First code unit = \xe6 410Last code unit = \x9e 411Subject length lower bound = 3 412 413/[\x{100}]/utf 414Memory allocation (code space): 10 415------------------------------------------------------------------ 416 0 6 Bra 417 3 \x{100} 418 6 6 Ket 419 9 End 420------------------------------------------------------------------ 421 422/[Z\x{100}]/utf 423Memory allocation (code space): 47 424------------------------------------------------------------------ 425 0 43 Bra 426 3 [Z\x{100}] 427 43 43 Ket 428 46 End 429------------------------------------------------------------------ 430 431/^[\x{100}\E-\Q\E\x{150}]/utf 432Memory allocation (code space): 18 433------------------------------------------------------------------ 434 0 14 Bra 435 3 ^ 436 4 [\x{100}-\x{150}] 437 14 14 Ket 438 17 End 439------------------------------------------------------------------ 440 441/^[\QĀ\E-\QŐ\E]/utf 442Memory allocation (code space): 18 443------------------------------------------------------------------ 444 0 14 Bra 445 3 ^ 446 4 [\x{100}-\x{150}] 447 14 14 Ket 448 17 End 449------------------------------------------------------------------ 450 451/^[\QĀ\E-\QŐ\E/utf 452Failed: error 106 at offset 15: missing terminating ] for character class 453 454/[\p{L}]/ 455Memory allocation (code space): 15 456------------------------------------------------------------------ 457 0 11 Bra 458 3 [\p{L}] 459 11 11 Ket 460 14 End 461------------------------------------------------------------------ 462 463/[\p{^L}]/ 464Memory allocation (code space): 15 465------------------------------------------------------------------ 466 0 11 Bra 467 3 [\P{L}] 468 11 11 Ket 469 14 End 470------------------------------------------------------------------ 471 472/[\P{L}]/ 473Memory allocation (code space): 15 474------------------------------------------------------------------ 475 0 11 Bra 476 3 [\P{L}] 477 11 11 Ket 478 14 End 479------------------------------------------------------------------ 480 481/[\P{^L}]/ 482Memory allocation (code space): 15 483------------------------------------------------------------------ 484 0 11 Bra 485 3 [\p{L}] 486 11 11 Ket 487 14 End 488------------------------------------------------------------------ 489 490/[abc\p{L}\x{0660}]/utf 491Memory allocation (code space): 50 492------------------------------------------------------------------ 493 0 46 Bra 494 3 [a-c\p{L}\x{660}] 495 46 46 Ket 496 49 End 497------------------------------------------------------------------ 498 499/[\p{Nd}]/utf 500Memory allocation (code space): 15 501------------------------------------------------------------------ 502 0 11 Bra 503 3 [\p{Nd}] 504 11 11 Ket 505 14 End 506------------------------------------------------------------------ 507 508/[\p{Nd}+-]+/utf 509Memory allocation (code space): 48 510------------------------------------------------------------------ 511 0 44 Bra 512 3 [+\-\p{Nd}]++ 513 44 44 Ket 514 47 End 515------------------------------------------------------------------ 516 517/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf 518Memory allocation (code space): 25 519------------------------------------------------------------------ 520 0 21 Bra 521 3 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0} 522 21 21 Ket 523 24 End 524------------------------------------------------------------------ 525 526/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf 527Memory allocation (code space): 25 528------------------------------------------------------------------ 529 0 21 Bra 530 3 A\x{391}\x{10427}\x{ff3a}\x{1fb0} 531 21 21 Ket 532 24 End 533------------------------------------------------------------------ 534 535/[\x{105}-\x{109}]/i,utf 536Memory allocation (code space): 17 537------------------------------------------------------------------ 538 0 13 Bra 539 3 [\x{104}-\x{109}] 540 13 13 Ket 541 16 End 542------------------------------------------------------------------ 543 544/( ( (?(1)0|) )* )/x 545Memory allocation (code space): 38 546------------------------------------------------------------------ 547 0 34 Bra 548 3 28 CBra 1 549 8 Brazero 550 9 19 SCBra 2 551 14 8 Cond 552 17 1 Cond ref 553 20 0 554 22 3 Alt 555 25 11 Ket 556 28 19 KetRmax 557 31 28 Ket 558 34 34 Ket 559 37 End 560------------------------------------------------------------------ 561 562/( (?(1)0|)* )/x 563Memory allocation (code space): 30 564------------------------------------------------------------------ 565 0 26 Bra 566 3 20 CBra 1 567 8 Brazero 568 9 8 SCond 569 12 1 Cond ref 570 15 0 571 17 3 Alt 572 20 11 KetRmax 573 23 20 Ket 574 26 26 Ket 575 29 End 576------------------------------------------------------------------ 577 578/[a]/ 579Memory allocation (code space): 9 580------------------------------------------------------------------ 581 0 5 Bra 582 3 a 583 5 5 Ket 584 8 End 585------------------------------------------------------------------ 586 587/[a]/utf 588Memory allocation (code space): 9 589------------------------------------------------------------------ 590 0 5 Bra 591 3 a 592 5 5 Ket 593 8 End 594------------------------------------------------------------------ 595 596/[\xaa]/ 597Memory allocation (code space): 9 598------------------------------------------------------------------ 599 0 5 Bra 600 3 \x{aa} 601 5 5 Ket 602 8 End 603------------------------------------------------------------------ 604 605/[\xaa]/utf 606Memory allocation (code space): 10 607------------------------------------------------------------------ 608 0 6 Bra 609 3 \x{aa} 610 6 6 Ket 611 9 End 612------------------------------------------------------------------ 613 614/[^a]/ 615Memory allocation (code space): 9 616------------------------------------------------------------------ 617 0 5 Bra 618 3 [^a] 619 5 5 Ket 620 8 End 621------------------------------------------------------------------ 622 623/[^a]/utf 624Memory allocation (code space): 9 625------------------------------------------------------------------ 626 0 5 Bra 627 3 [^a] 628 5 5 Ket 629 8 End 630------------------------------------------------------------------ 631 632/[^\xaa]/ 633Memory allocation (code space): 9 634------------------------------------------------------------------ 635 0 5 Bra 636 3 [^\x{aa}] 637 5 5 Ket 638 8 End 639------------------------------------------------------------------ 640 641/[^\xaa]/utf 642Memory allocation (code space): 10 643------------------------------------------------------------------ 644 0 6 Bra 645 3 [^\x{aa}] 646 6 6 Ket 647 9 End 648------------------------------------------------------------------ 649 650#pattern -memory 651 652/[^\d]/utf,ucp 653------------------------------------------------------------------ 654 0 11 Bra 655 3 [^\p{Nd}] 656 11 11 Ket 657 14 End 658------------------------------------------------------------------ 659 660/[[:^alpha:][:^cntrl:]]+/utf,ucp 661------------------------------------------------------------------ 662 0 15 Bra 663 3 [\P{L}\P{Cc}]++ 664 15 15 Ket 665 18 End 666------------------------------------------------------------------ 667 668/[[:^cntrl:][:^alpha:]]+/utf,ucp 669------------------------------------------------------------------ 670 0 15 Bra 671 3 [\P{Cc}\P{L}]++ 672 15 15 Ket 673 18 End 674------------------------------------------------------------------ 675 676/[[:alpha:]]+/utf,ucp 677------------------------------------------------------------------ 678 0 12 Bra 679 3 [\p{L}]++ 680 12 12 Ket 681 15 End 682------------------------------------------------------------------ 683 684/[[:^alpha:]\S]+/utf,ucp 685------------------------------------------------------------------ 686 0 15 Bra 687 3 [\P{L}\P{Xsp}]++ 688 15 15 Ket 689 18 End 690------------------------------------------------------------------ 691 692/abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/ 693------------------------------------------------------------------ 694 0 73 Bra 695 3 abc 696 9 7 CBra 1 697 14 d 698 16 5 Alt 699 19 e 700 21 12 Ket 701 24 *THEN 702 25 x 703 27 14 CBra 2 704 32 123 705 38 *THEN 706 39 4 707 41 29 Alt 708 44 567 709 50 7 CBra 3 710 55 b 711 57 5 Alt 712 60 q 713 62 12 Ket 714 65 *THEN 715 66 xx 716 70 43 Ket 717 73 73 Ket 718 76 End 719------------------------------------------------------------------ 720 721/(((a\2)|(a*)\g<-1>))*a?/ 722------------------------------------------------------------------ 723 0 57 Bra 724 3 Brazero 725 4 48 SCBra 1 726 9 40 Once 727 12 18 CBra 2 728 17 10 CBra 3 729 22 a 730 24 \2 731 27 10 Ket 732 30 16 Alt 733 33 7 CBra 4 734 38 a* 735 40 7 Ket 736 43 33 Recurse 737 46 34 Ket 738 49 40 Ket 739 52 48 KetRmax 740 55 a?+ 741 57 57 Ket 742 60 End 743------------------------------------------------------------------ 744 745/((?+1)(\1))/ 746------------------------------------------------------------------ 747 0 31 Bra 748 3 25 Once 749 6 19 CBra 1 750 11 14 Recurse 751 14 8 CBra 2 752 19 \1 753 22 8 Ket 754 25 19 Ket 755 28 25 Ket 756 31 31 Ket 757 34 End 758------------------------------------------------------------------ 759 760"(?1)(?#?'){2}(a)" 761------------------------------------------------------------------ 762 0 19 Bra 763 3 9 Recurse 764 6 9 Recurse 765 9 7 CBra 1 766 14 a 767 16 7 Ket 768 19 19 Ket 769 22 End 770------------------------------------------------------------------ 771 772/.((?2)(?R)|\1|$)()/ 773------------------------------------------------------------------ 774 0 42 Bra 775 3 Any 776 4 27 Once 777 7 11 CBra 1 778 12 34 Recurse 779 15 0 Recurse 780 18 6 Alt 781 21 \1 782 24 4 Alt 783 27 $ 784 28 21 Ket 785 31 27 Ket 786 34 5 CBra 2 787 39 5 Ket 788 42 42 Ket 789 45 End 790------------------------------------------------------------------ 791 792/.((?3)(?R)()(?2)|\1|$)()/ 793------------------------------------------------------------------ 794 0 53 Bra 795 3 Any 796 4 38 Once 797 7 22 CBra 1 798 12 45 Recurse 799 15 0 Recurse 800 18 5 CBra 2 801 23 5 Ket 802 26 18 Recurse 803 29 6 Alt 804 32 \1 805 35 4 Alt 806 38 $ 807 39 32 Ket 808 42 38 Ket 809 45 5 CBra 3 810 50 5 Ket 811 53 53 Ket 812 56 End 813------------------------------------------------------------------ 814 815/(?1)()((((((\1++))\x85)+)|))/ 816------------------------------------------------------------------ 817 0 77 Bra 818 3 6 Recurse 819 6 5 CBra 1 820 11 5 Ket 821 14 60 CBra 2 822 19 49 CBra 3 823 24 41 CBra 4 824 29 33 CBra 5 825 34 23 CBra 6 826 39 15 CBra 7 827 44 7 Once 828 47 \1+ 829 51 7 Ket 830 54 15 Ket 831 57 23 Ket 832 60 \x{85} 833 62 33 KetRmax 834 65 41 Ket 835 68 3 Alt 836 71 52 Ket 837 74 60 Ket 838 77 77 Ket 839 80 End 840------------------------------------------------------------------ 841 842# Check the absolute limit on nesting (?| etc. This varies with code unit 843# width because the workspace is a different number of bytes. It will fail 844# with link size 2 in 8-bit and 16-bit but not in 32-bit. 845 846/(?|(?|(?J:(?|(?x:(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?| 847))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 848/parens_nest_limit=1000,-fullbincode 849Failed: error 184 at offset 1504: (?| and/or (?J: or (?x: parentheses are too deeply nested 850 851# Use "expand" to create some very long patterns with nested parentheses, in 852# order to test workspace overflow. Again, this varies with code unit width, 853# and even when it fails in two modes, the error offset differs. It also varies 854# with link size - hence multiple tests with different values. 855 856/(?'ABC'\[[bar](]{792}*THEN:\[A]{255}\[)]{793}/expand,-fullbincode,parens_nest_limit=1000 857 858/(?'ABC'\[[bar](]{793}*THEN:\[A]{255}\[)]{794}/expand,-fullbincode,parens_nest_limit=1000 859 860/(?'ABC'\[[bar](]{1793}*THEN:\[A]{255}\[)]{1794}/expand,-fullbincode,parens_nest_limit=2000 861Failed: error 186 at offset 12820: regular expression is too complicated 862 863/(?(1)(?1)){8,}+()/debug 864------------------------------------------------------------------ 865 0 119 Bra 866 3 105 Once 867 6 9 Cond 868 9 1 Cond ref 869 12 111 Recurse 870 15 9 Ket 871 18 9 Cond 872 21 1 Cond ref 873 24 111 Recurse 874 27 9 Ket 875 30 9 Cond 876 33 1 Cond ref 877 36 111 Recurse 878 39 9 Ket 879 42 9 Cond 880 45 1 Cond ref 881 48 111 Recurse 882 51 9 Ket 883 54 9 Cond 884 57 1 Cond ref 885 60 111 Recurse 886 63 9 Ket 887 66 9 Cond 888 69 1 Cond ref 889 72 111 Recurse 890 75 9 Ket 891 78 9 Cond 892 81 1 Cond ref 893 84 111 Recurse 894 87 9 Ket 895 90 15 SBraPos 896 93 9 SCond 897 96 1 Cond ref 898 99 111 Recurse 899102 9 Ket 900105 15 KetRpos 901108 105 Ket 902111 5 CBra 1 903116 5 Ket 904119 119 Ket 905122 End 906------------------------------------------------------------------ 907Capturing subpattern count = 1 908Max back reference = 1 909May match empty string 910Subject length lower bound = 0 911 abcd 912 0: 913 1: 914 915/(?(1)|a(?1)b){2,}+()/debug 916------------------------------------------------------------------ 917 0 61 Bra 918 3 47 Once 919 6 6 Cond 920 9 1 Cond ref 921 12 10 Alt 922 15 a 923 17 53 Recurse 924 20 b 925 22 16 Ket 926 25 22 SBraPos 927 28 6 SCond 928 31 1 Cond ref 929 34 10 Alt 930 37 a 931 39 53 Recurse 932 42 b 933 44 16 Ket 934 47 22 KetRpos 935 50 47 Ket 936 53 5 CBra 1 937 58 5 Ket 938 61 61 Ket 939 64 End 940------------------------------------------------------------------ 941Capturing subpattern count = 1 942Max back reference = 1 943May match empty string 944Subject length lower bound = 0 945 abcde 946No match 947 948/((?1)(?2)(?3)(?4)(?5)(?6)(?7)(?8)(?9)(?9)(?8)(?7)(?6)(?5)(?4)(?3)(?2)(?1)(?0)){2,}()()()()()()()()()/debug 949------------------------------------------------------------------ 950 0 205 Bra 951 3 62 CBra 1 952 8 3 Recurse 953 11 133 Recurse 954 14 141 Recurse 955 17 149 Recurse 956 20 157 Recurse 957 23 165 Recurse 958 26 173 Recurse 959 29 181 Recurse 960 32 189 Recurse 961 35 189 Recurse 962 38 181 Recurse 963 41 173 Recurse 964 44 165 Recurse 965 47 157 Recurse 966 50 149 Recurse 967 53 141 Recurse 968 56 133 Recurse 969 59 3 Recurse 970 62 0 Recurse 971 65 62 Ket 972 68 62 SCBra 1 973 73 3 Recurse 974 76 133 Recurse 975 79 141 Recurse 976 82 149 Recurse 977 85 157 Recurse 978 88 165 Recurse 979 91 173 Recurse 980 94 181 Recurse 981 97 189 Recurse 982100 189 Recurse 983103 181 Recurse 984106 173 Recurse 985109 165 Recurse 986112 157 Recurse 987115 149 Recurse 988118 141 Recurse 989121 133 Recurse 990124 3 Recurse 991127 0 Recurse 992130 62 KetRmax 993133 5 CBra 2 994138 5 Ket 995141 5 CBra 3 996146 5 Ket 997149 5 CBra 4 998154 5 Ket 999157 5 CBra 5 1000162 5 Ket 1001165 5 CBra 6 1002170 5 Ket 1003173 5 CBra 7 1004178 5 Ket 1005181 5 CBra 8 1006186 5 Ket 1007189 5 CBra 9 1008194 5 Ket 1009197 5 CBra 10 1010202 5 Ket 1011205 205 Ket 1012208 End 1013------------------------------------------------------------------ 1014Capturing subpattern count = 10 1015May match empty string 1016Subject length lower bound = 0 1017 1018/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ 1019Failed: error 114 at offset 509: missing closing parenthesis 1020 1021/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/-fullbincode 1022 1023# End of testinput8 1024