.matches(), ,
"(?=[^A-Z]*[A-Z])(?=[^a-z]*[a-z])(?!.*(?:[A-Z]{2}|[a-z]{2}))\\p{Alnum}{10,15}"
^ - , .matches() -(?=[^A-Z]*[A-Z]) - ASCII 0+, ASCII(?=[^A-Z]*[A-Z]) - ASCII 0+, ASCII(?!.*(?:[A-Z]{2}|[a-z]{2})) - ([A-Z]{2}) ([A-Z]{2}) 0+, (.*)\\p{Alnum}{10,15} - 10 15 ASCII$ - .
. Java-:
List<String> strs = Arrays.asList("aaaa", "zzzzzzz", "AaAaAaAaAaAa3", "123456789123");
String pat = "(?=[^A-Z]*[A-Z])(?=[^a-z]*[a-z])(?!.*(?:[A-Z]{2}|[a-z]{2}))\\p{Alnum}{10,15}";
for (String str : strs)
System.out.println(str + ": " + str.matches(pat));
:
aaaa: false
zzzzzzz: false
AaAaAaAaAaAa3: true
123456789123: false