[regsub -all {[s]} "s" "a" new_str] substituts to 1, whereas [regsub -all {[ß]} "ß" "a" new_str] substituts to 2. I guess it's some encoding stuff, as [äöü] trigger this, too. But I don't know how tcl handles special encodings.