Java не только не допускает неограниченного просмотра, но и при попытке выдает исключение. Тот факт, что вы не видите это исключение, сам по себе ошибка .
Вы все равно не должны использовать lookbehind для этого. Если вы хотите сопоставить значение определенного атрибута, самый простой и наименее хлопотный подход - сопоставить весь атрибут и использовать группу захвата для извлечения значения. Например:
String source = "<input id = \"g\" />";
Pattern p = Pattern.compile("\\bid\\s*=\\s*\"([^\"]*)\"");
Matcher m = p.matcher(source);
if (m.find())
{
System.out.printf("Found 'id' attribute '%s' at position %d%n",
m.group(1), m.start());
}
Выход:
Found 'id' attribute 'g' at position 7
Сделай себе одолжение и на время забудь о взглядах назад. Они хитры, даже если не глючат, и на самом деле они не так полезны, как можно было ожидать.