textutil::expand, a Tcllib module, provides a macro substitution facility derived from expand, by Will Duquette
http://core.tcl.tk/tcllib/doc/trunk/embedded/www/tcllib/files/modules/textutil/expander.html