my $regex = qr/ ( # start of bracket 1 {{ # match an opening {{ bracket (?: [^{}]++ # one or more {} brackets, non backtracking | (?1) # recurse to bracket 1 )* }} # match a closing }} bracket ) # end of bracket 1 /x;