use Data::Dumper; my @parts = split /(A.+?)(?=A|$)/, "A2ABA45"; print Dumper(\@parts);