That is not how grepl works, it is going to retrieve the entire line where the pattern is found, it doesn't extract subsets o a single character string.
I think you have to separate your string using the semicolons as delimiters, into a character vector, then you can match individual elements.