[modified repost due to warnock's dilemma] Would something like these DWIM?
# match pat1 _ pat2 and capture pat2 match: / pat1 { ($foo) = / pat2 / } / # match pat1 _ 'foo bar': / pat1 { 'foo bar' } / # match pat2 if not pat1 / { ! /pat1/ } pat2 } / # match pat2 if pat1 behind / { .lookbehind /pat1/ } pat2 } / -- ralph