I should have just rewritten it rather than copy/pasting it and fixing what I saw right off the bat. It's still caused by how you combined them... it shouldn't have == $null.
Code:
on @*:join:#: {
if ($left($nick,-2) isalpha && $right($nick,2) isnum) {
ban -ku300 $chan $nick 2 14Spam Bot Detected
}
}