I just figured out why some strings were not matched by a regular expression and learned that the data viewer is rendering repeated whitespaces as a single one (from now on I will be using str_squish().).
View(rbind("foo bar", "foo bar"))
I imagine there might be datatypes where this is intended? probably related: https://datatables.net/forums/discussion/43122/space-in-fields