in reply to look-ahead and look behind!!

Your use of look-behind will not match because 12(?<=a\w{2}) will try try to match a\w{2} tracking back right after 2, and that will only get 2 itself of course. You probably want (?<=a\w{2})12 instead.

Also, as you've noticed, variable-length look-behinds are not implemented, so for the time being you might want to use the old good a.*12.