Você pode usar
regexp_matches()
em vez de:update data1
set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1];
Como nenhum sinalizador adicional é passado,
regexp_matches()
apenas retorna a primeira correspondência - mas retorna uma matriz, então você precisa escolher o primeiro (e único) elemento do resultado (que é o [1]
papel) Provavelmente é uma boa ideia limitar a atualização apenas a linhas que correspondam ao regex em primeiro lugar:
update data1
set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1]
where full_text ~ 'I [0-9]{1,3}'