diff options
Diffstat (limited to 'posix/BOOST.tests')
-rw-r--r-- | posix/BOOST.tests | 829 |
1 files changed, 0 insertions, 829 deletions
diff --git a/posix/BOOST.tests b/posix/BOOST.tests deleted file mode 100644 index 98fd3b6abf..0000000000 --- a/posix/BOOST.tests +++ /dev/null @@ -1,829 +0,0 @@ -; -; -; this file contains a script of tests to run through regress.exe -; -; comments start with a semicolon and proceed to the end of the line -; -; changes to regular expression compile flags start with a "-" as the first -; non-whitespace character and consist of a list of the printable names -; of the flags, for example "match_default" -; -; Other lines contain a test to perform using the current flag status -; the first token contains the expression to compile, the second the string -; to match it against. If the second string is "!" then the expression should -; not compile, that is the first string is an invalid regular expression. -; This is then followed by a list of integers that specify what should match, -; each pair represents the starting and ending positions of a subexpression -; starting with the zeroth subexpression (the whole match). -; A value of -1 indicates that the subexpression should not take part in the -; match at all, if the first value is -1 then no part of the expression should -; match the string. -; -; Tests taken from BOOST testsuite and adapted to glibc regex. -; -; Boost Software License - Version 1.0 - August 17th, 2003 -; -; Permission is hereby granted, free of charge, to any person or organization -; obtaining a copy of the software and accompanying documentation covered by -; this license (the "Software") to use, reproduce, display, distribute, -; execute, and transmit the Software, and to prepare derivative works of the -; Software, and to permit third-parties to whom the Software is furnished to -; do so, all subject to the following: -; -; The copyright notices in the Software and this entire statement, including -; the above license grant, this restriction and the following disclaimer, -; must be included in all copies of the Software, in whole or in part, and -; all derivative works of the Software, unless such copies or derivative -; works are solely in the form of machine-executable object code generated by -; a source language processor. -; -; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -; FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -; SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -; FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -; ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -; DEALINGS IN THE SOFTWARE. -; - -- match_default normal REG_EXTENDED - -; -; try some really simple literals: -a a 0 1 -Z Z 0 1 -Z aaa -1 -1 -Z xxxxZZxxx 4 5 - -; and some simple brackets: -(a) zzzaazz 3 4 3 4 -() zzz 0 0 0 0 -() "" 0 0 0 0 -( ! -) ) 0 1 -(aa ! -aa) baa)b 1 4 -a b -1 -1 -\(\) () 0 2 -\(a\) (a) 0 3 -\() () 0 2 -(\) ! -p(a)rameter ABCparameterXYZ 3 12 4 5 -[pq](a)rameter ABCparameterXYZ 3 12 4 5 - -; now try escaped brackets: -- match_default bk_parens REG_BASIC -\(a\) zzzaazz 3 4 3 4 -\(\) zzz 0 0 0 0 -\(\) "" 0 0 0 0 -\( ! -\) ! -\(aa ! -aa\) ! -() () 0 2 -(a) (a) 0 3 -(\) ! -\() ! - -; now move on to "." wildcards -- match_default normal REG_EXTENDED REG_STARTEND -. a 0 1 -. \n 0 1 -. \r 0 1 -. \0 0 1 - -; -; now move on to the repetion ops, -; starting with operator * -- match_default normal REG_EXTENDED -a* b 0 0 -ab* a 0 1 -ab* ab 0 2 -ab* sssabbbbbbsss 3 10 -ab*c* a 0 1 -ab*c* abbb 0 4 -ab*c* accc 0 4 -ab*c* abbcc 0 5 -*a ! -\<* ! -\>* ! -\n* \n\n 0 2 -\** ** 0 2 -\* * 0 1 - -; now try operator + -ab+ a -1 -1 -ab+ ab 0 2 -ab+ sssabbbbbbsss 3 10 -ab+c+ a -1 -1 -ab+c+ abbb -1 -1 -ab+c+ accc -1 -1 -ab+c+ abbcc 0 5 -+a ! -\<+ ! -\>+ ! -\n+ \n\n 0 2 -\+ + 0 1 -\+ ++ 0 1 -\++ ++ 0 2 - -; now try operator ? -- match_default normal REG_EXTENDED -a? b 0 0 -ab? a 0 1 -ab? ab 0 2 -ab? sssabbbbbbsss 3 5 -ab?c? a 0 1 -ab?c? abbb 0 2 -ab?c? accc 0 2 -ab?c? abcc 0 3 -?a ! -\<? ! -\>? ! -\n? \n\n 0 1 -\? ? 0 1 -\? ?? 0 1 -\?? ?? 0 1 - -; now try operator {} -- match_default normal REG_EXTENDED -a{2} a -1 -1 -a{2} aa 0 2 -a{2} aaa 0 2 -a{2,} a -1 -1 -a{2,} aa 0 2 -a{2,} aaaaa 0 5 -a{2,4} a -1 -1 -a{2,4} aa 0 2 -a{2,4} aaa 0 3 -a{2,4} aaaa 0 4 -a{2,4} aaaaa 0 4 -a{} ! -a{2 ! -a} a} 0 2 -\{\} {} 0 2 - -- match_default normal REG_BASIC -a\{2\} a -1 -1 -a\{2\} aa 0 2 -a\{2\} aaa 0 2 -a\{2,\} a -1 -1 -a\{2,\} aa 0 2 -a\{2,\} aaaaa 0 5 -a\{2,4\} a -1 -1 -a\{2,4\} aa 0 2 -a\{2,4\} aaa 0 3 -a\{2,4\} aaaa 0 4 -a\{2,4\} aaaaa 0 4 -{} {} 0 2 - -; now test the alternation operator | -- match_default normal REG_EXTENDED -a|b a 0 1 -a|b b 0 1 -a(b|c) ab 0 2 1 2 -a(b|c) ac 0 2 1 2 -a(b|c) ad -1 -1 -1 -1 -a\| a| 0 2 - -; now test the set operator [] -- match_default normal REG_EXTENDED -; try some literals first -[abc] a 0 1 -[abc] b 0 1 -[abc] c 0 1 -[abc] d -1 -1 -[^bcd] a 0 1 -[^bcd] b -1 -1 -[^bcd] d -1 -1 -[^bcd] e 0 1 -a[b]c abc 0 3 -a[ab]c abc 0 3 -a[^ab]c adc 0 3 -a[]b]c a]c 0 3 -a[[b]c a[c 0 3 -a[-b]c a-c 0 3 -a[^]b]c adc 0 3 -a[^-b]c adc 0 3 -a[b-]c a-c 0 3 -a[b ! -a[] ! - -; then some ranges -[b-e] a -1 -1 -[b-e] b 0 1 -[b-e] e 0 1 -[b-e] f -1 -1 -[^b-e] a 0 1 -[^b-e] b -1 -1 -[^b-e] e -1 -1 -[^b-e] f 0 1 -a[1-3]c a2c 0 3 -a[3-1]c ! -a[1-3-5]c ! -a[1- ! - -; and some classes -a[[:alpha:]]c abc 0 3 -a[[:unknown:]]c ! -a[[: ! -a[[:alpha ! -a[[:alpha:] ! -a[[:alpha,:] ! -a[[:]:]]b ! -a[[:-:]]b ! -a[[:alph:]] ! -a[[:alphabet:]] ! -[[:alnum:]]+ -%@a0X_- 3 6 -[[:alpha:]]+ -%@aX_0- 3 5 -[[:blank:]]+ "a \tb" 1 4 -[[:cntrl:]]+ a\n\tb 1 3 -[[:digit:]]+ a019b 1 4 -[[:graph:]]+ " a%b " 1 4 -[[:lower:]]+ AabC 1 3 -; This test fails with STLPort, disable for now as this is a corner case anyway... -;[[:print:]]+ "\na b\n" 1 4 -[[:punct:]]+ " %-&\t" 1 4 -[[:space:]]+ "a \n\t\rb" 1 5 -[[:upper:]]+ aBCd 1 3 -[[:xdigit:]]+ p0f3Cx 1 5 - -; now test flag settings: -- escape_in_lists REG_NO_POSIX_TEST -[\n] \n 0 1 -- REG_NO_POSIX_TEST - -; line anchors -- match_default normal REG_EXTENDED -^ab ab 0 2 -^ab xxabxx -1 -1 -ab$ ab 0 2 -ab$ abxx -1 -1 -- match_default match_not_bol match_not_eol normal REG_EXTENDED REG_NOTBOL REG_NOTEOL -^ab ab -1 -1 -^ab xxabxx -1 -1 -ab$ ab -1 -1 -ab$ abxx -1 -1 - -; back references -- match_default normal REG_PERL -a(b)\2c ! -a(b\1)c ! -a(b*)c\1d abbcbbd 0 7 1 3 -a(b*)c\1d abbcbd -1 -1 -a(b*)c\1d abbcbbbd -1 -1 -^(.)\1 abc -1 -1 -a([bc])\1d abcdabbd 4 8 5 6 -; strictly speaking this is at best ambiguous, at worst wrong, this is what most -; re implimentations will match though. -a(([bc])\2)*d abbccd 0 6 3 5 3 4 - -a(([bc])\2)*d abbcbd -1 -1 -a((b)*\2)*d abbbd 0 5 1 4 2 3 -; perl only: -(ab*)[ab]*\1 ababaaa 0 7 0 1 -(a)\1bcd aabcd 0 5 0 1 -(a)\1bc*d aabcd 0 5 0 1 -(a)\1bc*d aabd 0 4 0 1 -(a)\1bc*d aabcccd 0 7 0 1 -(a)\1bc*[ce]d aabcccd 0 7 0 1 -^(a)\1b(c)*cd$ aabcccd 0 7 0 1 4 5 - -; posix only: -- match_default extended REG_EXTENDED -(ab*)[ab]*\1 ababaaa 0 7 0 1 - -; -; word operators: -\w a 0 1 -\w z 0 1 -\w A 0 1 -\w Z 0 1 -\w _ 0 1 -\w } -1 -1 -\w ` -1 -1 -\w [ -1 -1 -\w @ -1 -1 -; non-word: -\W a -1 -1 -\W z -1 -1 -\W A -1 -1 -\W Z -1 -1 -\W _ -1 -1 -\W } 0 1 -\W ` 0 1 -\W [ 0 1 -\W @ 0 1 -; word start: -\<abcd " abcd" 2 6 -\<ab cab -1 -1 -\<ab "\nab" 1 3 -\<tag ::tag 2 5 -;word end: -abc\> abc 0 3 -abc\> abcd -1 -1 -abc\> abc\n 0 3 -abc\> abc:: 0 3 -; word boundary: -\babcd " abcd" 2 6 -\bab cab -1 -1 -\bab "\nab" 1 3 -\btag ::tag 2 5 -abc\b abc 0 3 -abc\b abcd -1 -1 -abc\b abc\n 0 3 -abc\b abc:: 0 3 -; within word: -\B ab 1 1 -a\Bb ab 0 2 -a\B ab 0 1 -a\B a -1 -1 -a\B "a " -1 -1 - -; -; buffer operators: -\`abc abc 0 3 -\`abc \nabc -1 -1 -\`abc " abc" -1 -1 -abc\' abc 0 3 -abc\' abc\n -1 -1 -abc\' "abc " -1 -1 - -; -; now follows various complex expressions designed to try and bust the matcher: -a(((b)))c abc 0 3 1 2 1 2 1 2 -a(b|(c))d abd 0 3 1 2 -1 -1 -a(b|(c))d acd 0 3 1 2 1 2 -a(b*|c)d abbd 0 4 1 3 -; just gotta have one DFA-buster, of course -a[ab]{20} aaaaabaaaabaaaabaaaab 0 21 -; and an inline expansion in case somebody gets tricky -a[ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab] aaaaabaaaabaaaabaaaab 0 21 -; and in case somebody just slips in an NFA... -a[ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab](wee|week)(knights|night) aaaaabaaaabaaaabaaaabweeknights 0 31 21 24 24 31 -; one really big one -1234567890123456789012345678901234567890123456789012345678901234567890 a1234567890123456789012345678901234567890123456789012345678901234567890b 1 71 -; fish for problems as brackets go past 8 -[ab][cd][ef][gh][ij][kl][mn] xacegikmoq 1 8 -[ab][cd][ef][gh][ij][kl][mn][op] xacegikmoq 1 9 -[ab][cd][ef][gh][ij][kl][mn][op][qr] xacegikmoqy 1 10 -[ab][cd][ef][gh][ij][kl][mn][op][q] xacegikmoqy 1 10 -; and as parenthesis go past 9: -(a)(b)(c)(d)(e)(f)(g)(h) zabcdefghi 1 9 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 -(a)(b)(c)(d)(e)(f)(g)(h)(i) zabcdefghij 1 10 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 -(a)(b)(c)(d)(e)(f)(g)(h)(i)(j) zabcdefghijk 1 11 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 -(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k) zabcdefghijkl 1 12 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 -(a)d|(b)c abc 1 3 -1 -1 1 2 -_+((www)|(ftp)|(mailto)):_* "_wwwnocolon _mailto:" 12 20 13 19 -1 -1 -1 -1 13 19 - -; subtleties of matching -;a(b)?c\1d acd 0 3 -1 -1 -; POSIX is about the following test: -a(b)?c\1d acd -1 -1 -1 -1 -a(b?c)+d accd 0 4 2 3 -(wee|week)(knights|night) weeknights 0 10 0 3 3 10 -.* abc 0 3 -a(b|(c))d abd 0 3 1 2 -1 -1 -a(b|(c))d acd 0 3 1 2 1 2 -a(b*|c|e)d abbd 0 4 1 3 -a(b*|c|e)d acd 0 3 1 2 -a(b*|c|e)d ad 0 2 1 1 -a(b?)c abc 0 3 1 2 -a(b?)c ac 0 2 1 1 -a(b+)c abc 0 3 1 2 -a(b+)c abbbc 0 5 1 4 -a(b*)c ac 0 2 1 1 -(a|ab)(bc([de]+)f|cde) abcdef 0 6 0 1 1 6 3 5 -a([bc]?)c abc 0 3 1 2 -a([bc]?)c ac 0 2 1 1 -a([bc]+)c abc 0 3 1 2 -a([bc]+)c abcc 0 4 1 3 -a([bc]+)bc abcbc 0 5 1 3 -a(bb+|b)b abb 0 3 1 2 -a(bbb+|bb+|b)b abb 0 3 1 2 -a(bbb+|bb+|b)b abbb 0 4 1 3 -a(bbb+|bb+|b)bb abbb 0 4 1 2 -(.*).* abcdef 0 6 0 6 -(a*)* bc 0 0 0 0 -xyx*xz xyxxxxyxxxz 5 11 - -; do we get the right subexpression when it is used more than once? -a(b|c)*d ad 0 2 -1 -1 -a(b|c)*d abcd 0 4 2 3 -a(b|c)+d abd 0 3 1 2 -a(b|c)+d abcd 0 4 2 3 -a(b|c?)+d ad 0 2 1 1 -a(b|c){0,0}d ad 0 2 -1 -1 -a(b|c){0,1}d ad 0 2 -1 -1 -a(b|c){0,1}d abd 0 3 1 2 -a(b|c){0,2}d ad 0 2 -1 -1 -a(b|c){0,2}d abcd 0 4 2 3 -a(b|c){0,}d ad 0 2 -1 -1 -a(b|c){0,}d abcd 0 4 2 3 -a(b|c){1,1}d abd 0 3 1 2 -a(b|c){1,2}d abd 0 3 1 2 -a(b|c){1,2}d abcd 0 4 2 3 -a(b|c){1,}d abd 0 3 1 2 -a(b|c){1,}d abcd 0 4 2 3 -a(b|c){2,2}d acbd 0 4 2 3 -a(b|c){2,2}d abcd 0 4 2 3 -a(b|c){2,4}d abcd 0 4 2 3 -a(b|c){2,4}d abcbd 0 5 3 4 -a(b|c){2,4}d abcbcd 0 6 4 5 -a(b|c){2,}d abcd 0 4 2 3 -a(b|c){2,}d abcbd 0 5 3 4 -; perl only: these conflict with the POSIX test below -;a(b|c?)+d abcd 0 4 3 3 -;a(b+|((c)*))+d abd 0 3 2 2 2 2 -1 -1 -;a(b+|((c)*))+d abcd 0 4 3 3 3 3 2 3 - -; posix only: -- match_default extended REG_EXTENDED REG_STARTEND - -a(b|c?)+d abcd 0 4 2 3 -a(b|((c)*))+d abcd 0 4 2 3 2 3 2 3 -a(b+|((c)*))+d abd 0 3 1 2 -1 -1 -1 -1 -a(b+|((c)*))+d abcd 0 4 2 3 2 3 2 3 -a(b|((c)*))+d ad 0 2 1 1 1 1 -1 -1 -a(b|((c)*))*d abcd 0 4 2 3 2 3 2 3 -a(b+|((c)*))*d abd 0 3 1 2 -1 -1 -1 -1 -a(b+|((c)*))*d abcd 0 4 2 3 2 3 2 3 -a(b|((c)*))*d ad 0 2 1 1 1 1 -1 -1 - -- match_default normal REG_PERL -; try to match C++ syntax elements: -; line comment: -//[^\n]* "++i //here is a line comment\n" 4 28 -; block comment: -/\*([^*]|\*+[^*/])*\*+/ "/* here is a block comment */" 0 29 26 27 -/\*([^*]|\*+[^*/])*\*+/ "/**/" 0 4 -1 -1 -/\*([^*]|\*+[^*/])*\*+/ "/***/" 0 5 -1 -1 -/\*([^*]|\*+[^*/])*\*+/ "/****/" 0 6 -1 -1 -/\*([^*]|\*+[^*/])*\*+/ "/*****/" 0 7 -1 -1 -/\*([^*]|\*+[^*/])*\*+/ "/*****/*/" 0 7 -1 -1 -; preprossor directives: -^[[:blank:]]*#([^\n]*\\[[:space:]]+)*[^\n]* "#define some_symbol" 0 19 -1 -1 -^[[:blank:]]*#([^\n]*\\[[:space:]]+)*[^\n]* "#define some_symbol(x) #x" 0 25 -1 -1 -; perl only: -^[[:blank:]]*#([^\n]*\\[[:space:]]+)*[^\n]* "#define some_symbol(x) \\ \r\n foo();\\\r\n printf(#x);" 0 53 30 42 -; literals: -((0x[[:xdigit:]]+)|([[:digit:]]+))u?((int(8|16|32|64))|L)? 0xFF 0 4 0 4 0 4 -1 -1 -1 -1 -1 -1 -1 -1 -((0x[[:xdigit:]]+)|([[:digit:]]+))u?((int(8|16|32|64))|L)? 35 0 2 0 2 -1 -1 0 2 -1 -1 -1 -1 -1 -1 -((0x[[:xdigit:]]+)|([[:digit:]]+))u?((int(8|16|32|64))|L)? 0xFFu 0 5 0 4 0 4 -1 -1 -1 -1 -1 -1 -1 -1 -((0x[[:xdigit:]]+)|([[:digit:]]+))u?((int(8|16|32|64))|L)? 0xFFL 0 5 0 4 0 4 -1 -1 4 5 -1 -1 -1 -1 -((0x[[:xdigit:]]+)|([[:digit:]]+))u?((int(8|16|32|64))|L)? 0xFFFFFFFFFFFFFFFFuint64 0 24 0 18 0 18 -1 -1 19 24 19 24 22 24 -; strings: -'([^\\']|\\.)*' '\\x3A' 0 6 4 5 -'([^\\']|\\.)*' '\\'' 0 4 1 3 -'([^\\']|\\.)*' '\\n' 0 4 1 3 - -; finally try some case insensitive matches: -- match_default normal REG_EXTENDED REG_ICASE -; upper and lower have no meaning here so they fail, however these -; may compile with other libraries... -;[[:lower:]] ! -;[[:upper:]] ! -0123456789@abcdefghijklmnopqrstuvwxyz\[\\\]\^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ\{\|\} 0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]\^_`abcdefghijklmnopqrstuvwxyz\{\|\} 0 72 - -; known and suspected bugs: -- match_default normal REG_EXTENDED -\( ( 0 1 -\) ) 0 1 -\$ $ 0 1 -\^ ^ 0 1 -\. . 0 1 -\* * 0 1 -\+ + 0 1 -\? ? 0 1 -\[ [ 0 1 -\] ] 0 1 -\| | 0 1 -\\ \\ 0 1 -# # 0 1 -\# # 0 1 -a- a- 0 2 -\- - 0 1 -\{ { 0 1 -\} } 0 1 -0 0 0 1 -1 1 0 1 -9 9 0 1 -b b 0 1 -B B 0 1 -< < 0 1 -> > 0 1 -w w 0 1 -W W 0 1 -` ` 0 1 -' ' 0 1 -\n \n 0 1 -, , 0 1 -a a 0 1 -f f 0 1 -n n 0 1 -r r 0 1 -t t 0 1 -v v 0 1 -c c 0 1 -x x 0 1 -: : 0 1 -(\.[[:alnum:]]+){2} "w.a.b " 1 5 3 5 - -- match_default normal REG_EXTENDED REG_ICASE -a A 0 1 -A a 0 1 -[abc]+ abcABC 0 6 -[ABC]+ abcABC 0 6 -[a-z]+ abcABC 0 6 -[A-Z]+ abzANZ 0 6 -[a-Z]+ abzABZ 0 6 -[A-z]+ abzABZ 0 6 -[[:lower:]]+ abyzABYZ 0 8 -[[:upper:]]+ abzABZ 0 6 -[[:alpha:]]+ abyzABYZ 0 8 -[[:alnum:]]+ 09abyzABYZ 0 10 - -; word start: -\<abcd " abcd" 2 6 -\<ab cab -1 -1 -\<ab "\nab" 1 3 -\<tag ::tag 2 5 -;word end: -abc\> abc 0 3 -abc\> abcd -1 -1 -abc\> abc\n 0 3 -abc\> abc:: 0 3 - -; collating elements and rewritten set code: -- match_default normal REG_EXTENDED REG_STARTEND -;[[.zero.]] 0 0 1 -;[[.one.]] 1 0 1 -;[[.two.]] 2 0 1 -;[[.three.]] 3 0 1 -[[.a.]] baa 1 2 -;[[.right-curly-bracket.]] } 0 1 -;[[.NUL.]] \0 0 1 -[[:<:]z] ! -[a[:>:]] ! -[[=a=]] a 0 1 -;[[=right-curly-bracket=]] } 0 1 -- match_default normal REG_EXTENDED REG_STARTEND REG_ICASE -[[.A.]] A 0 1 -[[.A.]] a 0 1 -[[.A.]-b]+ AaBb 0 4 -[A-[.b.]]+ AaBb 0 4 -[[.a.]-B]+ AaBb 0 4 -[a-[.B.]]+ AaBb 0 4 -- match_default normal REG_EXTENDED REG_STARTEND -[[.a.]-c]+ abcd 0 3 -[a-[.c.]]+ abcd 0 3 -[[:alpha:]-a] ! -[a-[:alpha:]] ! - -; try mutli-character ligatures: -;[[.ae.]] ae 0 2 -;[[.ae.]] aE -1 -1 -;[[.AE.]] AE 0 2 -;[[.Ae.]] Ae 0 2 -;[[.ae.]-b] a -1 -1 -;[[.ae.]-b] b 0 1 -;[[.ae.]-b] ae 0 2 -;[a-[.ae.]] a 0 1 -;[a-[.ae.]] b -1 -1 -;[a-[.ae.]] ae 0 2 -- match_default normal REG_EXTENDED REG_STARTEND REG_ICASE -;[[.ae.]] AE 0 2 -;[[.ae.]] Ae 0 2 -;[[.AE.]] Ae 0 2 -;[[.Ae.]] aE 0 2 -;[[.AE.]-B] a -1 -1 -;[[.Ae.]-b] b 0 1 -;[[.Ae.]-b] B 0 1 -;[[.ae.]-b] AE 0 2 - -- match_default normal REG_EXTENDED REG_STARTEND REG_NO_POSIX_TEST -\s+ "ab ab" 2 5 -\S+ " abc " 2 5 - -- match_default normal REG_EXTENDED REG_STARTEND -\`abc abc 0 3 -\`abc aabc -1 -1 -abc\' abc 0 3 -abc\' abcd -1 -1 -abc\' abc\n\n -1 -1 -abc\' abc 0 3 - -; extended repeat checking to exercise new algorithms: -ab.*xy abxy_ 0 4 -ab.*xy ab_xy_ 0 5 -ab.*xy abxy 0 4 -ab.*xy ab_xy 0 5 -ab.* ab 0 2 -ab.* ab__ 0 4 - -ab.{2,5}xy ab__xy_ 0 6 -ab.{2,5}xy ab____xy_ 0 8 -ab.{2,5}xy ab_____xy_ 0 9 -ab.{2,5}xy ab__xy 0 6 -ab.{2,5}xy ab_____xy 0 9 -ab.{2,5} ab__ 0 4 -ab.{2,5} ab_______ 0 7 -ab.{2,5}xy ab______xy -1 -1 -ab.{2,5}xy ab_xy -1 -1 - -ab.*?xy abxy_ 0 4 -ab.*?xy ab_xy_ 0 5 -ab.*?xy abxy 0 4 -ab.*?xy ab_xy 0 5 -ab.*? ab 0 2 -ab.*? ab__ 0 4 - -ab.{2,5}?xy ab__xy_ 0 6 -ab.{2,5}?xy ab____xy_ 0 8 -ab.{2,5}?xy ab_____xy_ 0 9 -ab.{2,5}?xy ab__xy 0 6 -ab.{2,5}?xy ab_____xy 0 9 -ab.{2,5}? ab__ 0 4 -ab.{2,5}? ab_______ 0 7 -ab.{2,5}?xy ab______xy -1 -1 -ab.{2,5}xy ab_xy -1 -1 - -; again but with slower algorithm variant: -- match_default REG_EXTENDED -; now again for single character repeats: - -ab_*xy abxy_ 0 4 -ab_*xy ab_xy_ 0 5 -ab_*xy abxy 0 4 -ab_*xy ab_xy 0 5 -ab_* ab 0 2 -ab_* ab__ 0 4 - -ab_{2,5}xy ab__xy_ 0 6 -ab_{2,5}xy ab____xy_ 0 8 -ab_{2,5}xy ab_____xy_ 0 9 -ab_{2,5}xy ab__xy 0 6 -ab_{2,5}xy ab_____xy 0 9 -ab_{2,5} ab__ 0 4 -ab_{2,5} ab_______ 0 7 -ab_{2,5}xy ab______xy -1 -1 -ab_{2,5}xy ab_xy -1 -1 - -ab_*?xy abxy_ 0 4 -ab_*?xy ab_xy_ 0 5 -ab_*?xy abxy 0 4 -ab_*?xy ab_xy 0 5 -ab_*? ab 0 2 -ab_*? ab__ 0 4 - -ab_{2,5}?xy ab__xy_ 0 6 -ab_{2,5}?xy ab____xy_ 0 8 -ab_{2,5}?xy ab_____xy_ 0 9 -ab_{2,5}?xy ab__xy 0 6 -ab_{2,5}?xy ab_____xy 0 9 -ab_{2,5}? ab__ 0 4 -ab_{2,5}? ab_______ 0 7 -ab_{2,5}?xy ab______xy -1 -1 -ab_{2,5}xy ab_xy -1 -1 - -; and again for sets: -ab[_,;]*xy abxy_ 0 4 -ab[_,;]*xy ab_xy_ 0 5 -ab[_,;]*xy abxy 0 4 -ab[_,;]*xy ab_xy 0 5 -ab[_,;]* ab 0 2 -ab[_,;]* ab__ 0 4 - -ab[_,;]{2,5}xy ab__xy_ 0 6 -ab[_,;]{2,5}xy ab____xy_ 0 8 -ab[_,;]{2,5}xy ab_____xy_ 0 9 -ab[_,;]{2,5}xy ab__xy 0 6 -ab[_,;]{2,5}xy ab_____xy 0 9 -ab[_,;]{2,5} ab__ 0 4 -ab[_,;]{2,5} ab_______ 0 7 -ab[_,;]{2,5}xy ab______xy -1 -1 -ab[_,;]{2,5}xy ab_xy -1 -1 - -ab[_,;]*?xy abxy_ 0 4 -ab[_,;]*?xy ab_xy_ 0 5 -ab[_,;]*?xy abxy 0 4 -ab[_,;]*?xy ab_xy 0 5 -ab[_,;]*? ab 0 2 -ab[_,;]*? ab__ 0 4 - -ab[_,;]{2,5}?xy ab__xy_ 0 6 -ab[_,;]{2,5}?xy ab____xy_ 0 8 -ab[_,;]{2,5}?xy ab_____xy_ 0 9 -ab[_,;]{2,5}?xy ab__xy 0 6 -ab[_,;]{2,5}?xy ab_____xy 0 9 -ab[_,;]{2,5}? ab__ 0 4 -ab[_,;]{2,5}? ab_______ 0 7 -ab[_,;]{2,5}?xy ab______xy -1 -1 -ab[_,;]{2,5}xy ab_xy -1 -1 - -; and again for tricky sets with digraphs: -;ab[_[.ae.]]*xy abxy_ 0 4 -;ab[_[.ae.]]*xy ab_xy_ 0 5 -;ab[_[.ae.]]*xy abxy 0 4 -;ab[_[.ae.]]*xy ab_xy 0 5 -;ab[_[.ae.]]* ab 0 2 -;ab[_[.ae.]]* ab__ 0 4 - -;ab[_[.ae.]]{2,5}xy ab__xy_ 0 6 -;ab[_[.ae.]]{2,5}xy ab____xy_ 0 8 -;ab[_[.ae.]]{2,5}xy ab_____xy_ 0 9 -;ab[_[.ae.]]{2,5}xy ab__xy 0 6 -;ab[_[.ae.]]{2,5}xy ab_____xy 0 9 -;ab[_[.ae.]]{2,5} ab__ 0 4 -;ab[_[.ae.]]{2,5} ab_______ 0 7 -;ab[_[.ae.]]{2,5}xy ab______xy -1 -1 -;ab[_[.ae.]]{2,5}xy ab_xy -1 -1 - -;ab[_[.ae.]]*?xy abxy_ 0 4 -;ab[_[.ae.]]*?xy ab_xy_ 0 5 -;ab[_[.ae.]]*?xy abxy 0 4 -;ab[_[.ae.]]*?xy ab_xy 0 5 -;ab[_[.ae.]]*? ab 0 2 -;ab[_[.ae.]]*? ab__ 0 2 - -;ab[_[.ae.]]{2,5}?xy ab__xy_ 0 6 -;ab[_[.ae.]]{2,5}?xy ab____xy_ 0 8 -;ab[_[.ae.]]{2,5}?xy ab_____xy_ 0 9 -;ab[_[.ae.]]{2,5}?xy ab__xy 0 6 -;ab[_[.ae.]]{2,5}?xy ab_____xy 0 9 -;ab[_[.ae.]]{2,5}? ab__ 0 4 -;ab[_[.ae.]]{2,5}? ab_______ 0 4 -;ab[_[.ae.]]{2,5}?xy ab______xy -1 -1 -;ab[_[.ae.]]{2,5}xy ab_xy -1 -1 - -; new bugs detected in spring 2003: -- normal match_continuous REG_NO_POSIX_TEST -b abc 1 2 - -() abc 0 0 0 0 -^() abc 0 0 0 0 -^()+ abc 0 0 0 0 -^(){1} abc 0 0 0 0 -^(){2} abc 0 0 0 0 -^((){2}) abc 0 0 0 0 0 0 -() "" 0 0 0 0 -()\1 "" 0 0 0 0 -()\1 a 0 0 0 0 -a()\1b ab 0 2 1 1 -a()b\1 ab 0 2 1 1 - -; subtleties of matching with no sub-expressions marked -- normal match_nosubs REG_NO_POSIX_TEST -a(b?c)+d accd 0 4 -(wee|week)(knights|night) weeknights 0 10 -.* abc 0 3 -a(b|(c))d abd 0 3 -a(b|(c))d acd 0 3 -a(b*|c|e)d abbd 0 4 -a(b*|c|e)d acd 0 3 -a(b*|c|e)d ad 0 2 -a(b?)c abc 0 3 -a(b?)c ac 0 2 -a(b+)c abc 0 3 -a(b+)c abbbc 0 5 -a(b*)c ac 0 2 -(a|ab)(bc([de]+)f|cde) abcdef 0 6 -a([bc]?)c abc 0 3 -a([bc]?)c ac 0 2 -a([bc]+)c abc 0 3 -a([bc]+)c abcc 0 4 -a([bc]+)bc abcbc 0 5 -a(bb+|b)b abb 0 3 -a(bbb+|bb+|b)b abb 0 3 -a(bbb+|bb+|b)b abbb 0 4 -a(bbb+|bb+|b)bb abbb 0 4 -(.*).* abcdef 0 6 -(a*)* bc 0 0 - -- normal nosubs REG_NO_POSIX_TEST -a(b?c)+d accd 0 4 -(wee|week)(knights|night) weeknights 0 10 -.* abc 0 3 -a(b|(c))d abd 0 3 -a(b|(c))d acd 0 3 -a(b*|c|e)d abbd 0 4 -a(b*|c|e)d acd 0 3 -a(b*|c|e)d ad 0 2 -a(b?)c abc 0 3 -a(b?)c ac 0 2 -a(b+)c abc 0 3 -a(b+)c abbbc 0 5 -a(b*)c ac 0 2 -(a|ab)(bc([de]+)f|cde) abcdef 0 6 -a([bc]?)c abc 0 3 -a([bc]?)c ac 0 2 -a([bc]+)c abc 0 3 -a([bc]+)c abcc 0 4 -a([bc]+)bc abcbc 0 5 -a(bb+|b)b abb 0 3 -a(bbb+|bb+|b)b abb 0 3 -a(bbb+|bb+|b)b abbb 0 4 -a(bbb+|bb+|b)bb abbb 0 4 -(.*).* abcdef 0 6 -(a*)* bc 0 0 - |