# Commands covered: regexp # # This Tcl-generated file contains tests for the regexp tcl command. # Sourcing this file into Tcl runs the tests and generates output for # errors. No output means no errors were found. Setting VERBOSE to # -1 will run tests that are known to fail. # # Copyright (c) 1998 Sun Microsystems, Inc. # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # SCCS: @(#) regexp2.test 1.4 98/01/22 14:47:42 proc print {arg} {puts $arg} if {[string compare test [info procs test]] == 1} { source defs ; set VERBOSE -1 } if {$VERBOSE != -1} { proc print {arg} {} } # # The remainder of this file is Tcl tests that have been # converted from Henry Spencer's regexp test suite. # # This file is a sequence of regression tests, one per line. The first # field is the RE, the second flags, the third a string to match the RE # against, the fourth the expected match, and subsequent fields the # expected substring matches. No fourth field means match not expected; # no later fields mean no substrings expected. If the "*" flag is set # (see below), the third field is the name of the compile error expected, # less the leading "REG_". Any field may be written as "" to signify an # empty string. Fourth and subsequent fields may have a suffix "@11" # (any decimal integer) indicating the offset where the match is expected; # fifth and subsequent fields may be "@" indicating no match is expected # for that subexpression. # The flag characters are complex and a bit eclectic. Generally speaking, # lowercase letters are compile options, uppercase are expected re_info # bits, and nonalphabetics are match options, controls for how the test is # run, or debugging options. The one small surprise is that AREs are the # default, and you must explicitly request lesser flavors of RE. The flags # are as follows. Be warned that a number of them are specific to this # RE implementation. It is admitted that some are not very mnemonic. # # - no-op (placeholder) # = map characters in all other fields (see below) # > map characters in later fields (see below) # * compile error expected (third field is error type) # / compile only, do not attempt match # [2 expect 2 (any decimal integer) subexpressions # + provide fake ch collating element and xy equiv class # , turn on compile tracing (probably not useful in this file) # ; turn on automaton tracing (probably not useful in this file) # : turn on match tracing (probably not useful in this file) # . force small state-set cache in matcher (to test cache replace) # ^ beginning of string is not beginning of line # $ end of string is not end of line # # & test as both BRE and ARE # b BRE # e ERE # q literal string, no metacharacters at all # # i case-independent matching # s no subexpression capture # p newlines are half-magic, excluded from . and [^ only # w newlines are half-magic, significant to ^ and $ only # n newlines are fully magic, both effects # x expanded RE syntax # # A backslash-_a_lphanumeric seen # B ERE/ARE literal-_b_race heuristic used # E backslash (_e_scape) seen within [] # H looka_h_ead constraint seen # L _l_ocale-specific construct seen # M unportable (_m_achine-specific) construct seen # N RE can match empty (_n_ull) string # P non-_P_OSIX construct seen # Q {} _q_uantifier seen # R back _r_eference seen # S POSIX-un_s_pecified syntax seen # U saw original-POSIX botch: unmatched right paren in ERE (_u_gh) # The character-mapping flag causes some transformations to be done # before processing. This is mostly to get funny characters into the # strings. Specifically: # # _ becomes space # A becomes \007 (some compilers lack \a) # B becomes \b # E becomes \033 # F becomes \f # N becomes \n # R becomes \r # T becomes \t # V becomes \v # The two areas we can't easily test are memory-allocation failures (which # are hard to provoke on command) and embedded NULs (which the current test # program can't easily do; that should be fixed). # basic sanity checks test regexp-1.81 {converted from line 81} { catch {unset var} list [catch { set match [regexp -- abc abc var(0)] list $match $var(0) } msg] $msg } {0 {1 abc}} test regexp-1.82 {converted from line 82} { catch {unset var} list [catch { set match [regexp -- abc def ] list $match } msg] $msg } {0 0} test regexp-1.83 {converted from line 83} { catch {unset var} list [catch { set match [regexp -- abc xyabxabce var(0)] list $match $var(0) } msg] $msg } {0 {1 abc}} # invalid option combinations # skipping char mapping test from line 86 print {... skip test from line 86: a qe* INVARG} # skipping char mapping test from line 87 print {... skip test from line 87: a ba* INVARG} # basic syntax # skipping the empty-re test from line 90 test regexp-1.91 {converted from line 91} { catch {unset var} list [catch { set match [regexp -- a| a var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.92 {converted from line 92} { catch {unset var} list [catch { set match [regexp -- a|b a var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.93 {converted from line 93} { catch {unset var} list [catch { set match [regexp -- a|b b var(0)] list $match $var(0) } msg] $msg } {0 {1 b}} test regexp-1.94 {converted from line 94} { catch {unset var} list [catch { set match [regexp -- a||b b var(0)] list $match $var(0) } msg] $msg } {0 {1 b}} test regexp-1.95 {converted from line 95} { catch {unset var} list [catch { set match [regexp -- ab ab var(0)] list $match $var(0) } msg] $msg } {0 {1 ab}} # parentheses test regexp-1.98 {converted from line 98} { catch {unset var} list [catch { set match [regexp -- (a)e ae var(0) var(1)] list $match $var(0) $var(1) } msg] $msg } {0 {1 ae a}} test regexp-1.99 {converted from line 99} { catch {unset var} list [catch { set match [regexp -- (a)e ae var(0)] list $match $var(0) } msg] $msg } {0 {1 ae}} test regexp-1.100 {converted from line 100} { catch {unset var} list [catch { set match [regexp -- {(?b)\(a\)b} ab var(0) var(1)] list $match $var(0) $var(1) } msg] $msg } {0 {1 ab a}} test regexp-1.101 {converted from line 101} { catch {unset var} list [catch { set match [regexp -- a((b)c) abc var(0) var(1) var(2)] list $match $var(0) $var(1) $var(2) } msg] $msg } {0 {1 abc bc b}} test regexp-1.102 {converted from line 102} { catch {unset var} list [catch { set match [regexp -- a(b)(c) abc var(0) var(1) var(2)] list $match $var(0) $var(1) $var(2) } msg] $msg } {0 {1 abc b c}} test regexp-1.103 {converted from line 103} { catch {unset var} list [catch { set match [regexp -- a(b EPAREN ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: unmatched ()}} test regexp-1.104 {converted from line 104} { catch {unset var} list [catch { set match [regexp -- {(?b)a\(b} EPAREN ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: unmatched ()}} # sigh, we blew it on the specs here... someday this will be fixed in POSIX, # but meanwhile, it's fixed in AREs test regexp-1.107 {converted from line 107} { catch {unset var} list [catch { set match [regexp -- (?e)a)b a)b var(0)] list $match $var(0) } msg] $msg } {0 {1 a)b}} test regexp-1.108 {converted from line 108} { catch {unset var} list [catch { set match [regexp -- a)b EPAREN ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: unmatched ()}} test regexp-1.109 {converted from line 109} { catch {unset var} list [catch { set match [regexp -- {(?b)a\)b} EPAREN ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: unmatched ()}} test regexp-1.110 {converted from line 110} { catch {unset var} list [catch { set match [regexp -- a(?:b)c abc var(0)] list $match $var(0) } msg] $msg } {0 {1 abc}} test regexp-1.111 {converted from line 111} { catch {unset var} list [catch { set match [regexp -- (?e)a(?:b)c BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.112 {converted from line 112} { catch {unset var} list [catch { set match [regexp -- a()b ab var(0) var(1)] list $match $var(0) $var(1) } msg] $msg } {0 {1 ab {}}} test regexp-1.113 {converted from line 113} { catch {unset var} list [catch { set match [regexp -- a(?:)b ab var(0)] list $match $var(0) } msg] $msg } {0 {1 ab}} test regexp-1.114 {converted from line 114} { catch {unset var} list [catch { set match [regexp -- a(|b)c ac var(0) var(1)] list $match $var(0) $var(1) } msg] $msg } {0 {1 ac {}}} test regexp-1.115 {converted from line 115} { catch {unset var} list [catch { set match [regexp -- a(b|)c abc var(0) var(1)] list $match $var(0) $var(1) } msg] $msg } {0 {1 abc b}} # simple one-char matching (full mess of brackets done later) test regexp-1.118 {converted from line 118} { catch {unset var} list [catch { set match [regexp -- a.b axb var(0)] list $match $var(0) } msg] $msg } {0 {1 axb}} test regexp-1.119 {converted from line 119} { catch {unset var} list [catch { set match [regexp -- (?n)a.b {a b} ] list $match } msg] $msg } {0 0} test regexp-1.120 {converted from line 120} { catch {unset var} list [catch { set match [regexp -- {a[bc]d} abd var(0)] list $match $var(0) } msg] $msg } {0 {1 abd}} test regexp-1.121 {converted from line 121} { catch {unset var} list [catch { set match [regexp -- {a[bc]d} acd var(0)] list $match $var(0) } msg] $msg } {0 {1 acd}} test regexp-1.122 {converted from line 122} { catch {unset var} list [catch { set match [regexp -- {a[bc]d} aed ] list $match } msg] $msg } {0 0} test regexp-1.123 {converted from line 123} { catch {unset var} list [catch { set match [regexp -- {a[^bc]d} abd ] list $match } msg] $msg } {0 0} test regexp-1.124 {converted from line 124} { catch {unset var} list [catch { set match [regexp -- {a[^bc]d} aed var(0)] list $match $var(0) } msg] $msg } {0 {1 aed}} test regexp-1.125 {converted from line 125} { catch {unset var} list [catch { set match [regexp -- {(?p)a[^bc]d} {a d} ] list $match } msg] $msg } {0 0} # some context-dependent syntax (and some not) test regexp-1.128 {converted from line 128} { catch {unset var} list [catch { set match [regexp -- * BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.129 {converted from line 129} { catch {unset var} list [catch { set match [regexp -- (?b)* * var(0)] list $match $var(0) } msg] $msg } {0 {1 *}} test regexp-1.130 {converted from line 130} { catch {unset var} list [catch { set match [regexp -- {(?b)\(*\)} * var(0) var(1)] list $match $var(0) $var(1) } msg] $msg } {0 {1 * *}} test regexp-1.131 {converted from line 131} { catch {unset var} list [catch { set match [regexp -- (*) BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.132 {converted from line 132} { catch {unset var} list [catch { set match [regexp -- (?b)^* * var(0)] list $match $var(0) } msg] $msg } {0 {1 *}} test regexp-1.133 {converted from line 133} { catch {unset var} list [catch { set match [regexp -- ^* BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.134 {converted from line 134} { catch {unset var} list [catch { set match [regexp -- ^b ^b ] list $match } msg] $msg } {0 0} test regexp-1.135 {converted from line 135} { catch {unset var} list [catch { set match [regexp -- (?b)x^ x^ var(0)] list $match $var(0) } msg] $msg } {0 {1 x^}} test regexp-1.136 {converted from line 136} { catch {unset var} list [catch { set match [regexp -- x^ IMPOSS ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: can never match}} test regexp-1.137 {converted from line 137} { catch {unset var} list [catch { set match [regexp -- {(?n) ^} {x b} var(0)] list $match $var(0) } msg] $msg } {0 {1 { }}} test regexp-1.138 {converted from line 138} { catch {unset var} list [catch { set match [regexp -- {(?b)\(^b\)} ^b ] list $match } msg] $msg } {0 0} test regexp-1.139 {converted from line 139} { catch {unset var} list [catch { set match [regexp -- (^b) b var(0) var(1)] list $match $var(0) $var(1) } msg] $msg } {0 {1 b b}} test regexp-1.140 {converted from line 140} { catch {unset var} list [catch { set match [regexp -- {x$} x var(0)] list $match $var(0) } msg] $msg } {0 {1 x}} test regexp-1.141 {converted from line 141} { catch {unset var} list [catch { set match [regexp -- {(?b)\(x$\)} x var(0) var(1)] list $match $var(0) $var(1) } msg] $msg } {0 {1 x x}} test regexp-1.142 {converted from line 142} { catch {unset var} list [catch { set match [regexp -- {(x$)} x var(0) var(1)] list $match $var(0) $var(1) } msg] $msg } {0 {1 x x}} test regexp-1.143 {converted from line 143} { catch {unset var} list [catch { set match [regexp -- {(?b)x$y} {x$y} var(0)] list $match $var(0) } msg] $msg } {0 {1 {x$y}}} test regexp-1.144 {converted from line 144} { catch {unset var} list [catch { set match [regexp -- {x$y} IMPOSS ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: can never match}} test regexp-1.145 {converted from line 145} { catch {unset var} list [catch { set match [regexp -- {(?n)x$ } {x } var(0)] list $match $var(0) } msg] $msg } {0 {1 {x }}} test regexp-1.146 {converted from line 146} { catch {unset var} list [catch { set match [regexp -- + BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.147 {converted from line 147} { catch {unset var} list [catch { set match [regexp -- ? BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} # simple quantifiers test regexp-1.150 {converted from line 150} { catch {unset var} list [catch { set match [regexp -- a* aa var(0)] list $match $var(0) } msg] $msg } {0 {1 aa}} test regexp-1.151 {converted from line 151} { catch {unset var} list [catch { set match [regexp -- a* b var(0)] list $match $var(0) } msg] $msg } {0 {1 {}}} test regexp-1.152 {converted from line 152} { catch {unset var} list [catch { set match [regexp -- a+ aa var(0)] list $match $var(0) } msg] $msg } {0 {1 aa}} test regexp-1.153 {converted from line 153} { catch {unset var} list [catch { set match [regexp -- a?b ab var(0)] list $match $var(0) } msg] $msg } {0 {1 ab}} test regexp-1.154 {converted from line 154} { catch {unset var} list [catch { set match [regexp -- a?b b var(0)] list $match $var(0) } msg] $msg } {0 {1 b}} test regexp-1.155 {converted from line 155} { catch {unset var} list [catch { set match [regexp -- ** BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.156 {converted from line 156} { catch {unset var} list [catch { set match [regexp -- (?b)** *** var(0)] list $match $var(0) } msg] $msg } {0 {1 ***}} test regexp-1.157 {converted from line 157} { catch {unset var} list [catch { set match [regexp -- a** BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.158 {converted from line 158} { catch {unset var} list [catch { set match [regexp -- a**b BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.159 {converted from line 159} { catch {unset var} list [catch { set match [regexp -- *** BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.160 {converted from line 160} { catch {unset var} list [catch { set match [regexp -- a++ BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.161 {converted from line 161} { catch {unset var} list [catch { set match [regexp -- a?+ BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.162 {converted from line 162} { catch {unset var} list [catch { set match [regexp -- a?* BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.163 {converted from line 163} { catch {unset var} list [catch { set match [regexp -- a+* BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.164 {converted from line 164} { catch {unset var} list [catch { set match [regexp -- a*+ BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} # braces are messy test regexp-1.167 {converted from line 167} { catch {unset var} list [catch { set match [regexp -- a{0,1} {} var(0)] list $match $var(0) } msg] $msg } {0 {1 {}}} test regexp-1.168 {converted from line 168} { catch {unset var} list [catch { set match [regexp -- a{0,1} ac var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.169 {converted from line 169} { catch {unset var} list [catch { set match [regexp -- a{1,0} BADBR ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: invalid repetition count(s)}} test regexp-1.170 {converted from line 170} { catch {unset var} list [catch { set match [regexp -- a{1,2,3} BADBR ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: invalid repetition count(s)}} test regexp-1.171 {converted from line 171} { catch {unset var} list [catch { set match [regexp -- a{257} BADBR ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: invalid repetition count(s)}} test regexp-1.172 {converted from line 172} { catch {unset var} list [catch { set match [regexp -- a{1000} BADBR ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: invalid repetition count(s)}} test regexp-1.173 {converted from line 173} { catch {unset var} list [catch { set match [regexp -- a\{1 EBRACE ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: unmatched {}}} test regexp-1.174 {converted from line 174} { catch {unset var} list [catch { set match [regexp -- a{1n} BADBR ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: invalid repetition count(s)}} test regexp-1.175 {converted from line 175} { catch {unset var} list [catch { set match [regexp -- a\{b a\{b var(0)] list $match $var(0) } msg] $msg } {0 {1 a\{b}} test regexp-1.176 {converted from line 176} { catch {unset var} list [catch { set match [regexp -- a\{ a\{ var(0)] list $match $var(0) } msg] $msg } {0 {1 a\{}} test regexp-1.177 {converted from line 177} { catch {unset var} list [catch { set match [regexp -- {(?b)a\{0,1\}b} cb var(0)] list $match $var(0) } msg] $msg } {0 {1 b}} test regexp-1.178 {converted from line 178} { catch {unset var} list [catch { set match [regexp -- {(?b)a\{0,1} EBRACE ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: unmatched {}}} test regexp-1.179 {converted from line 179} { catch {unset var} list [catch { set match [regexp -- a\{0,1\\ BADBR ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: invalid repetition count(s)}} test regexp-1.180 {converted from line 180} { catch {unset var} list [catch { set match [regexp -- a{0}b ab var(0)] list $match $var(0) } msg] $msg } {0 {1 b}} test regexp-1.181 {converted from line 181} { catch {unset var} list [catch { set match [regexp -- a{0,0}b ab var(0)] list $match $var(0) } msg] $msg } {0 {1 b}} test regexp-1.182 {converted from line 182} { catch {unset var} list [catch { set match [regexp -- a{0,1}b ab var(0)] list $match $var(0) } msg] $msg } {0 {1 ab}} test regexp-1.183 {converted from line 183} { catch {unset var} list [catch { set match [regexp -- a{0,2}b b var(0)] list $match $var(0) } msg] $msg } {0 {1 b}} test regexp-1.184 {converted from line 184} { catch {unset var} list [catch { set match [regexp -- a{0,2}b aab var(0)] list $match $var(0) } msg] $msg } {0 {1 aab}} test regexp-1.185 {converted from line 185} { catch {unset var} list [catch { set match [regexp -- a{0,}b aab var(0)] list $match $var(0) } msg] $msg } {0 {1 aab}} test regexp-1.186 {converted from line 186} { catch {unset var} list [catch { set match [regexp -- a{1,1}b aab var(0)] list $match $var(0) } msg] $msg } {0 {1 ab}} test regexp-1.187 {converted from line 187} { catch {unset var} list [catch { set match [regexp -- a{1,3}b aaaab var(0)] list $match $var(0) } msg] $msg } {0 {1 aaab}} test regexp-1.188 {converted from line 188} { catch {unset var} list [catch { set match [regexp -- a{1,3}b b ] list $match } msg] $msg } {0 0} test regexp-1.189 {converted from line 189} { catch {unset var} list [catch { set match [regexp -- a{1,}b aab var(0)] list $match $var(0) } msg] $msg } {0 {1 aab}} test regexp-1.190 {converted from line 190} { catch {unset var} list [catch { set match [regexp -- a{2,3}b ab ] list $match } msg] $msg } {0 0} test regexp-1.191 {converted from line 191} { catch {unset var} list [catch { set match [regexp -- a{2,3}b aaaab var(0)] list $match $var(0) } msg] $msg } {0 {1 aaab}} test regexp-1.192 {converted from line 192} { catch {unset var} list [catch { set match [regexp -- a{2,}b ab ] list $match } msg] $msg } {0 0} test regexp-1.193 {converted from line 193} { catch {unset var} list [catch { set match [regexp -- a{2,}b aaaab var(0)] list $match $var(0) } msg] $msg } {0 {1 aaaab}} # brackets are too test regexp-1.196 {converted from line 196} { catch {unset var} list [catch { set match [regexp -- {a[bc]} ac var(0)] list $match $var(0) } msg] $msg } {0 {1 ac}} test regexp-1.197 {converted from line 197} { catch {unset var} list [catch { set match [regexp -- {a[-]} a- var(0)] list $match $var(0) } msg] $msg } {0 {1 a-}} test regexp-1.198 {converted from line 198} { catch {unset var} list [catch { set match [regexp -- {a[[.-.]]} a- var(0)] list $match $var(0) } msg] $msg } {0 {1 a-}} test regexp-1.199 {converted from line 199} { catch {unset var} list [catch { set match [regexp -- {a[[.zero.]]} a0 var(0)] list $match $var(0) } msg] $msg } {0 {1 a0}} test regexp-1.200 {converted from line 200} { catch {unset var} list [catch { set match [regexp -- {a[[.zero.]-9]} a2 var(0)] list $match $var(0) } msg] $msg } {0 {1 a2}} test regexp-1.201 {converted from line 201} { catch {unset var} list [catch { set match [regexp -- {a[0-[.9.]]} a2 var(0)] list $match $var(0) } msg] $msg } {0 {1 a2}} # skipping char mapping test from line 202 print {... skip test from line 202: a&&=x=&& &+L ax ax} # skipping char mapping test from line 203 print {... skip test from line 203: a&&=x=&& &+L ay ay} # skipping char mapping test from line 204 print {... skip test from line 204: a&&=x=&& &+L az} test regexp-1.205 {converted from line 205} { catch {unset var} list [catch { set match [regexp -- {a[0-[=x=]]} ERANGE ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: invalid character range}} test regexp-1.206 {converted from line 206} { catch {unset var} list [catch { set match [regexp -- {a[[:digit:]]} a0 var(0)] list $match $var(0) } msg] $msg } {0 {1 a0}} test regexp-1.207 {converted from line 207} { catch {unset var} list [catch { set match [regexp -- {a[[:woopsie:]]} ECTYPE ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: invalid character class}} test regexp-1.208 {converted from line 208} { catch {unset var} list [catch { set match [regexp -- {a[[:digit:]]} ab ] list $match } msg] $msg } {0 0} test regexp-1.209 {converted from line 209} { catch {unset var} list [catch { set match [regexp -- {a[0-[:digit:]]} ERANGE ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: invalid character range}} test regexp-1.210 {converted from line 210} { catch {unset var} list [catch { set match [regexp -- {[[:<:]]a} a var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.211 {converted from line 211} { catch {unset var} list [catch { set match [regexp -- {a[[:>:]]} a var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.212 {converted from line 212} { catch {unset var} list [catch { set match [regexp -- {a[[..]]b} ECOLLATE ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: invalid collating element}} test regexp-1.213 {converted from line 213} { catch {unset var} list [catch { set match [regexp -- {a[[==]]b} ECOLLATE ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: invalid collating element}} test regexp-1.214 {converted from line 214} { catch {unset var} list [catch { set match [regexp -- {a[[::]]b} ECTYPE ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: invalid character class}} test regexp-1.215 {converted from line 215} { catch {unset var} list [catch { set match [regexp -- {a[[.a} EBRACK ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: unmatched []}} test regexp-1.216 {converted from line 216} { catch {unset var} list [catch { set match [regexp -- {a[[=a} EBRACK ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: unmatched []}} test regexp-1.217 {converted from line 217} { catch {unset var} list [catch { set match [regexp -- {a[[:a} EBRACK ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: unmatched []}} test regexp-1.218 {converted from line 218} { catch {unset var} list [catch { set match [regexp -- {a[} EBRACK ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: unmatched []}} test regexp-1.219 {converted from line 219} { catch {unset var} list [catch { set match [regexp -- {a[b} EBRACK ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: unmatched []}} test regexp-1.220 {converted from line 220} { catch {unset var} list [catch { set match [regexp -- {a[b-} EBRACK ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: unmatched []}} test regexp-1.221 {converted from line 221} { catch {unset var} list [catch { set match [regexp -- {a[b-c} EBRACK ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: unmatched []}} test regexp-1.222 {converted from line 222} { catch {unset var} list [catch { set match [regexp -- {a[b-c]} ab var(0)] list $match $var(0) } msg] $msg } {0 {1 ab}} test regexp-1.223 {converted from line 223} { catch {unset var} list [catch { set match [regexp -- {a[b-b]} ab var(0)] list $match $var(0) } msg] $msg } {0 {1 ab}} test regexp-1.224 {converted from line 224} { catch {unset var} list [catch { set match [regexp -- {a[1-2]} a2 var(0)] list $match $var(0) } msg] $msg } {0 {1 a2}} test regexp-1.225 {converted from line 225} { catch {unset var} list [catch { set match [regexp -- {a[c-b]} ERANGE ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: invalid character range}} test regexp-1.226 {converted from line 226} { catch {unset var} list [catch { set match [regexp -- {a[a-b-c]} ERANGE ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: invalid character range}} test regexp-1.227 {converted from line 227} { catch {unset var} list [catch { set match [regexp -- {a[--?]b} a?b var(0)] list $match $var(0) } msg] $msg } {0 {1 a?b}} test regexp-1.228 {converted from line 228} { catch {unset var} list [catch { set match [regexp -- {a[---]b} a-b var(0)] list $match $var(0) } msg] $msg } {0 {1 a-b}} test regexp-1.229 {converted from line 229} { catch {unset var} list [catch { set match [regexp -- {a[]b]c} a\]c var(0)] list $match $var(0) } msg] $msg } {0 {1 a\]c}} test regexp-1.230 {converted from line 230} { catch {unset var} list [catch { set match [regexp -- {a[\]]b} a\]b var(0)] list $match $var(0) } msg] $msg } {0 {1 a\]b}} test regexp-1.231 {converted from line 231} { catch {unset var} list [catch { set match [regexp -- {(?b)a[\]]b} a\]b ] list $match } msg] $msg } {0 0} test regexp-1.232 {converted from line 232} { catch {unset var} list [catch { set match [regexp -- {(?b)a[\]]b} {a\]b} var(0)] list $match $var(0) } msg] $msg } {0 {1 {a\]b}}} test regexp-1.233 {converted from line 233} { catch {unset var} list [catch { set match [regexp -- {(?e)a[\]]b} {a\]b} var(0)] list $match $var(0) } msg] $msg } {0 {1 {a\]b}}} test regexp-1.234 {converted from line 234} { catch {unset var} list [catch { set match [regexp -- {a[\\]b} {a\b} var(0)] list $match $var(0) } msg] $msg } {0 {1 {a\b}}} test regexp-1.235 {converted from line 235} { catch {unset var} list [catch { set match [regexp -- {(?e)a[\\]b} {a\b} var(0)] list $match $var(0) } msg] $msg } {0 {1 {a\b}}} test regexp-1.236 {converted from line 236} { catch {unset var} list [catch { set match [regexp -- {(?b)a[\\]b} {a\b} var(0)] list $match $var(0) } msg] $msg } {0 {1 {a\b}}} test regexp-1.237 {converted from line 237} { catch {unset var} list [catch { set match [regexp -- {a[\Z]b} EESCAPE ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: invalid escape sequence}} test regexp-1.238 {converted from line 238} { catch {unset var} list [catch { set match [regexp -- {a[[b]c} {a[c} var(0)] list $match $var(0) } msg] $msg } {0 {1 {a[c}}} # anchors and newlines test regexp-1.241 {converted from line 241} { catch {unset var} list [catch { set match [regexp -- ^a a var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} # skipping char mapping test from line 242 print {... skip test from line 242: ^a &^ a} test regexp-1.243 {converted from line 243} { catch {unset var} list [catch { set match [regexp -- ^ a var(0)] list $match $var(0) } msg] $msg } {0 {1 {}}} test regexp-1.244 {converted from line 244} { catch {unset var} list [catch { set match [regexp -- {a$} aba var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} # skipping char mapping test from line 245 print {... skip test from line 245: a$ &$ a} test regexp-1.246 {converted from line 246} { catch {unset var} list [catch { set match [regexp -- {$} ab var(0)] list $match $var(0) } msg] $msg } {0 {1 {}}} test regexp-1.247 {converted from line 247} { catch {unset var} list [catch { set match [regexp -- (?n)^a a var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.248 {converted from line 248} { catch {unset var} list [catch { set match [regexp -- (?n)^a {b a} var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.249 {converted from line 249} { catch {unset var} list [catch { set match [regexp -- (?w)^a {a a} var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} # skipping char mapping test from line 250 print {... skip test from line 250: ^a &=n^ aNa a@2} test regexp-1.251 {converted from line 251} { catch {unset var} list [catch { set match [regexp -- {(?n)a$} a var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.252 {converted from line 252} { catch {unset var} list [catch { set match [regexp -- {(?n)a$} {a b} var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.253 {converted from line 253} { catch {unset var} list [catch { set match [regexp -- {(?n)a$} {a a} var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.254 {converted from line 254} { catch {unset var} list [catch { set match [regexp -- ^^ a var(0)] list $match $var(0) } msg] $msg } {0 {1 {}}} test regexp-1.255 {converted from line 255} { catch {unset var} list [catch { set match [regexp -- (?b)^^ ^ var(0)] list $match $var(0) } msg] $msg } {0 {1 ^}} test regexp-1.256 {converted from line 256} { catch {unset var} list [catch { set match [regexp -- {$$} a var(0)] list $match $var(0) } msg] $msg } {0 {1 {}}} test regexp-1.257 {converted from line 257} { catch {unset var} list [catch { set match [regexp -- {(?b)$$} {$} var(0)] list $match $var(0) } msg] $msg } {0 {1 {$}}} test regexp-1.258 {converted from line 258} { catch {unset var} list [catch { set match [regexp -- {^$} {} var(0)] list $match $var(0) } msg] $msg } {0 {1 {}}} test regexp-1.259 {converted from line 259} { catch {unset var} list [catch { set match [regexp -- {^$} a ] list $match } msg] $msg } {0 0} test regexp-1.260 {converted from line 260} { catch {unset var} list [catch { set match [regexp -- {(?n)^$} {a b} var(0)] list $match $var(0) } msg] $msg } {0 {1 {}}} test regexp-1.261 {converted from line 261} { catch {unset var} list [catch { set match [regexp -- {$^} {} var(0)] list $match $var(0) } msg] $msg } {0 {1 {}}} test regexp-1.262 {converted from line 262} { catch {unset var} list [catch { set match [regexp -- {(?b)$^} {$^} var(0)] list $match $var(0) } msg] $msg } {0 {1 {$^}}} test regexp-1.263 {converted from line 263} { catch {unset var} list [catch { set match [regexp -- {\Aa} a var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} # skipping char mapping test from line 264 print {... skip test from line 264: \\Aa ^P a a} # skipping char mapping test from line 265 print {... skip test from line 265: \\Aa ^nP> bNa} test regexp-1.266 {converted from line 266} { catch {unset var} list [catch { set match [regexp -- {a\Z} a var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} # skipping char mapping test from line 267 print {... skip test from line 267: a\\Z $P a a} # skipping char mapping test from line 268 print {... skip test from line 268: a\\Z $nP> aNb} test regexp-1.269 {converted from line 269} { catch {unset var} list [catch { set match [regexp -- ^* BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.270 {converted from line 270} { catch {unset var} list [catch { set match [regexp -- {$*} BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.271 {converted from line 271} { catch {unset var} list [catch { set match [regexp -- {\A*} BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.272 {converted from line 272} { catch {unset var} list [catch { set match [regexp -- {\Z*} BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} # boundary constraints test regexp-1.275 {converted from line 275} { catch {unset var} list [catch { set match [regexp -- {[[:<:]]a} a var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.276 {converted from line 276} { catch {unset var} list [catch { set match [regexp -- {[[:<:]]a} -a var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.277 {converted from line 277} { catch {unset var} list [catch { set match [regexp -- {[[:<:]]a} ba ] list $match } msg] $msg } {0 0} test regexp-1.278 {converted from line 278} { catch {unset var} list [catch { set match [regexp -- {a[[:>:]]} a var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.279 {converted from line 279} { catch {unset var} list [catch { set match [regexp -- {a[[:>:]]} a- var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.280 {converted from line 280} { catch {unset var} list [catch { set match [regexp -- {a[[:>:]]} ab ] list $match } msg] $msg } {0 0} test regexp-1.281 {converted from line 281} { catch {unset var} list [catch { set match [regexp -- {(?b)\} a var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.284 {converted from line 284} { catch {unset var} list [catch { set match [regexp -- {(?b)a\>} ab ] list $match } msg] $msg } {0 0} test regexp-1.285 {converted from line 285} { catch {unset var} list [catch { set match [regexp -- {\ya} a var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.286 {converted from line 286} { catch {unset var} list [catch { set match [regexp -- {\ya} ba ] list $match } msg] $msg } {0 0} test regexp-1.287 {converted from line 287} { catch {unset var} list [catch { set match [regexp -- {a\y} a var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.288 {converted from line 288} { catch {unset var} list [catch { set match [regexp -- {a\y} ab ] list $match } msg] $msg } {0 0} test regexp-1.289 {converted from line 289} { catch {unset var} list [catch { set match [regexp -- {a\Y} ab var(0)] list $match $var(0) } msg] $msg } {0 {1 a}} test regexp-1.290 {converted from line 290} { catch {unset var} list [catch { set match [regexp -- {a\Y} a- ] list $match } msg] $msg } {0 0} test regexp-1.291 {converted from line 291} { catch {unset var} list [catch { set match [regexp -- {a\Y} a ] list $match } msg] $msg } {0 0} test regexp-1.292 {converted from line 292} { catch {unset var} list [catch { set match [regexp -- {-\Y} -a ] list $match } msg] $msg } {0 0} test regexp-1.293 {converted from line 293} { catch {unset var} list [catch { set match [regexp -- {-\Y} -% var(0)] list $match $var(0) } msg] $msg } {0 {1 -}} test regexp-1.294 {converted from line 294} { catch {unset var} list [catch { set match [regexp -- {\Y-} a- ] list $match } msg] $msg } {0 0} test regexp-1.295 {converted from line 295} { catch {unset var} list [catch { set match [regexp -- {[[:<:]]*} BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.296 {converted from line 296} { catch {unset var} list [catch { set match [regexp -- {[[:>:]]*} BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.297 {converted from line 297} { catch {unset var} list [catch { set match [regexp -- {(?b)\<*} BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.298 {converted from line 298} { catch {unset var} list [catch { set match [regexp -- {(?b)\>*} BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.299 {converted from line 299} { catch {unset var} list [catch { set match [regexp -- {\y*} BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} test regexp-1.300 {converted from line 300} { catch {unset var} list [catch { set match [regexp -- {\Y*} BADRPT ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: ?+* follows nothing}} # character classes test regexp-1.303 {converted from line 303} { catch {unset var} list [catch { set match [regexp -- {a\db} a0b var(0)] list $match $var(0) } msg] $msg } {0 {1 a0b}} test regexp-1.304 {converted from line 304} { catch {unset var} list [catch { set match [regexp -- {a\db} axb ] list $match } msg] $msg } {0 0} test regexp-1.305 {converted from line 305} { catch {unset var} list [catch { set match [regexp -- {a\Db} a0b ] list $match } msg] $msg } {0 0} test regexp-1.306 {converted from line 306} { catch {unset var} list [catch { set match [regexp -- {a\Db} axb var(0)] list $match $var(0) } msg] $msg } {0 {1 axb}} test regexp-1.307 {converted from line 307} { catch {unset var} list [catch { set match [regexp -- {a\sb} {a b} var(0)] list $match $var(0) } msg] $msg } {0 {1 {a b}}} test regexp-1.308 {converted from line 308} { catch {unset var} list [catch { set match [regexp -- {a\sb} {a b} var(0)] list $match $var(0) } msg] $msg } {0 {1 {a b}}} test regexp-1.309 {converted from line 309} { catch {unset var} list [catch { set match [regexp -- {a\sb} {a b} var(0)] list $match $var(0) } msg] $msg } {0 {1 {a b}}} test regexp-1.310 {converted from line 310} { catch {unset var} list [catch { set match [regexp -- {a\sb} axb ] list $match } msg] $msg } {0 0} test regexp-1.311 {converted from line 311} { catch {unset var} list [catch { set match [regexp -- {a\Sb} axb var(0)] list $match $var(0) } msg] $msg } {0 {1 axb}} test regexp-1.312 {converted from line 312} { catch {unset var} list [catch { set match [regexp -- {a\Sb} {a b} ] list $match } msg] $msg } {0 0} test regexp-1.313 {converted from line 313} { catch {unset var} list [catch { set match [regexp -- {a\wb} axb var(0)] list $match $var(0) } msg] $msg } {0 {1 axb}} test regexp-1.314 {converted from line 314} { catch {unset var} list [catch { set match [regexp -- {a\wb} a-b ] list $match } msg] $msg } {0 0} test regexp-1.315 {converted from line 315} { catch {unset var} list [catch { set match [regexp -- {a\Wb} axb ] list $match } msg] $msg } {0 0} test regexp-1.316 {converted from line 316} { catch {unset var} list [catch { set match [regexp -- {a\Wb} a-b var(0)] list $match $var(0) } msg] $msg } {0 {1 a-b}} test regexp-1.317 {converted from line 317} { catch {unset var} list [catch { set match [regexp -- {\y\w+z\y} adze-guz var(0)] list $match $var(0) } msg] $msg } {0 {1 guz}} test regexp-1.318 {converted from line 318} { catch {unset var} list [catch { set match [regexp -- {a[\d]b} a1b var(0)] list $match $var(0) } msg] $msg } {0 {1 a1b}} test regexp-1.319 {converted from line 319} { catch {unset var} list [catch { set match [regexp -- {a[\s]b} {a b} var(0)] list $match $var(0) } msg] $msg } {0 {1 {a b}}} test regexp-1.320 {converted from line 320} { catch {unset var} list [catch { set match [regexp -- {a[\w]b} axb var(0)] list $match $var(0) } msg] $msg } {0 {1 axb}} # escapes test regexp-1.323 {converted from line 323} { catch {unset var} list [catch { set match [regexp -- a\\ EESCAPE ] list $match } msg] $msg } {1 {couldn't compile regular expression pattern: invalid escape sequence}} test regexp-1.324 {converted from line 324} { catch {unset var} list [catch { set match [regexp -- {a\