Opa Mayki, tudo bem com você?
Isso aconteceu porque o +
também é um quantificador dentro das expressões regulares, então precisamos utilizar a \
para dizer que queremos o literal mesmo:
Eu criei uma regex para testar aqui, um pouco diferente da sua veja:
let pattern = /[\d\.]+E\+\d{2}/g
Veja que eu estou criando um grupo que vai receber dígitos e ponto final, ai eu utilizo o +
para identificar que esse padrão de números e pontos para pegar mais de um
Depois coloquei o E
e o \+
para identificar que é de fato um +
e um \d{2}
para ser os 2 últimos digitos
Testando esse padrão:
let valor = "2.4446506362607E+29+3.7298826723704E+29"
let pattern = /[\d\.]+E\+\d{2}/g
let resposta = valor.matchAll(pattern)
resposta.next()
>>>>
done: false
value: Array [ "2.4446506362607E+29" ]
resposta.next()
>>>
done: false
value: Array [ "3.7298826723704E+29" ]
Compreendeu?
Abraços e Bons Estudos!