I'd suggest taking a look at https://en.wikipedia.org/wiki/ReDoS#Evil_regexes
Your regex contains several repeated patterns:
([a-zA-Z]+[’',.\-]?[a-zA-Z ]*)+
and
([a-zA-Z]+[’',.\-]?[a-zA-Z ]+)+$
Just as a quick example of how this might slow it down, take a look at the processing time and steps on these examples: a few characters versus having even more characters at the end and even worse, that set repeated many times
To fix this, you should try narrowing down your regular expressions a bit depending on what you're actually trying to grab, and remove some of the recursion in them. Without knowing more about your desired input/output it's kind of hard to guess what you want, but I'd wager something like this would accomplish the same thing faster:
^([a-zA-Z’',.\-]+) ([a-zA-Z’',.\-]+)$
or more inclusively
^([^ ]+) ([^ ]+)$
Another good reference