So are you also trying to extract the drug names? I'm confused by your question. You ask about metabolism and increase/decrease. But then go on to talk about drug names.
maybe you should type out a row as close to real as you can and then write the output you desire.
I guess I'm also confused by why you aren't doing inclusive extraction instead of exclusive. why not search for the terms instead of searching for not the terms?
to extract drug names they are all proper names right? so you could do something like...
df <-
data.table(
text = c(
"During experiements we found that Cipid Duotyllyl increases metabolism when combined with Heptaichreelgynthraene Kaspliorhite",
"During experiements we found that Sipthyde Frustrur decreases metabolism when combined with Isopheduacceite",
"During experiements we found that Philphin increases metabolism when combined with Monoapuphyodeptin Heptawonthitharhycin",
"During experiements we found that Glolfide Diifludran decreases metabolism when combined with Monoichuxyrlumphein",
"During experiements we found that Octacliusplodein increases metabolism when combined with Fonhesgechlid Diizirdolfygor"
)
)
df %>%
mutate(drug1 = str_extract_all(text, "\\s[A-Z][a-z]*(\\s[A-Z][a-z]*)?", simplify = TRUE)[, 1],
drug2 = str_extract_all(text, "\\s[A-Z][a-z]*(\\s[A-Z][a-z]*)?", simplify = TRUE)[, 2]
)