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