The use of String.matches() in Java
<p>Let's see the following expressions about <code>String.matches()</code> in Java.</p>

<pre><code>System.out.println("55CCEE".matches("[0-9A-Za-z]{6}"));  //true
System.out.println("CC77HH".matches("[0-9A-Za-z]{6}"));  //true
System.out.println("CC1156".matches("[0-9A-Za-z]{6}"));  //true

System.out.println("С".matches("[0-9A-Za-z]{1}"));       //false
System.out.println("СС".matches("[0-9A-Za-z]{2}"));      //false
System.out.println("СС5588".matches("[0-9A-Za-z]{6}"));  //false
System.out.println("СС5589".matches("[0-9A-Za-z]{6}"));  //false
</code></pre>

<p>The first three cases look fine and work as expected. The rest of the cases, however seem to be failing and return <code>false</code> which wasn't expected. Why does this happen?</p>
