Lamento vencer a un caballo muerto, pero es un poco extraño que nadie haya señalado esto: "Sí, puedes, pero esto es lo opuesto a cómo usas la captura de grupos en la vida real".
Si usa Regex de la forma en que debe usarse, la solución es tan simple como esta:
"6 example input 4".replaceAll("(?:\\d)(.*)(?:\\d)", "number$11");
O como lo señala legítimamente shmosel a continuación,
"6 example input 4".replaceAll("\d(.*)\d", "number$11");
... ya que en su expresión regular no hay ninguna buena razón para agrupar los decimales.
Por lo general, no usa grupos de captura en las partes de la cadena que desea descartar , los usa en la parte de la cadena que desea conservar .
Si realmente desea grupos que desea reemplazar, lo que probablemente desee en su lugar sea un motor de plantillas (por ejemplo, bigote, ejs, StringTemplate, ...).
Como un aparte para los curiosos, incluso los grupos que no capturan en las expresiones regulares están ahí para el caso de que el motor de expresiones regulares los necesite para reconocer y omitir el texto variable. Por ejemplo, en
(?:abc)*(capture me)(?:bcd)*
que los necesite si su entrada puede buscar ya sea como "abcabc captura de mí bcdbcd" o "abc captura de mí BCD" o simplemente "la captura de mí".
O para decirlo al revés: si el texto es siempre el mismo y no lo captura, no hay ninguna razón para usar grupos.