Sorry, but you're out of luck. Your only chance is to use
(?=(..)) instead. Putting capturing parentheses outside of a look-ahead is useless, because the look-ahead doesn't advance in the string when it's done -- it stays put. You can cheat by putting capturing parentheses in the look-ahead itself, though, as you have seen.
_____________________________________________________
Jeff[japhy]Pinyan:
Perl,
regex,
and perl
hacker, who'd like a (from-home) job
s++=END;++y(;-P)}y js++=;shajsj<++y(p-q)}?print:??;