##
my $regex="a (.*) a(.)*";
$str =~ m/ $regex(?{push @substrings, $^N}) (?!) /x;
####
Eval-group not allowed at runtime, use re 'eval' in regex m/ a(.)*a(?{push @subs
trings, $^N}) (?!) /
####
$str =~ m/$regex(?{push @substrings, [$^N,$pos,length $^N]}) (?!) /x;