Turns out there is a way to do subregions in the match construct already.

Switch to using that instead of trying to roll my own.