df <- structure(list(ADDRESS = c("401 300th st", "40120 30 street", 
"30 401 plz", "401 30th st", "401 e gibbsborro rd, 305", "401 e 30th street, shelter", 
"401 east 30st", "401 e30th street, 3", "77-02 30th ave, 3rd fl", 
"401 e30 st."), Outcome = c(FALSE, FALSE, TRUE, TRUE, FALSE, 
TRUE, TRUE, TRUE, FALSE, TRUE)), class = "data.frame", row.names = c(NA, 
-10L))
grepl("^(?=.*\\b401\\b)(?=.*?\\be?30(?:th|st)?\\b)", df$ADDRESS, perl=TRUE)
