We can use sub
sub("\\|.*", "", str1)
#[1] "ABC"
Or with strsplit
strsplit(str1, "[|]")[[1]][1]
#[1] "ABC"
Update
If we use the data from @hrbrmstr
sub("\\|.*", "", df$V1)
#[1] "ABC" "ABCD" "ABCDE" "DEF" "GHI" "BCDE"
These are all base R methods. No external packages used.
data
str1 <- "ABC|DEF|GHI ABCD|EFG|HIJK ABCDE|FGHI|JKL DEF|GHIJ|KLM GHI|JKLM|NO|PQRS BCDE|FGHI|JKL"