Puede usar regexp_matches()
en cambio:
update data1
set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1];
Como no se pasa ninguna bandera adicional, regexp_matches()
solo devuelve la primera coincidencia, pero devuelve una matriz, por lo que debe elegir el primer (y único) elemento del resultado (ese es el [1]
parte)
Probablemente sea una buena idea limitar la actualización solo a las filas que coincidan con la expresión regular en primer lugar:
update data1
set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1]
where full_text ~ 'I [0-9]{1,3}'