Почему так? Такое же исключение возбуждает Matcher.end(). Вот код:
Pattern p1 = Pattern.compile(".*");
Matcher m1;
Scanner sc = new Scanner( text );
treasure = sc.nextLine();
m1 = p1.matcher(treasure);
System.out.print(m1.find());//true
System.out.print(m1.end());//false