if (!nstart iswm $1) && (!%numg. [ $+ [ $address($nick,2) ] ]) {

There's no space between those 2, so the ] is taken as text and not as the evaluation-changing symbol.