В конце страницы есть попытка объяснить, как работают жадные, неохотные и притяжательные квантификаторы: http://docs.oracle.com/javase/tutorial/essential/regex/quant.html
Однако я попробовал себе пример и, кажется, не понимаю его полностью.
Я вставлю свои результаты напрямую:
Enter your regex: .*+foo
Enter input string to search: xfooxxxxxxfoo
No match found.
Enter your regex: (.*)+foo
Enter input string to search: xfooxxxxxxfoo
I found the text "xfooxxxxxxfoo" starting at index 0 and ending at index 13.
Почему первый рег.эксп. не находит совпадений, а второй делает? В чем точная разница между этими двумя рег.эксп.?