If you use a named capture, then you can use that capture for a subsequent match, perhaps a new regex. ... using a named capture this way in a new regex ...
Could you give an example of what you mean? AFAIU, the %+ hash is re-initialized when a new regex match is entered.
c:\@Work\Perl\monks>perl -wMstrict -le
"my $s = 'one two three four';
;;
$s =~ m{
\A
(?<save> \w+) \s+
(?<this> \w+) \s+
(?<for> \w+) \s+
(?<later> \w+) \s*
\z
}xms;
print join '-', @+{ qw(save this for later) };
;;
$s = 'fee fie foe fum';
;;
$s =~ m{
(?{ print join '==', @+{ qw(save this for later) } })
\A
(?<save> \w+) \s+
(?<this> \w+) \s+
(?<for> \w+) \s+
(?<later> \w+) \s*
\z
}xms;
print join '+++', @+{ qw(save this for later) };
"
one-two-three-four
Use of uninitialized value in join or string at (re_eval 1) line 1.
Use of uninitialized value in join or string at (re_eval 1) line 1.
Use of uninitialized value in join or string at (re_eval 1) line 1.
Use of uninitialized value in join or string at (re_eval 1) line 1.
======
fee+++fie+++foe+++fum
To do something like you suggest, you would have to "capture the capture" in a separate set of variables before the new match was entered.
Give a man a fish: <%-{-{-{-<
|