Thank you for the reproducible example. I'm not sure why you're making the data frame creation so convoluted. I've simplified it below. Hope you find it an easier approach.
As for the problem at hand, I think you need to use regex_join() instead of fuzzy_join().
library(stringr)
library(fuzzyjoin)
df_with_strings <- data.frame(match_column = c("this example should be included",
"this example shouldn't be included"))
df_match_words <- data.frame(word1 = "example", word2 = "should", matching_info = "success")
df_match_words <- dplyr::mutate(df_match_words,
word1_regex = str_c("\\b", word1, "\\b"),
word2_regex = str_c("\\b", word2, "\\b"))
regex_inner_join(df_with_strings, df_match_words,
by = c(match_column = "word1_regex", match_column = "word2_regex"))
#> match_column word1 word2 matching_info word1_regex
#> 1 this example should be included example should success \\bexample\\b
#> word2_regex
#> 1 \\bshould\\b
Created on 2020-05-28 by the reprex package (v0.3.0)