Subject: bug#6388: Should not match data be set on misses?

From: Stefan Monnier <[email-masked]>
Date: Thu, 10 Jun 2010 09:04:08 -0400

> I'm closing this bug report because the ELisp manual explicitly
> documents the current behavior:

>       Every successful search sets the match data.  Therefore, you should
>    query the match data immediately after searching, before calling any
>    other function that might perform another search.  Alternatively, you
>    may save and restore the match data (*note Saving Match Data::) around
>    the call to functions that could perform another search.

>       A search which fails may or may not alter the match data.  In the
>    past, a failing search did not do this, but we may change it in the
>    future.  So don't try to rely on the value of the match data after a
>    failing search.

> Patches welcome to "change this in the future" (unless Stefan or
> Yidong object to such a change).

Yes, there was a long discussion about this a few years ago.  The main
obstacle to such a change are:
- it breaks some code.
- it is not tremendously useful.
- it is difficult to detect code that relies on the current behavior
  (so it's difficult to output a warning to help in the migration).
The current behavior is not tremendously useful either, of course, but
it has the advantage of being what we've used for many years.

        Stefan