Prova detta:
(?: (?:and or|and|a o|company|co|c o|dba|d b a))+(?!\S)/i
Precis som @mathematical.coffee började jag med att faktorisera det ledande utrymmet och ersätta det efterföljande utrymmet med en lookahead--i det här fallet en negativ se fram emot ett icke-vitutrymme karaktär. På så sätt kommer det att fungera även om token är den sista i strängen och inte följs av ett mellanslag. Men den viktigaste förändringen är att ersätta två eller flera matcher åt gången när det är möjligt.