I want to capture a pattern upto but not including the first instance of an optional other pattern with preg_match, eg:
ABCDEFGwTW$%
You can use
'/(.*?)(?=EFG|$)/'