$regsub will fail to even match if the sub-text (after evaluation) contains a $.

//var %result, %e = $regsub(moo,/o/g, s, %result) | echo -a %e %result
will correctly echo 2 mss

//var %result, %e = $regsub(moo,/o/g, $me, %result) | echo -a %e %result
will correctly echo 2 mmynickmynick

However if a $ is put in the substitution text it will fail. ie.
//var %result, %e = $regsub(moo,/o/g, $, %result) | echo -a %e %result
//var %result, %e = $regsub(moo,/o/g, $!me, %result) | echo -a %e %result
//var %result, %e = $regsub(moo,/o/g, a$a, %result) | echo -a %e %result
//var %result, %e = $regsub(moo,/o/g, $chr(36), %result) | echo -a %e %result
will all echo 0 moo

Tested with 6.15 and 6.16.