my $re = qr'^ ( { (? { ( (?: (?> [^{}]+ ) | (\q) )* ) } )*$ ) 'x;