title: Java Regex-matches anything except three specific string
body: <p>Given such <code>Java</code> <code>Regex</code> codes:</p>
  
  <pre><code>Pattern pattern = Pattern.compile("[^(bob)(alice)(kitty)]");
  String s = "a";
  Matcher matcher = pattern.matcher(s);
  
  boolean bl = matcher.find();
  System.out.println(bl);
  </code></pre>
  
  <p>The output is <code>false</code>. Why? The regex <code>[^(bob)(alice)(kitty)]</code> matches any things except <code>bob</code>, <code>alice</code> or <code>kitty</code>. Then the result should be true, right?</p>