The only problem with extending hypothetical variables out past regexes is the expectations they'll raise in people who use them. They'll be, for all intents and purposes, transactional variables that'll get rolled back on error exit. Unfortunately there are a number of things (filehandles, sockets, tied variables) that are somewhere between really tough and totally impossible to undo. People'd get bitten by non-undoable things and, well, that'd be bad.