Code:
 on ^*:text:*:#:{
  var %n,%t = $stripblack($color(background),$strip($1-,o))

  if ($gettok($readini($mircini,options,n2),30,44)) %n = $+($left($remove($nick(#,$nick).pnick,$nick),1),$nick)
  else %n = $nick

  echo -lcmbfti2 no # $replace(<&1> &2,&1,%n,&2,%t)

  haltdef
}
alias -l stripblack {
  if (!$2-) return $2-
  elseif ( !isin $2-) { return $2- }
  var %old =  $+ $replace($2-,$chr(32),$chr(4),01 $+ $chr(44),1 $+ $chr(44)) $+ 
  var %bg = $false
  var %max = $regex(txt,%old,/(|)/g)
  var %num = 1
  var %reg = ^[0-9]{1,2}[,][0-9]
  if ($1 isnum 0-9) { var %reg2 = ^( $+ $base($1,10,10,1) $+ [^[:digit:]]|0 $+ $base($1,10,10,1) $+ ) }
  elseif ($1 isnum 10-99) { var %reg2 = ^ $+ $1 }
  while (%num <= %max) {
    if ($regex(check,$mid(%old,$regml(txt,%num).pos,4),%reg)) { var %strip = $false | var %bg = $true }
    elseif ($regex(check,$mid(%old,$regml(txt,%num).pos,4),%reg2)) { var %strip = $true }
    elseif ($regex(check,$mid(%old,$regml(txt,%num).pos,4),^[^0-9])) { var %strip = $false | var %bg = $false }
    elseif ($regex(check,$mid(%old,$regml(txt,%num).pos,4),^)) { var %strip = $false | var %bg = $false }
    else { var %strip = $false }
    if (%strip) && (!%bg) {
      if ($regex(check,$mid(%old,$regml(txt,%num).pos,4),01)) { var %txt = %txt $+  $+ $right($gettok($gettok($mid(%old,$regml(txt,%num).pos,-1),1,3),1,15),-2) }
      else { var %txt = %txt $+  $+ $right($gettok($gettok($mid(%old,$regml(txt,%num).pos,-1),1,3),1,15),-1) }
    }
    else { var %txt = %txt $+ $regml(txt,%num) $+ $replace($gettok($gettok($mid(%old,$regml(txt,%num).pos,-1),1,3),1,15),$chr(32),$chr(44)) }
    inc %num 1
  }
  return $replace($right(%txt,-1),$chr(4),$chr(32))
}