Почему не переводит в верхний регистр $1 ?
String s = "мама мыла раму.";
s= s.replaceAll("(^.)", "й$1й".toUpperCase());
System.out.println(s);
Результат:
ЙмЙама мыла раму