"preg_match () возвращает количество совпадений с образцом. Это будет либо 0 раз (без совпадений), либо 1 раз, потому что preg_match () остановит поиск после первого совпадения. Preg_match_all () наоборотпродолжить, пока не достигнет конца субъекта. preg_match () возвращает FALSE, если произошла ошибка. "
link
Preg_Match проверяет, только существует ли шаблон встрока.Это ничего не удаляет.
Вы можете использовать str_replace () для замены этой части
$link = str_replace(".msg251#msg251", "", $linkraw);