Pytanie jak dostajesz te ciągi znakowe, czy jest to jeden duży ciąg czy osobne (np. lecisz iteracyjne po tablicy ciągów). Jeśli analizujesz każdy kolejny ciąg i chcesz dla niego dostać true/false to może coś takiego:
const reg = /^(?=.*\(MP\)).+$/i;
true: ciąg zostaje (zawiera MP)
false: ciąg do usunięcia (nie zawiera MP)
reg.test('Żabno(MP)'); //true
reg.test('Andrychów(MP)'); //true
reg.test('Żnin(KP)'); //false
reg.test('Aleksandrów_Łódzki(ŁD)'); //false
Generalnie w tym przypadku nie skupiam się na znakach z jakich składa się ciąg tylko sprawdzam, czy gdzieś w ciągu znajduje się (MP) lub (mp) (flaga "i") i jeśli tak to traktuję go jako prawidłowy (true).
O coś takiego chodzi?
Pisałem w JS bo w PHP na co dzień nie siedzę ale myślę, że łatwo sobie przerobisz funkcje - w JS metoda test() sprawdza, czy ciąg znakowy pasuje do podanego wzorcami jeśli tak to zwraca true.
Edit:
Tak sobie też myślę, że jeśli analizujesz kolejno te ciągi to w sumie wystarczy proste String.prototype.includes tylko że wtedy ważna jest wielkość znaków.