title: Matching (e.g.) a Unicode letter with Java regexps
body: <p>There are many questions and answers here on StackOverflow that assume a "letter" can be matched in a regexp by <code>[a-zA-Z]</code>. However with Unicode there are many more characters that most people would regard as a letter (all the Greek letters, Cyrllic .. and many more. <a href="http://www.unicode.org/Public/3.0-Update/Blocks-3.txt">Unicode defines many blocks</a> each of which may have "letters".</p>
  
  <p>The Java definition <a href="http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html">defines Posix classes</a>  for things like alpha characters, but that is specified to only work with US-ASCII. The predefined character classes define words to consist of <code>[a-zA-Z_0-9]</code>, which also excludes many letters.</p>
  
  <p>So how do you properly match against Unicode strings? Is there some other library that gets this right?</p>