title: Why doesn't [[a-z]*&&[^a]] catch "bc", but "b"?
body: <p>Ok, so I have tried to become more familiar with the intersection in regex (<code>&amp;&amp;</code>).
  On the <a href="https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html" rel="nofollow"><code>java.util.Pattern</code></a> page all the regex are explained and <code>&amp;&amp;</code> is only ever used next to a range (like <code>[a-z&amp;&amp;[^e]]</code>). But I tried to use it like this: <code>[[a-z]*&amp;&amp;[^a]]</code>. To me it seemed logical that this would match all lower case strings, expect the string <code>"a"</code>, but instead it seems to be equivalent with <code>[a-z&amp;&amp;[^a]]</code>. </p>
  
  <p>So <strong>the actual question is</strong>: Where did the <code>*</code> operator go? How does this only catch single character strings?</p>