Я нашел следующий пример кода на этом сообщении в блоге:
final String FIBONACCI =
"(?x) .? | ( \\2?+ (\\1|^.) )* ..";
for (int n = 0; n < 10000; n++) {
String s = new String(new char[n]);
if (s.matches(FIBONACCI)) {
System.out.printf("%s ", n);
}
}
вывод: 0 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 ...
Как (?x) .? | ( \\2?+ (\\1|^.) )* ..
соответствует числам Фибоначчи?