diff options
author | ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2011-12-28 17:16:11 +0000 |
---|---|---|
committer | ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2011-12-28 17:16:11 +0000 |
commit | 5e8b286b566d7ec502b80892e5b709025631d58c (patch) | |
tree | c8a6c83ad13e79a9b64718b784fe0126764d98b7 /testdata/testinput11 | |
parent | a29cc4dc66d82b59de7616c53517c58271e6e0e8 (diff) | |
download | pcre-5e8b286b566d7ec502b80892e5b709025631d58c.tar.gz |
Merging all the changes from the pcre16 branch into the trunk.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@836 2f5784b3-3f2a-0410-8824-cb99058d5e15
Diffstat (limited to 'testdata/testinput11')
-rw-r--r-- | testdata/testinput11 | 806 |
1 files changed, 69 insertions, 737 deletions
diff --git a/testdata/testinput11 b/testdata/testinput11 index a9d1cfd..391ada7 100644 --- a/testdata/testinput11 +++ b/testdata/testinput11 @@ -1,803 +1,135 @@ -/-- These tests are for the Perl >= 5.10 features that PCRE supports. --/ +/-- These are a few representative patterns whose lengths and offsets are to be +shown when the link size is 2. This is just a doublecheck test to ensure the +sizes don't go horribly wrong when something is changed. The pattern contents +are all themselves checked in other tests. Unicode, including property support, +is required for these tests. --/ -/\H\h\V\v/ - X X\x0a - X\x09X\x0b - ** Failers - \xa0 X\x0a - -/\H*\h+\V?\v{3,4}/ - \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a - \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a - \x09\x20\xa0\x0a\x0b\x0c - ** Failers - \x09\x20\xa0\x0a\x0b - -/\H{3,4}/ - XY ABCDE - XY PQR ST - -/.\h{3,4}./ - XY AB PQRS - -/\h*X\h?\H+Y\H?Z/ - >XNNNYZ - > X NYQZ - ** Failers - >XYZ - > X NY Z - -/\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/ - >XY\x0aZ\x0aA\x0bNN\x0c - >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c - -/(foo)\Kbar/ - foobar - -/(foo)(\Kbar|baz)/ - foobar - foobaz - -/(foo\Kbar)baz/ - foobarbaz - -/abc\K|def\K/g+ - Xabcdefghi - -/ab\Kc|de\Kf/g+ - Xabcdefghi - -/(?=C)/g+ - ABCDECBA - -/^abc\K/+ - abcdef - ** Failers - defabcxyz +/((?i)b)/BM -/^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/ - ababababbbabZXXXX +/(?s)(.*X|^B)/BM -/(?<A>tom|bon)-\g{A}/ - tom-tom - bon-bon - -/(^(a|b\g{-1}))/ - bacxxx - -/(?|(abc)|(xyz))\1/ - abcabc - xyzxyz - ** Failers - abcxyz - xyzabc - -/(?|(abc)|(xyz))(?1)/ - abcabc - xyzabc - ** Failers - xyzxyz - -/^X(?5)(a)(?|(b)|(q))(c)(d)(Y)/ - XYabcdY - -/^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)/ - XYabcdY - -/^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/ - XYabcdY - -/(?'abc'\w+):\k<abc>{2}/ - a:aaxyz - ab:ababxyz - ** Failers - a:axyz - ab:abxyz - -/(?'abc'\w+):\g{abc}{2}/ - a:aaxyz - ab:ababxyz - ** Failers - a:axyz - ab:abxyz - -/^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x - abd - ce - -/^(a.)\g-1Z/ - aXaXZ - -/^(a.)\g{-1}Z/ - aXaXZ - -/^(?(DEFINE) (?<A> a) (?<B> b) ) (?&A) (?&B) /x - abcd - -/(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT)) - (?(DEFINE) - (?<NAME_PAT>[a-z]+) - (?<ADDRESS_PAT>\d+) - )/x - metcalfe 33 - -/(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/ - 1.2.3.4 - 131.111.10.206 - 10.0.0.0 - ** Failers - 10.6 - 455.3.4.5 - -/\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/ - 1.2.3.4 - 131.111.10.206 - 10.0.0.0 - ** Failers - 10.6 - 455.3.4.5 - -/^(\w++|\s++)*$/ - now is the time for all good men to come to the aid of the party - *** Failers - this is not a line with only words and spaces! - -/(\d++)(\w)/ - 12345a - *** Failers - 12345+ - -/a++b/ - aaab - -/(a++b)/ - aaab - -/(a++)b/ - aaab - -/([^()]++|\([^()]*\))+/ - ((abc(ade)ufh()()x - -/\(([^()]++|\([^()]+\))+\)/ - (abc) - (abc(def)xyz) - *** Failers - ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - -/^([^()]|\((?1)*\))*$/ - abc - a(b)c - a(b(c))d - *** Failers) - a(b(c)d - -/^>abc>([^()]|\((?1)*\))*<xyz<$/ - >abc>123<xyz< - >abc>1(2)3<xyz< - >abc>(1(2)3)<xyz< - -/^(?:((.)(?1)\2|)|((.)(?3)\4|.))$/i - 1221 - Satanoscillatemymetallicsonatas - AmanaplanacanalPanama - AblewasIereIsawElba - *** Failers - Thequickbrownfox - -/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/ - 12 - (((2+2)*-3)-7) - -12 - *** Failers - ((2+2)*-3)-7) - -/^(x(y|(?1){2})z)/ - xyz - xxyzxyzz - *** Failers - xxyzz - xxyzxyzxyzz - -/((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/x - <> - <abcd> - <abc <123> hij> - <abc <def> hij> - <abc<>def> - <abc<> - *** Failers - <abc - -/^a+(*FAIL)/ - aaaaaa - -/a+b?c+(*FAIL)/ - aaabccc +/(?s:.*X|^B)/BM -/a+b?(*PRUNE)c+(*FAIL)/ - aaabccc +/^[[:alnum:]]/BM -/a+b?(*COMMIT)c+(*FAIL)/ - aaabccc - -/a+b?(*SKIP)c+(*FAIL)/ - aaabcccaaabccc - -/^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/ - aaaxxxxxx - aaa++++++ - bbbxxxxx - bbb+++++ - cccxxxx - ccc++++ - dddddddd - -/^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/ - aaaxxxxxx - aaa++++++ - bbbxxxxx - bbb+++++ - cccxxxx - ccc++++ - dddddddd - -/a+b?(*THEN)c+(*FAIL)/ - aaabccc - -/(A (A|B(*ACCEPT)|C) D)(E)/x - AB - ABX - AADE - ACDE - ** Failers - AD - -/^\W*+(?:((.)\W*+(?1)\W*+\2|)|((.)\W*+(?3)\W*+\4|\W*+.\W*+))\W*+$/i - 1221 - Satan, oscillate my metallic sonatas! - A man, a plan, a canal: Panama! - Able was I ere I saw Elba. - *** Failers - The quick brown fox - -/^((.)(?1)\2|.)$/ - a - aba - aabaa - abcdcba - pqaabaaqp - ablewasiereisawelba - rhubarb - the quick brown fox - -/(a)(?<=b(?1))/ - baz - ** Failers - caz - -/(?<=b(?1))(a)/ - zbaaz - ** Failers - aaa - -/(?<X>a)(?<=b(?&X))/ - baz - -/^(?|(abc)|(def))\1/ - abcabc - defdef - ** Failers - abcdef - defabc - -/^(?|(abc)|(def))(?1)/ - abcabc - defabc - ** Failers - defdef - abcdef - -/(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |b(?<quote> (?<apostrophe>')|(?<realquote>")) ) (?('quote')[a-z]+|[0-9]+)/xJ - a\"aaaaa - b\"aaaaa - ** Failers - b\"11111 - -/(?:(?1)|B)(A(*F)|C)/ - ABCD - CCD - ** Failers - CAD - -/^(?:(?1)|B)(A(*F)|C)/ - CCD - BCD - ** Failers - ABCD - CAD - BAD - -/(?:(?1)|B)(A(*ACCEPT)XX|C)D/ - AAD - ACD - BAD - BCD - BAX - ** Failers - ACX - ABC - -/(?(DEFINE)(A))B(?1)C/ - BAC - -/(?(DEFINE)((A)\2))B(?1)C/ - BAAC - -/(?<pn> \( ( [^()]++ | (?&pn) )* \) )/x - (ab(cd)ef) - -/^(?!a(*SKIP)b)/ - ac - -/^(?=a(*SKIP)b|ac)/ - ** Failers - ac - -/^(?=a(*THEN)b|ac)/ - ac - -/^(?=a(*PRUNE)b)/ - ab - ** Failers - ac +/#/IxMD -/^(?=a(*ACCEPT)b)/ - ac +/a#/IxMD -/^(?(?!a(*SKIP)b))/ - ac +/x?+/BM -/(?>a\Kb)/ - ab +/x++/BM -/((?>a\Kb))/ - ab +/x{1,3}+/BM -/(a\Kb)/ - ab - -/^a\Kcz|ac/ - ac - -/(?>a\Kbz|ab)/ - ab +/(x)*+/BM -/^(?&t)(?(DEFINE)(?<t>a\Kb))$/ - ab +/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/BM -/^([^()]|\((?1)*\))*$/ - a(b)c - a(b(c)d)e +|8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|BM -/(?P<L1>(?P<L2>0)(?P>L1)|(?P>L2))/ - 0 - 00 - 0000 +|\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|BM -/(?P<L1>(?P<L2>0)|(?P>L2)(?P>L1))/ - 0 - 00 - 0000 +/(a(?1)b)/BM -/--- This one does fail, as expected, in Perl. It needs the complex item at the - end of the pattern. A single letter instead of (B|D) makes it not fail, - which I think is a Perl bug. --- / +/(a(?1)+b)/BM -/A(*COMMIT)(B|D)/ - ACABX +/a(?P<name1>b|c)d(?P<longername2>e)/BM -/--- Check the use of names for failure ---/ +/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/BM -/^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K - ** Failers - AC - CB - -/--- Force no study, otherwise mark is not seen. The studied version is in - test 2 because it isn't Perl-compatible. ---/ - -/(*MARK:A)(*SKIP:B)(C|X)/KSS - C - D - -/^(A(*THEN:A)B|C(*THEN:B)D)/K - ** Failers - CB - -/^(?:A(*THEN:A)B|C(*THEN:B)D)/K - CB - -/^(?>A(*THEN:A)B|C(*THEN:B)D)/K - CB - -/--- This should succeed, as the skip causes bump to offset 1 (the mark). Note -that we have to have something complicated such as (B|Z) at the end because, -for Perl, a simple character somehow causes an unwanted optimization to mess -with the handling of backtracking verbs. ---/ - -/A(*MARK:A)A+(*SKIP:A)(B|Z) | AC/xK - AAAC - -/--- Test skipping over a non-matching mark. ---/ - -/A(*MARK:A)A+(*MARK:B)(*SKIP:A)(B|Z) | AC/xK - AAAC - -/--- Check shorthand for MARK ---/ - -/A(*:A)A+(*SKIP:A)(B|Z) | AC/xK - AAAC +/(?P<a>a)...(?P=a)bbb(?P>a)d/BM -/--- Don't loop! Force no study, otherwise mark is not seen. ---/ - -/(*:A)A+(*SKIP:A)(B|Z)/KSS - AAAC - -/--- This should succeed, as a non-existent skip name disables the skip ---/ - -/A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/xK - AAAC - -/A(*MARK:A)A+(*SKIP:B)(B|Z) | AC(*:B)/xK - AAAC - -/--- We use something more complicated than individual letters here, because -that causes different behaviour in Perl. Perhaps it disables some optimization; -anyway, the result now matches PCRE in that no tag is passed back for the -failures. ---/ - -/(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK - AABC - XXYZ - ** Failers - XAQQ - XAQQXZZ - AXQQQ - AXXQQQ - -/--- COMMIT at the start of a pattern should act like an anchor. Again, -however, we need the complication for Perl. ---/ - -/(*COMMIT)(A|P)(B|P)(C|P)/ - ABCDEFG - ** Failers - DEFGABC - -/--- COMMIT inside an atomic group can't stop backtracking over the group. ---/ - -/(\w+)(?>b(*COMMIT))\w{2}/ - abbb - -/(\w+)b(*COMMIT)\w{2}/ - abbb - -/--- Check opening parens in comment when seeking forward reference. ---/ - -/(?&t)(?#()(?(DEFINE)(?<t>a))/ - bac - -/--- COMMIT should override THEN ---/ - -/(?>(*COMMIT)(?>yes|no)(*THEN)(*F))?/ - yes - -/(?>(*COMMIT)(yes|no)(*THEN)(*F))?/ - yes - -/b?(*SKIP)c/ - bc - abc - -/(*SKIP)bc/ - a - -/(*SKIP)b/ - a - -/(?P<abn>(?P=abn)xxx|)+/ - xxx - -/(?i:([^b]))(?1)/ - aa - aA - ** Failers - ab - aB - Ba - ba +/abc(?C255)de(?C)f/BM -/^(?&t)*+(?(DEFINE)(?<t>a))\w$/ - aaaaaaX - ** Failers - aaaaaa +/abcde/CBM -/^(?&t)*(?(DEFINE)(?<t>a))\w$/ - aaaaaaX - aaaaaa +/\x{100}/8BM -/^(a)*+(\w)/ - aaaaX - YZ - ** Failers - aaaa +/\x{1000}/8BM -/^(?:a)*+(\w)/ - aaaaX - YZ - ** Failers - aaaa +/\x{10000}/8BM -/^(a)++(\w)/ - aaaaX - ** Failers - aaaa - YZ +/\x{100000}/8BM -/^(?:a)++(\w)/ - aaaaX - ** Failers - aaaa - YZ +/\x{10ffff}/8BM -/^(a)?+(\w)/ - aaaaX - YZ +/\x{110000}/8BM -/^(?:a)?+(\w)/ - aaaaX - YZ +/[\x{ff}]/8BM -/^(a){2,}+(\w)/ - aaaaX - ** Failers - aaa - YZ +/[\x{100}]/8BM -/^(?:a){2,}+(\w)/ - aaaaX - ** Failers - aaa - YZ +/\x80/8BM -/(a|)*(?1)b/ - b - ab - aab +/\xff/8BM -/(a)++(?1)b/ - ** Failers - ab - aab - -/(a)*+(?1)b/ - ** Failers - ab - aab - -/(?1)(?:(b)){0}/ - b - -/(foo ( \( ((?:(?> [^()]+ )|(?2))*) \) ) )/x - foo(bar(baz)+baz(bop)) - -/(A (A|B(*ACCEPT)|C) D)(E)/x - AB - -/\A.*?(?:a|b(*THEN)c)/ - ba - -/\A.*?(?:a|bc)/ - ba - -/\A.*?(a|b(*THEN)c)/ - ba - -/\A.*?(a|bc)/ - ba - -/\A.*?(?:a|b(*THEN)c)++/ - ba - -/\A.*?(?:a|bc)++/ - ba - -/\A.*?(a|b(*THEN)c)++/ - ba - -/\A.*?(a|bc)++/ - ba - -/\A.*?(?:a|b(*THEN)c|d)/ - ba - -/\A.*?(?:a|bc|d)/ - ba - -/(?:(b))++/ - beetle - -/(?(?=(a(*ACCEPT)z))a)/ - a - -/^(a)(?1)+ab/ - aaaab - -/^(a)(?1)++ab/ - aaaab - -/^(?=a(*:M))aZ/K - aZbc - -/^(?!(*:M)b)aZ/K - aZbc - -/(?(DEFINE)(a))?b(?1)/ - backgammon - -/^\N+/ - abc\ndef - -/^\N{1,}/ - abc\ndef - -/(?(R)a+|(?R)b)/ - aaaabcde - -/(?(R)a+|((?R))b)/ - aaaabcde - -/((?(R)a+|(?1)b))/ - aaaabcde - -/((?(R1)a+|(?1)b))/ - aaaabcde - -/a(*:any -name)/K - abc - -/(?>(?&t)c|(?&t))(?(DEFINE)(?<t>a|b(*PRUNE)c))/ - a - ba - bba +/\x{0041}\x{2262}\x{0391}\x{002e}/D8M -/--- Checking revised (*THEN) handling ---/ +/\x{D55c}\x{ad6d}\x{C5B4}/D8M -/--- Capture ---/ +/\x{65e5}\x{672c}\x{8a9e}/D8M -/^.*? (a(*THEN)b) c/x - aabc +/[\x{100}]/8BM -/^.*? (a(*THEN)b|(*F)) c/x - aabc +/[Z\x{100}]/8BM -/^.*? ( (a(*THEN)b) | (*F) ) c/x - aabc +/^[\x{100}\E-\Q\E\x{150}]/B8M -/^.*? ( (a(*THEN)b) ) c/x - aabc +/^[\QĀ\E-\QŐ\E]/B8M -/--- Non-capture ---/ +/^[\QĀ\E-\QŐ\E/B8M -/^.*? (?:a(*THEN)b) c/x - aabc +/[\p{L}]/BM -/^.*? (?:a(*THEN)b|(*F)) c/x - aabc +/[\p{^L}]/BM -/^.*? (?: (?:a(*THEN)b) | (*F) ) c/x - aabc +/[\P{L}]/BM -/^.*? (?: (?:a(*THEN)b) ) c/x - aabc +/[\P{^L}]/BM -/--- Atomic ---/ +/[abc\p{L}\x{0660}]/8BM -/^.*? (?>a(*THEN)b) c/x - aabc +/[\p{Nd}]/8BM -/^.*? (?>a(*THEN)b|(*F)) c/x - aabc +/[\p{Nd}+-]+/8BM -/^.*? (?> (?>a(*THEN)b) | (*F) ) c/x - aabc +/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iBM -/^.*? (?> (?>a(*THEN)b) ) c/x - aabc +/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8BM -/--- Possessive capture ---/ +/[\x{105}-\x{109}]/8iBM -/^.*? (a(*THEN)b)++ c/x - aabc +/( ( (?(1)0|) )* )/xBM -/^.*? (a(*THEN)b|(*F))++ c/x - aabc +/( (?(1)0|)* )/xBM -/^.*? ( (a(*THEN)b)++ | (*F) )++ c/x - aabc +/[a]/BM -/^.*? ( (a(*THEN)b)++ )++ c/x - aabc +/[a]/8BM -/--- Possessive non-capture ---/ +/[\xaa]/BM -/^.*? (?:a(*THEN)b)++ c/x - aabc - -/^.*? (?:a(*THEN)b|(*F))++ c/x - aabc - -/^.*? (?: (?:a(*THEN)b)++ | (*F) )++ c/x - aabc - -/^.*? (?: (?:a(*THEN)b)++ )++ c/x - aabc - -/--- Condition assertion ---/ +/[\xaa]/8BM -/^(?(?=a(*THEN)b)ab|ac)/ - ac - -/--- Condition ---/ +/[^a]/BM -/^.*?(?(?=a)a|b(*THEN)c)/ - ba +/[^a]/8BM -/^.*?(?:(?(?=a)a|b(*THEN)c)|d)/ - ba +/[^\xaa]/BM -/^.*?(?(?=a)a(*THEN)b|c)/ - ac +/[^\xaa]/8BM -/--- Assertion ---/ +/[^\d]/8WB -/^.*(?=a(*THEN)b)/ - aabc +/[[:^alpha:][:^cntrl:]]+/8WB -/------------------------------/ +/[[:^cntrl:][:^alpha:]]+/8WB -/(?>a(*:m))/imsxSK - a - -/(?>(a)(*:m))/imsxSK - a - -/(?<=a(*ACCEPT)b)c/ - xacd - -/(?<=(a(*ACCEPT)b))c/ - xacd - -/(?<=(a(*COMMIT)b))c/ - xabcd - ** Failers - xacd - -/(?<!a(*FAIL)b)c/ - xcd - acd - -/(?<=a(*:N)b)c/K - xabcd - -/(?<=a(*PRUNE)b)c/ - xabcd +/[[:alpha:]]+/8WB -/(?<=a(*SKIP)b)c/ - xabcd +/[[:^alpha:]\S]+/8WB -/(?<=a(*THEN)b)c/ - xabcd +/abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/B /-- End of testinput11 --/ |