num <- 4
splitvar <- ";"
pattern <- paste0(".{1,", num-1, "}(?:",splitvar,"|$)|[^",splitvar,"]{",num,"}")
pattern # ".{1,3}(?:;|$)|[^;]{4}"
string <- c("a;a;aabbbb;ccddee;ff")
unlist(regmatches(string, gregexpr(pattern, string)))
library(stringr)
unlist(str_extract_all(string, pattern))
bnVtIDwtIDQKc3BsaXR2YXIgPC0gIjsiCnBhdHRlcm4gPC0gcGFzdGUwKCIuezEsIiwgbnVtLTEsICJ9KD86IixzcGxpdHZhciwifCQpfFteIixzcGxpdHZhciwiXXsiLG51bSwifSIpCnBhdHRlcm4gIyAiLnsxLDN9KD86O3wkKXxbXjtdezR9IgpzdHJpbmcgPC0gYygiYTthO2FhYmJiYjtjY2RkZWU7ZmYiKQp1bmxpc3QocmVnbWF0Y2hlcyhzdHJpbmcsIGdyZWdleHByKHBhdHRlcm4sIHN0cmluZykpKQoKbGlicmFyeShzdHJpbmdyKQp1bmxpc3Qoc3RyX2V4dHJhY3RfYWxsKHN0cmluZywgcGF0dGVybikp