Hum, in fact you only missed the \2 from the replacement.. and that \2 came from an earlier solution, it's not required anymore in the current solution, but having it is not a problem and will work the same, so it should have worked for you.
echo -a $regsubex(@a @r b &u i o d @e f ~g ,/(?:((?:^| )[@~&][^ ]+(?=$| ))|(?: |^)[^ ]+(?= |$))/gF,\1) : Return : @a @r &u &u @e @e @e @e ~g ~g
This returns the correct result, it does not return what you said, which version of mIRC are you using?