my $re; $re=qr{(?:[^<>]+|(??{$re})?)*}; my @arr=$input=~m#<$re>#g;