//PascalABC.NET версия 3.2, сборка 1367
begin
var s := ReadlnString('>');
var r := new Regex('\bМама\b');
Writeln('Количество слов "Мама": ', r.Matches(s).Count);
s := r.Replace(s, 'Пама');
s.Println;
end.
все просто и понятно)
только экранирующие символы пришлось поискать для слова целиком
Пример работы программы:
> Мама,Мамам,Мама,мама,Мама
Количество слов "Мама": 3
Пама,Мамам,Пама,мама,Пама