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.

________________________________