The "op" user level does match for whoever is testing this for you right? I hope you don't mean channel op, because that isn't working in queries...
instead of if !$3-4 { use
if (!$4) {
If there's no $3, there's no $4 either
btw, I always surround my tests with ()
The first will not trigger on "!add network", because you have a space and then a * in the match text, so unless someone always ends his sentences with spaces (and probably doesnt use mIRC) it wont trigger on 2 words.
You have checked for another on TEXT trigger before this one that always matches and thus prevents the scripting engine from reaching this trigger?