Cita:
No sé si existe alguna razón, pero el caso es que si en el texto hay un retorno de carro, el matches me devuelve false. String b = "Prueba\n de pattern";
System.out.println(b.matches(".*de.*"));
System.out.println(b.matches(".*de.*"));
Para solucionarlo puedo elminar el \n usando un split o un replace, pero me gustaría saber si existe algún tipo de explicación, por ahora yo no he encontrado nada.