##
'abcd' =~ /(?:(.)(.))*/s
####
'abcd' =~ /(?:(.){2})*/s
####
$1 eq 'a'
$2 eq 'b'
$3 eq 'c'
$4 eq 'd'
####
'abcdx' =~ /(?:(.)(.))*(.)/s
####
$_ = 'foo bar baz burk | gah';
my @words;
/(?:(\w+)\s+(?{push @words => $1}))*/; # Not backtracking safe! See below.
# Submatches are in @words now.
####
my @words;
'foo bar baz baz burk | gah' =~ /
(?{ local @_words })
(?:
(\w+)
\s+
(?{ local @_words = (@_words, $1) })
)+
(??{ quotemeta $_words[-1] })
(?{ @words = @_words })
/x;