Вероятно, А. Ричард имел в виду, что split и lsort могут иметь такое же поведение, что и для строки a , передаваемой в качестве аргумента. Но они не:
set a "{temp\\d+ temp\\d+} {temp\\d+ temp\\d+} temp\\d+ temp\\d+"
puts [split $a]
puts [lsort $a]
... и, вероятно, не должны, поскольку split получает строку, а lsort получает список в качестве входных данных. Если lsort получает строку, она сначала преобразует строку в список, делая соответствующие замены. Следовательно, проблема («\ d» не существует, поэтому от нее остается только «d»).
То есть lsort выполняет в первую очередь:
list {*}$a
а затем сортирует результат.