você precisa usar grupos de captura se quiser realizar operações de substituição enquanto preserva os componentes da string original.
seu regex seguiria algo como:
padrão: "^([\d]{10})([\d]{10})" //two groups of 10
substituir: "$1 $2"
Os parênteses em torno de cada padrão para um bloco de dez, definem um grupo de captura. então estamos dizendo "os primeiros dez dígitos do grupo $ 1 e os segundos 10 estão no grupo $ 2". então apenas dizemos "imprimir grupo 1, adicionar um espaço e imprimir grupo 2".
Note que cada plataforma é diferente em termos da sua sintaxe Regex e substitui a sintaxe. muitos usam $number
(como sed), outros usam \number
(como o notepad ++), portanto, consulte a documentação do seu produto.