My apologies, seems as though you were right. However, I found an interesting section in
(F) Perl tried to compile a regular expression containing the (?{ ... }) zero-width assertion at run time, as it would when the pattern contains interpolated values. Since that is a security risk, it is not allowed. If you insist, you may still do this by explicitly building the pattern from an interpolated string at run time and using that in an eval(). See perlre/(?{ code }).
Perl just doesn't seem to like what you're doing and stops it ;-).
Hope this helps.
fixed typos.