Try
v1 <- scan(text=gsub('[^A]+', ',', str1), sep=',', what='', quiet=TRUE) table(v1[nzchar(v1)])
or
library(stringi) table(stri_extract_all_regex(str1, '[A]+')[[1]])
Benchmarks
set.seed(42) x1 <- stri_rand_strings(1,1e7, pattern='[AG]') system.time(table(stri_split_regex(x1, "[^A]+", omit_empty = TRUE)))
data
str1 <- 'AABBABBBAAAABBAAAABBBAABBBBABABB'
akrun
source share