x <- c("A12_SITE_1234_J_vvv.csv","A12_SITA_1234J_vvv.csv", "A12_SITE_1678_H_vvv.csv", "A12_SITE_145C_vvv.csv") sub("(.*[0-9])([A-Z])", "\\1_\\2", x)
Standard input is empty
[1] "A12_SITE_1234_J_vvv.csv" "A12_SITA_1234_J_vvv.csv" [3] "A12_SITE_1678_H_vvv.csv" "A12_SITE_145_C_vvv.csv"