Как искать в строке по русскому шаблону в Java?
str.matches — это то же самое, что Pattern.compile(regexp).matcher(str).matches()
В вашем случае, как выше верно сказали, надо find. А вообще вам подойдёт и str.startsWith(«кот»).
В Java есть некоторые не удобства при работе с регулярными выражениями и текстом содержащим уникод (читай кирилицу).

почитайте тут подробнее описано: stackoverflow.com/questions/4304928/unicode-equivalents-for-w-and-b-in-java-regular-expressions