Mi spiace battere un cavallo morto, ma è piuttosto strano che nessuno lo abbia fatto notare: "Sì, puoi, ma questo è l'opposto di come usi la cattura di gruppi nella vita reale".
Se usi Regex nel modo in cui deve essere utilizzato, la soluzione è semplice come questa:
"6 example input 4".replaceAll("(?:\\d)(.*)(?:\\d)", "number$11");
O come giustamente sottolineato da shmosel di seguito,
"6 example input 4".replaceAll("\d(.*)\d", "number$11");
... poiché nella tua regex non c'è nessuna buona ragione per raggruppare i decimali.
Di solito non usi i gruppi di cattura sulle parti della stringa che vuoi scartare , li usi sulla parte della stringa che vuoi mantenere .
Se vuoi davvero i gruppi che vuoi sostituire, quello che probabilmente vuoi invece è un motore di template (es. Moustache, ejs, StringTemplate, ...).
Per inciso per i curiosi, anche i gruppi che non catturano le espressioni regolari sono lì solo per il caso in cui il motore delle espressioni regolari ha bisogno di loro per riconoscere e saltare il testo variabile. Ad esempio, in
(?:abc)*(capture me)(?:bcd)*
ne hai bisogno se il tuo input può apparire come "abcabc capture me bcdbcd" o "abc capture me bcd" o anche solo "cattura me".
O per dirla al contrario: se il testo è sempre lo stesso e non lo catturi, non c'è motivo di usare i gruppi.