Странное поведение в регулярных выражениях

Был вопрос о регулярных выражениях, и, пытаясь ответить, я обнаружил еще одну странную вещь.

String x = "X";
System.out.println(x.replaceAll("X*", "Y"));

Это печатает YY. Почему??

String x = "X";
System.out.println(x.replaceAll("X*?", "Y"));

И это печатает YXY

Почему неохотное регулярное выражение не соответствует символу «X»? Есть"noting"X"nothing" но почему сначала не совпадают три символа и совпадают два, а затем один вместо трех? и только второе регулярное выражение"nothing"а неX?

Ответы на вопрос(3)

Ваш ответ на вопрос