私はLaTeXに一致しています-\command{...}{...}の形式のコマンド。2番目の引数はオプションです。私のRegExは、引数内にネストされたLaTeXコマンドが存在する可能性がある場合に注意する必要があるため 、 perl6faqの1つの例をわずかに変更したバージョンです。
名前付きグループを使用したい。これどうやってするの?(?<first>:...)を(?&first)と一緒に使用しようとしましたが、「無限再帰」エラーが発生します。ここでの正規表現に関しては少し頭がおかしいかもしれませんが、これはこれまでのところ非常にうまく機能しました。
my $regex = qr/
\\command
(\{
(?:
[^\{\}]++
|
(?1)
)*
\})
(\{
(?:
[^\{\}]++
|
(?2)
)*
\})?
/x;
$s =~ m/$regex/g