title: Why Regex isMatch gives false when it is true?
body: <p>I have a piece of C# code that validates a textbox field to be positive numeric</p>
  
  <pre><code>Regex isPositiveInt = new Regex("[^0-9]");
  return !isPositiveInt.IsMatch(textbox1.Text)
  </code></pre>
  
  <p>I found if the regex matches, it gives "false" and when it doesn't match, it gives "true". So I have to add a "!" to the return value. There is no problem with that, but I feel it's counterintuitive. Can someone please explain why it return a opposite result?</p>