a agrupación @Regexp y replaceAll con. * En Java duplican el reemplazo

Tengo un problema al usar Rexexp en Java. El código de ejemplo escribeABC_012_suffix_suffix, Esperaba que salieraABC_012_suffix

    Pattern rexexp  = Pattern.compile("(.*)");
    Matcher matcher = rexexp.matcher("ABC_012");
    String  result  = matcher.replaceAll("$1_suffix");

    System.out.println(result);

Entiendo que replaceAll reemplaza todos los grupos coincidentes, la pregunta es por qué este grupo regexp(.*) haciendo coincidir dos veces en mi cadenaABC_012 en Java?

Respuestas a la pregunta(3)

Su respuesta a la pregunta