well the idea wouldnt be hard to implement
I beleive it would have to remain local, as a global $ifmatch.array(x) would suffer from defined identifiers having IF statments with in.

if it was local, you could do this.

(1) an If starts, clear the temp a TEMPifmatch.list
(2) process the conditions adding each valid ifmatch value to the TEMPifmatch.list
(3) if the if completes as valid then copy the TEMPifmatch list to the permenent $ifmatch.list dumping old ones off the front
or
(3b) if the if completes as valid then replace the ifmatch.list with the TEMPifmatch.list (if old match lists are ment to be lost each time)

The hardest thing would be if its easy or not to implement local identifiers, of the top of my head i cant think of any, so maybe they dont exist, or are hard to implement.

PS : i reread my idea, and have an inkiling feeling im missing some logicical problem with it, but cant seem to see it right now, so if its there, please excuse me. (maybe to do with $ifmatch being used in a IF?)