I\'m using this pattern to check if a string starts with at least 2 alphabetic characters in front a colon:
string.matches(\"^\\\\p{IsAlphabetic}{2,}:\")
Works and returns true using java 1.8.
String s = "äö:";
System.out.println(s.matches("^\\p{IsAlphanumeric}{2,}:"));
Note that the forms available in Java 1.7 - Alpha, IsAlpha - do not necessarily include characters not in US-ASCII . This returns false:
String s = "äö:";
System.out.println(s.matches("^\\p{IsAlpha}{2,}:"));
But note that this works in 1.7 and returns true:
String s = "äö:";
Pattern pat = Pattern.compile( "^\\p{Alpha}{2,}:",
Pattern.UNICODE_CHARACTER_CLASS );
Matcher mat = pat.matcher( s );
System.out.println(mat.matches());