The old matcher only worked if the error was raised with `raise Exception('single quotes')`.
This represents a miniscule fraction of errors; for instance, `l[37]` on a short list `l` can raise `IndexError`, and any call to a builtin C function is not going to trace back to a `raise` call.
Instead, this just matches the first line without fail that comes after the context line.
Note that this is still not foolproof; in Python 3.10, `SyntaxError`s are produced as
```
File "<stdin>", line 1
foo(x, z for z in range(10), t, w)
^^^^^^^^^^^^^^^^^^^^
SyntaxError: Generator expression must be parenthesized
```
This matcher will incorrectly pick up ` ^^^^^^^^^^^^^^^^^^^^` as the error message, but the previous behavior was to not pick up any error message at all.
As far as I can tell, this is impossible to handle correctly; the grammar of problem matchers is far too limiting.