In <[EMAIL PROTECTED]>, Perl6 RFC Librarian writes: :=item assertion in Perl5 : : (?(?{not COND})(?!)) : (?(?{not do { COND }})(?!)) Or (?(?{COND})|(?!)). Migration could consider replacing detectable equivalents of such constructs with the favoured new construct. :"local" inside embedded code will no longer be supported, nor will :consitional regexes. The Perl5 -> Perl6 translator should warn if it :ever encounters one of these. I'm not convinced that removing either of these are necessary to the main thrust of the proposal. They may both still be useful in their own right, and you seem to offer little evidence against them other than that you don't like them. I do like the idea of making (?{...}) an assertion, all the more because we have a simple migration path that avoids unnecessarily breaking existing scripts: wrap $code as '$^R = do { $code }; 1'. If you want to remove support for 'local' in embedded code, it is worth a full proposal in its own right that will explain what will happen if people try to do that. (I think it will make perl unnecessarily more complex to detect and disable it in this case.) Similarly if you want to remove support for (?(...)) completely, you need to address the utility and options for migration for all the available uses of it, not just the one addressed by the new handling of (?{...}). Hugo