Это самый простой regsub из возможных (слова полностью совпадают)
На самом деле, нет, слова не совпадают. Видите ли, в регулярном выражении квадратные скобки имеют значение. Ваше выражение {elem[0]}
на самом деле означает:
match the sequence of letters 'e'
followed by 'l'
followed by 'e'
followed by 'm'
followed by '0' (the character for the number zero)
Таким образом, она будет соответствовать строке «elem0», а не «elem [0]», поскольку символ после «m» не равен «0».
То, что вы хотите, это {elem\[0\]}
<- обратный слеш избегает специального значения. </p>
Прочтите руководство по синтаксису регулярных выражений tcl, re_syntax , для получения дополнительной информации о том, как регулярные выражения работают в tcl.