文字列から一致する必要があり\begin{?}、\end{?}where?は任意の数の英数字または*文字であるため、たとえば\begin{align}and と一致する必要があり\end{align*}ます。
やってみたけど何が悪いのかわからない
^\\begin{[^}]*}$
で開始し\begin{、anything that's not }複数回続けて で終了し}ます。
同じことですが、\end{?}可能であれば単一の正規表現内で実行したいと思います。