I have a string Manager of Medical Threat Devlop at Micro by regular expression findall i want to find any words which goes after "at","for", "of", . If to apply r'(?:for|at|of)\s+(.*)' i will get incorrect ['Medical Threat Devlop at Micro'] i want find by regular expression from the end of string ['Micro'] P/S. Please don't advice split More examples: 1)Manager of Medical Threat Devlop at Canno -> Canno 2)Manager of Medicalof Threat Devlop of Canno -> Canno 3)Manager of Medicalfor Threat Devlop for Canno -> Canno 4)Threat Devlop at Canno Matt -> Canno Matt by Vladimir Shabuniayeu in StackOverflow on July 05, 2022 . Answer You can use re.findall(r'.*\b(?:for|at|of)\s+(.*)', text) See the regex demo . Details : .* - any zero or more chars other than line break chars, as many as possible \b - a word boundary (?:for|at|of) - for...