One simple way to speed it up is to use elseif so if a match is made the rest of the if's are skipped.

Code:
    if ($regex($3-,/\b(fucck|sck|shyit|btch)\b/Si)) { .signal -n d $1-2 swear }
    elseif ($regex($3-,/(#|http://|www.|.com|.net|.org)/Si)) { .signal -n d $1-2 advertise }

    elseif ($len($3-) < 50) { return }
    elseif ($v1 > 199) { .signal -n d $1-2 lenght } | ; <<- lenght? or length?
    elseif ($regex($3-,/[[:cntrl:]]/g) > 49) { .signal -n d $1-2 codes } 
    elseif ($regex($3-,/[[:upper:]]/g) > 49) { .signal -n d $1-2 caps } 
    elseif ($regex($3-,/\d/g) > 49) { .signal -n d $1-2 number }
    elseif ($regex($3-,/[[:punct:]]/g) > 49) { .signal -n d $1-2 symbol } 
    elseif ($regex($3-,/[ $chr(174) ]/g) > 49) { .signal -n d $1-2 ascii } 
    elseif ($regex($3-,/[ $chr(160) ]/g) > 49) { .signal -n d $1-2 blur } 


You can also try $count() to see if it works out cheaper than any of the RE's. (example: $count($3-,0,1,2,3,4,5,6,7,8,9) or $count($3-,,,,,))