nickuserhosts = []
         for ex_tok, cmp_tok in [(ex_tok, cmp_fields[idx])
                                 for idx, ex_tok in enumerate(ex_fields)]:
-            if (not isinstance(ex_tok.type_, str))\
-                    and ex_tok.type_ in validators\
-                    and (not validators[ex_tok.type_](cmp_tok)):
+            if isinstance(ex_tok.type_, str) and ex_tok.type_ != cmp_tok:
+                return None
+            if ex_tok.type_ in validators\
+                    and not validators[ex_tok.type_](cmp_tok):
                 return None
             if ex_tok.code or ex_tok.type_ is _MsgTok.NICK_USER_HOST:
                 value = (cmp_tok if (isinstance(ex_tok.type_, str)
 
 2 < :*.?.net CAP * LS : foo bar sasl=PLAIN,EXTERNAL baz
 2 > CAP REQ :sasl
 2 > CAP :LIST
-2 < :*.?.net CAP ? ACK :sasl
-2 < :*.?.net CAP ? LIST :cap-notify sasl
+2 < :*.?.net CAP * ACK :sasl
+2 < :*.?.net CAP * LIST :cap-notify sasl
 1,2 $ caps:bar:data set to: []
 1,2 $ caps:baz:data set to: []
 1,2 $ caps:foo:data set to: []