Ваша лучшая ставка, вероятно,
set input var1=dog,var2=home
regexp {.*=} $input output
То есть соответствует самой длинной префиксной последовательности символов, заканчивающейся знаком равенства, и сохраните ее в переменной output
.
Другой способ:
set output [string range $input 0 [string last = $input]]
Получить все символы в $input
от первого символа до (и включая) последнего знака равенства, найденного в строке.
set output [string trimright $input ehmo]
действительно будет работатьдля этого точного примера (я скремблировал символы, чтобы подчеркнуть, что обрезка выполняется не по строке, а по символу).