I like "as" instead. I didn't realize that was on the table. To me, it seems more Pythonic given the typical English-like Python syntax of "with open(path) as file", "for element in items if element not in things", etc.
It had some drawbacks, which a great majority of the time won't apply. I too would have preferred an "as" clause that limited to if-statements, maybe while, and comprehensions.
"if m as re.match(p1, line)" is not very English-like.
`if re.match(p1, line) as m`, maybe?
Yes, this is what I would expect. Much like a with statement.
Because the variable goes after the as.
if re.match(p1, line) as m: