##
@parts=split(/(A.+?)(?=A|$)/,"A2ABA45");
$i=1;
map {print $i++ . " -> $_\n"} @parts;
####
1 ->
2 -> A2
3 ->
4 -> AB
5 ->
6 -> A45
####
@parts=grep{$_}split(/(A.+?)(?=A|$)/,"A2ABA45");
$i=1;
map {print $i++ . " -> $_\n"} @parts;
####
1 -> A2
2 -> AB
3 -> A45