associations – KeySelect via Except[StringMatchQ[Pattern]]failed

I have a Association asc who has a mixed type keys:

asc = <|"b1" -> 2, "a1" -> 1, c3 -> 3 |>;

I'm trying to select according to the exclusion of a string pattern via Not @ StringMatchQ but without success:

Select key[asc, ! StringMatchQ["b" ~~ __?DigitQ]](* <||> *)

Selection based on StringMatchQ by itself works but I get the warning that a Chain was planned as Key for the third association:

Select key[asc, StringMatchQ["b" ~~ __?DigitQ]](*
StringMatchQ: String or list of expected strings ....
<|"b1" -> 2 |>
*)

I would like to understand:

  1. How can I avoid this error message
  2. what's wrong with the attempt to use Not @ StringMatchQ?