Interesting issue.
I guess I never noticed because I don't rely on $ifmatch a great distance from the actual /if check, and I find I primary use it in WHILE loops (near the beginning).
I might say this is the intended behavior of $ifmatch, being a single globally stored value like $returned and $readn... but I guess that's up to Khaled to decide. Good thing to know about though, now I can anticipate this behavior in future use.
Note: If corrected and made local, your use would cease to work... requiring that you pass $ifmatch as a parameter and reference $1- instead.
- Raccoon