Your first reg /(?:[[:upper:]]{2,}\b\s?){3,}/S works only for 3 (ore more) successive upper case words (of 2 or more letters), e.g. catching: SEE YA ALL, not catching: SEE YA @ALL, not catching: SEE - YA - ALL

I wish I could improve such regex method, but I cannot smile ... thus used more plain methods so far, like:
Code:
; calculate caps and caps percent (only upper letters count to caps)
  var %t = $remove($strip($1-),$chr(32),!,?), %l = $len(%t), %c = $regex(%t,/[A-ZÄÖÜ]/g), %p = $round($calc(%c / %l *  100),0)
  ; caps by regular user; and at least 70% of text
  if (($nick isreg $chan) && (%p > 70)) {
    ; at least 10 letters and 3 words; or 40 letters
    if (((%l > 10) && ($numtok($1-,32) >= 3)) || (%l > 40)) {

Last edited by Horstl; 15/12/07 05:34 PM.