Ah, clever. I keep forgetting that once an opponent dies you will stop getting scan events.
I also remember some comment about stopping on radar slips being a reason not to set it too small.
Does the recent ++integer and inversion of the matching actually work? It looks like it should always terminate the loop by setting matchPos = -1.