I wonder why that wasn't noticed before then.
"Because previous match bounds were small" >>274. A non-match left the previous bounds intact, those bounds were used to construct 'other' as nonsense but without overflow, and 'other' was not used for anything else.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Simple-Match-Data.html
A search which fails may or may not alter the match data. In the current implementation, it does not, but we may change it in the future. Don't try to rely on the value of the match data after a failing search.