Hi,

I created an environment where I override the & character to be active
and use it as a macro (rather than an alignment character). I am now
running into the issue, that theoretically the user might not pass an
optional argument and also use the & token as the first character
inside the environment. In that case the token is interpreted as an
alignment character.

The environment in question is currently defined with:
\NewDocumentEnvironment { sdapsarray } { o }

Now, this is a very rare corner case for me, and I am happy to simply
document the limitation. But, I do wonder whether this may be
considered a bug in the optional argument parser.

Benjamin

PS:
This is in my custom SDAPS array environment (which is weird in a
number of regards)
https://sdaps.org/class-doc/sdapsarray.html#\sdaps_array_newline%3a
shows the example with a workaround (last one on the page)

Failing code is:
\begin{sdapsarray}
& col 1 & col 2 \\
row header 1 & cell1 & cell 2
\end{sdapsarray}

while either:
\begin{sdapsarray}[]
& col 1 & col 2 \\
row header 1 & cell1 & cell 2
\end{sdapsarray}

or
\begin{sdapsarray}
{} & col 1 & col 2 \\
row header 1 & cell1 & cell 2
\end{sdapsarray}

works fine.