Try the following:

Code:
  var %a = 4,8\1
  say $(,,$regsub($1-,/([:;][()<>DP])/g,%a,%a)) %a
  halt


You had a comma in the replacement parameter that was being evaluated by mirc as a parameter separator

The / and / enclose the expression, g is a modifier that tells it to keep matching past the first successful match (replace all smileys) and the () captures the smileys so you can use \1 to reference what was matched in the replacement part