Because they rely on the \futurelet primitive, the macros with optional arguments cannot be expandable. However, it is possible to make them expandable if there is at least one mandatory argument (see `Limitations'). This material is subject to the LaTeX Project Public License. See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html for the details of that license.