Prøv dette:
(?: (?:and or|and|a o|company|co|c o|dba|d b a))+(?!\S)/i
Ligesom @mathematical.coffee startede jeg med at udregne det forreste mellemrum og erstatte det efterfølgende mellemrum med et lookahead - i dette tilfælde et negativt se frem til et ikke-whitespace Karakter. På denne måde vil det fungere, selvom tokenet er det sidste i strengen og ikke efterfulgt af et mellemrum. Men den vigtigste ændring er at erstatte to eller flere kampe ad gangen, når det er muligt.