set TimesToDo 1000 set TestString "" for {set i 1000} {$i > 0} {incr i -1} { append TestString "abababdedfg" } set Count $TimesToDo set StartTime [clock clicks -milliseconds] for {} {$Count > 0} {incr Count -1} { regexp {^(a|b|c|d|e|f|g)+$} $TestString } set EndTime [clock clicks -milliseconds] set Seconds [expr ($EndTime - $StartTime)/1000.0] puts [format "Alternation takes %.3f seconds" $Seconds] set Count $TimesToDo set StartTime [clock clicks -milliseconds] for {} {$Count > 0} {incr Count -1} { regexp {^[a-g]+$} $TestString } set EndTime [clock clicks -milliseconds] set Seconds [expr ($EndTime - $StartTime)/1000.0] puts [format "Character class takes %.3f seconds" $Seconds] ----------------------------------------------------------------------------- Copyright 1997-2024 Jeffrey Friedl