# If you'd like to omit non-matching lines from the result; add ';d' to the end of the expression.
sed -E 's/(\[expr\s+)((?:(\[(?:[^][]++|(?3))*])|[^][{}])*)(])/$1{$2}$4/g;t' <<< "set a [expr $sumy+1]
set b [[expr $sumy+1] [expr $sumy+2] [expr $sumy+3]]
set c [expr $sumy+[lindex $coords 1]]
set d [expr [lindex [$ret] 2] + $Alpha]
set e [string range $SECNAME 0 [expr [string first - $SECNAME] -1] ]
set a [expr {$sumy+1}]"
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for SED, please visit: https://www.gnu.org/software/sed/manual/html_node/The-_0022s_0022-Command.html