Originally Posted by Wims
No, brackets can be omitted when the commands associated to the alias/event are on a single line separated by |, and for conditional statement when there's only a single command associated to that condition.
Though, one may note that mIRC has issues parsing certain keywords (reserved words for statement such as "if" or "while", these statement cannot be overrided with aliases) when they are chained together without bracket, it's pretty rare to be in such situation even for bracketless lovers like me but for example "//if (a) while (1) echo -ag test" will not result in an infinite loop, which it should.

edit: I forgot the * access level after the @ event prefix.

What do You think with this:

Code
on @*:join:#channel:if (($len($nick) < 3) || ($calc($regex($nick,/[A-Z]/g) * 100 / $len($nick)) > 30)) badnick_alias #channel $nick

on *:nick:if (($len($nick) < 3) || ($calc($regex($nick,/[A-Z]/g) * 100 / $len($nick)) > 30)) && ($me isop #channel) && ($newnick ison #channel) badnick_alias #channel $newnick

alias badnick_alias {
  var %chan $1 , %nick $2
  if ((MindUser* !iswm %nick) || (%nick !ison %chan)) return
  if (!$3) {
    .notice %nick WARN
    .timer 1  30 badnick_alias $unsafe($1-2  30)
    .timer 1  45 badnick_alias $unsafe($1-2  45)
    .timer 1 60 badnick_alias $unsafe($1-2 60)
    return
  }
  elseif ($3 == 30) /notice %nick SECOND WARN
  elseif ($3 == 45) /notice %nick LAST WARN
  elseif ($3 == 60) kick %chan %nick KICK
}