Это потому, что это то, что делает символ \r
. На некоторых консолях \r
«удаляет все в этой строке перед ней».
Если вы напечатаете:
System.out.println("a\rb");
Вы увидите только b
.
Ваше регулярное выражение действительно соответствует h\rello
, и оно действительно печатается System.out.println
, но, поскольку \r
удаляет все перед ним, вы видите только ello
.
Вы можете видетьотдельные символы, которым соответствует регулярное выражение:
System.out.println(Arrays.toString(m1.group().chars().toArray()));