mIRC : $regsub not evaluating $asc on \1
===

I have a following code.

    on $*:text:/^(!|\.)bypass\b/Si:#:{
     set %bypass.answer $2-
     %bypass.n = $regsub(%bypass.answer,/(.)/g,$chr(38) $+ $chr(35) $+ $asc(\1) $+ $chr(59), %bypass.answer)
     msg $chan %bypass.answer
    }

Basically, I want `!bypass <string>` to display HTML characters for the string, but when I try `!bypass abc` it is giving me `&#92;&#92;&#92;` where `92` is ascii code for `\` 
if I use just `\1`, it is showing `&#a;&#b;&#c;` but when i put it inside `$asc( )`, it is not working.

I have tryied `$asc( [ \1 ] )` as well, without good result. What might be going wrong?