You might want to checkout the stringdist package, e.g.:
library(stringdist)
toMatch <- c('scan', 'scanned', 'SCANNED', 'scan and sent', 'FAXED', 'faxed to', 'faxed- pt')
possibleValues <- c("scanned", "faxed")
possibleValues[amatch(x = toMatch, table = possibleValues, maxDist = Inf)]
Returns:
[1] "scanned" "scanned" "scanned" "scanned" "faxed" "faxed" "faxed"