1 source [file dirname [info script]]/testing.tcl
4 testConstraint regexp_are [expr {[regexp {\d} 1]}]
5 needs constraint regexp_are
7 # Test regexp counted repetitions
10 foreach {pat str exp} {
31 ca{2,3}b cacaaab caaab
32 c(a|b){2,3}d xcbad {cbad a}
33 c(a|b){2,3}d xcabbd {cabbd b}
34 c(a|b){2,3}d xcbaaad {}
48 (aa|bb)?c xabbaac {aac aa}
55 (a|y){2,} bacaad {aa a}
57 {(a|y){2,}$} bacaad {}
58 {(a|y){2,}$} bacaa {aa a}
60 {(a|y){2,}$} aa {aa a}
61 {(a|y){0,0}b$} b {b {}}
63 {(a|y){1,1}b$} cab {ab a}
65 {(a|y){2,2}b$} cabaabx {}
66 {(a|y){2,2}b$} cacaab {aab a}
67 c(a|y){2,4}b cacaab {caab a}
68 c(a|y){2,3}b cacaab {caab a}
69 c(a|y){2,3}b cacaaab {caaab a}
70 c((a|y)|b){2,3}d xcbad {cbad a a}
71 ####c((a|y)|b){2,3}d xcabbd {cabbd b {}}
72 c((a|y)|b){2,3}d xcbaaad {}
73 (a|y){4} baaaad {aaaa a}
74 (a|y){2,5} baaaad {aaaa a}
75 (a|y){1,3} baaaad {aaa a}
76 (a|y){1,2} baaaad {aa a}
77 (a|y){3,4} baaaad {aaaa a}
79 (a|y){4}? baaaad {aaaa a}
80 (a|y){2,5}? baaaad {aa a}
81 (a|y){1,3}? baaaad {a a}
82 (a|y){1,2}? baaaad {a a}
83 (a|y){3,4}? baaaad {aaa a}
85 {[[:alpha:]]+} _bcd56_ef bcd
86 {[[:alnum:]]+} _bcd56_ef bcd56
87 {[[:space:]]+} "_bc \t\r\n\f\v_" "{ \t\r\n\f\v}"
88 {[\x41-\x43]+} "_ABCD_" ABC
89 {\m.+\M} "#A test#" "{A test}"
90 {\m.+?\M} "#A test#" "A"
95 ####((a*)*b)*b aaaaaaaaaaaaaaaaaaaaaaaaab {b {} {}}
97 {^([^:=]*)(:)?(=)?$} version {version version {} {}}
99 if {[string match #* $pat]} {
102 #puts \t[list $pat $str [regexp -inline -- $pat $str]]
103 test regcount-1.[incr n] "Test: regexp $pat $str" [list regexp -inline -- $pat $str] $exp
106 test regcount-2.1 "regexp counts cleared" {
107 set re "((a|b){1,2}(c{2,3}))"
108 regexp -inline $re xabcccce
109 regexp -inline $re xabcccce
110 } {abccc abccc b ccc}