A simplified example, should anyone be looking at this is:
\listfiles
\documentclass{article}
\usepackage{xparse}
\DeclareDocumentCommand\foo{mO{xxx}}{[#1][#2]}
\usepackage{array}
\begin{document}
a $x$
\tracingmacros2
%\begin{tabular}{>{\foo{zz}[]}l}% works
\begin{tabular}{>{\foo{zz}}l}% fails
text
\end{tabular}
\end{document}
________________________________
The Numerical Algorithms Group Ltd is a company registered in England and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
This e-mail has been scanned for all viruses by Microsoft Office 365.
________________________________