591 |
aaaabbbbzzzz\O3 |
aaaabbbbzzzz\O3 |
592 |
aaaabbbbzzzz\O4 |
aaaabbbbzzzz\O4 |
593 |
aaaabbbbzzzz\O5 |
aaaabbbbzzzz\O5 |
594 |
|
|
595 |
|
/^.?abcd/S |
596 |
|
|
597 |
|
/\( # ( at start |
598 |
|
(?: # Non-capturing bracket |
599 |
|
(?>[^()]+) # Either a sequence of non-brackets (no backtracking) |
600 |
|
| # Or |
601 |
|
(?R) # Recurse - i.e. nested bracketed string |
602 |
|
)* # Zero or more contents |
603 |
|
\) # Closing ) |
604 |
|
/x |
605 |
|
(abcd) |
606 |
|
(abcd)xyz |
607 |
|
xyz(abcd) |
608 |
|
(ab(xy)cd)pqr |
609 |
|
(ab(xycd)pqr |
610 |
|
() abc () |
611 |
|
12(abcde(fsh)xyz(foo(bar))lmno)89 |
612 |
|
*** Failers |
613 |
|
abcd |
614 |
|
abcd) |
615 |
|
(abcd |
616 |
|
|
617 |
|
/\( ( (?>[^()]+) | (?R) )* \) /xg |
618 |
|
(ab(xy)cd)pqr |
619 |
|
1(abcd)(x(y)z)pqr |
620 |
|
|
621 |
|
/\( (?: (?>[^()]+) | (?R) ) \) /x |
622 |
|
(abcd) |
623 |
|
(ab(xy)cd) |
624 |
|
(a(b(c)d)e) |
625 |
|
((ab)) |
626 |
|
*** Failers |
627 |
|
() |
628 |
|
|
629 |
|
/\( (?: (?>[^()]+) | (?R) )? \) /x |
630 |
|
() |
631 |
|
12(abcde(fsh)xyz(foo(bar))lmno)89 |
632 |
|
|
633 |
|
/\( ( (?>[^()]+) | (?R) )* \) /x |
634 |
|
(ab(xy)cd) |
635 |
|
|
636 |
|
/\( ( ( (?>[^()]+) | (?R) )* ) \) /x |
637 |
|
(ab(xy)cd) |
638 |
|
|
639 |
|
/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x |
640 |
|
(ab(xy)cd) |
641 |
|
(123ab(xy)cd) |
642 |
|
|
643 |
|
/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x |
644 |
|
(ab(xy)cd) |
645 |
|
(123ab(xy)cd) |
646 |
|
|
647 |
|
/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x |
648 |
|
(ab(xy)cd) |
649 |
|
|
650 |
|
/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x |
651 |
|
(abcd(xyz<p>qrs)123) |
652 |
|
|
653 |
|
/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x |
654 |
|
(ab(cd)ef) |
655 |
|
(ab(cd(ef)gh)ij) |
656 |
|
|
657 |
|
/^[[:alnum:]]/D |
658 |
|
|
659 |
|
/^[[:alpha:]]/D |
660 |
|
|
661 |
|
/^[[:ascii:]]/D |
662 |
|
|
663 |
|
/^[[:cntrl:]]/D |
664 |
|
|
665 |
|
/^[[:digit:]]/D |
666 |
|
|
667 |
|
/^[[:graph:]]/D |
668 |
|
|
669 |
|
/^[[:lower:]]/D |
670 |
|
|
671 |
|
/^[[:print:]]/D |
672 |
|
|
673 |
|
/^[[:punct:]]/D |
674 |
|
|
675 |
|
/^[[:space:]]/D |
676 |
|
|
677 |
|
/^[[:upper:]]/D |
678 |
|
|
679 |
|
/^[[:xdigit:]]/D |
680 |
|
|
681 |
|
/^[[:word:]]/D |
682 |
|
|
683 |
|
/^[[:^cntrl:]]/D |
684 |
|
|
685 |
|
/^[12[:^digit:]]/D |
686 |
|
|
687 |
|
/[01[:alpha:]%]/D |
688 |
|
|
689 |
|
/[[.ch.]]/ |
690 |
|
|
691 |
|
/[[=ch=]]/ |
692 |
|
|
693 |
|
/[[:rhubarb:]]/ |
694 |
|
|
695 |
|
/[[:upper:]]/i |
696 |
|
A |
697 |
|
a |
698 |
|
|
699 |
|
/[[:lower:]]/i |
700 |
|
A |
701 |
|
a |
702 |
|
|
703 |
|
/((?-i)[[:lower:]])[[:lower:]]/i |
704 |
|
ab |
705 |
|
aB |
706 |
|
*** Failers |
707 |
|
Ab |
708 |
|
AB |
709 |
|
|
710 |
/ End of test input / |
/ End of test input / |