To be pedantic those match_re blocks are within routing rules, not receivers. A routing rule doesn't have to have a "receiver" attribute at all: it can have nested routes instead.
I can't see why you have defined both SpecialUser and SpecialUser2, because Google Groups has mangled them. Are these two different destinations? If you want two rules to send to the same receiver, then both rules can refer to the same receiver.
On the flip side, if you want one rule to send to multiple receivers, there are two ways to go about it:
(1) Make a single "receiver" with multiple "email_configs" (and/oor other types of destination)
(2) Make a routing rule with multiple receivers, by having nested routes which always match:
- match_re:
alertname: 'TargetDown'
instance: 'host1|host2'
routes: [ {receiver: SpecialUser1, continue: true}, {receiver: SpecialUser2} ]
When you say "adding both match_re blocks under the same receiver", I don't really understand what you mean. Are you trying to do an OR configuration (label A and label B *OR* label X and label Y)? If so then yes, you'll need two routing rules, but they can have the same receiver.
Incidentally, "match_re" is deprecated in favour of "
matchers", which are more powerful PromQL-inspired label matchers.