Более простое регулярное выражение может быть:
^(y{1,4}|m{1,4}|d{1,4})$
ОБНОВЛЕНИЕ1: Я также проверил ваше регулярное выражение, и это синтаксически правильно, но, возможно, движку Java-регулярного выражения это не нравится
ОБНОВЛЕНИЕ2: Я даже проверил ваш код Java, и он работает для меня только с одним исключением, что в первой части это text1
вместо text
того, что вы ввели.
Он выводит true
для меня в моей JVM, поэтому проблема, вероятно, не в вашем регулярном выражении.