This command performs variable substitutions, command substitutions, and backslash subsitutions on its string argument and returns the fully-substituted result. The substitutions are performed in exactly the same way as for Tcl commands. As a result, the string argument is actually substituted twice, once by the Tcl parser in the usual fashion for Tcl commands, and again by the subst command.
Note: when it performs its substitutions, subst does not give any special treatment to double quotes or curly braces. For example, the script
set a 44
subst {xyz {$a}}
returns ``xyz {44}'', not ``xyz {$a}''.