Experimente um grupo lookbehind positivo em vez do grupo sem captura:
$pattern = [regex] '(?s)(?<=ExportSTL.+?global_scale = .+?default=)(.+?),'
O grupo lookbehind precisará corresponder, mas não consumirá nenhum caractere.
A string de substituição será apenas '10.0'
.
Uma maneira menos exótica seria transformar o grupo que não captura em um grupo normal:
$pattern = [regex] '(?s)(ExportSTL.+?global_scale = .+?default=)(.+?),'
A string de substituição seria '${1}10.0'
(com aspas simples). O ${1}
representa o primeiro grupo. (Você precisa das chaves ao redor do "1" para que ele não entre no "10.0").