use strict;
my $input='
This is sample <This is sample text>
This is sample <Th is is sample text this is sample text sample text >';
my @arr=$input=~m#<[^<>]+(?:.+?[^<>]*)?>#g;
print join "\n",@arr;
####
qr {<(?:[^<>]+||)*>}
####
qr {<(?:[^<>]+||)*[^>]*>}
####
my $re;
$re=qr{(?:[^<>]+|(??{$re})?)*};
my @arr=$input=~m#<$re>#g;