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