Posted to tcl by kbk at Sat Jan 21 21:30:08 GMT 2012view pretty
set haystack "here we go: test1 | test2 | test3 | test4"
set i 0
while {[regexp -indices -start $i -- {(\S+)( \| |$)} $haystack -> word sep]} {
lassign $word start end
puts [string range $haystack $start $end]
lassign $sep start end
if {$end < $start} break
set i $end
}