Are you trying to achieve this using SQL or Qlik script? Also, how would you verbalize what you're trying to do? Do all of the [Column A] values start with "URVKK" or are you needing to pattern match that in a more specific way? And after that starting pattern, are you just trying to replace anything that isn't "GPA" with an underscore?
If you're trying to achieve this with Qlik script, you could use this expression based on the little information I have here:
if(left([Column A], 5) = 'URVKK', 'URVKK' & Repeat('_GPA', SubStringCount([Column A], 'GPA')))
If it's SQL you're wanting to use and you're using PostgreSQL 15+, you could do something like:
CASE WHEN left("Column A", 5) = 'URVKK' THEN 'URVKK' || repeat('_GPA', regexp_count("Column A", '(GPA)')) ELSE "Column A" END
If you're trying to use SQL and wanting to specifically use Regex in this case, that's going to be a lot harder just because it's not easy to use Regex to do something like "match all substring characters unless the substring matches 'GPA'."