<?php
/*Если ты сделал задачу про Grammar Nazi, сделай скрипт, которы вместо сообщения об ошибках будет молча
их исправлять.*/
error_reporting(-1);
mb_internal_encoding('utf-8');

$text = "Привет,Жырный!труд:Шырокий?пассаЖЫР;зделаю Координально но, например Сдесь решена проблема ушыбов.
		Зделано многое а? ведь эти ушы зделали мы.";

$pattern = ['/(к|К)оординально/ui',
			'/([,;!?:])([^,;!?:\\s]+)/u',
			'/([а-яА-Я]*[^,])\\s((?:а|но).?)/u'];
		
$replacement = ['$1ардинально',
                '$1 $2',
				'$1, $2'];
		
$orphPatt2 = '/(с|С)десь/ui';
$orphPatt3 = '/(?:(з|З)дела)((?:ю|л|н)\\s*)/ui';
$orphPatt4 = '/([а-яё]*(?:ж|ш))(ы)([а-яё]*)/ui';

$matches = array();

$cleanString = preg_replace($pattern, $replacement, $text);

$cleanString = preg_replace_callback($orphPatt2,
    function ($matches){
    	if (preg_match('/с/u',$matches[1])){
    		return 'здесь';
    	} else {
    		return 'Здесь';
    	}
    }, $cleanString);
    
$cleanString = preg_replace_callback($orphPatt3,
    function ($matches){
    	if (preg_match('/з/u',$matches[1])){
    		$result = "сдела{$matches[2]}";
    		return $result;
    	} else {
    		$result = "Сдела{$matches[2]}";
    		return $result;
    	}
    }, $cleanString);
    
$cleanString = preg_replace_callback($orphPatt4,
    function ($matches){
    	if (preg_match('/ы/u',$matches[2])){
    		$result = "{$matches[1]}и{$matches[3]}";
    		return $result;
    	} else {
    		$result = "{$matches[1]}И{$matches[3]}";
    		return $result;
    	}
    }, $cleanString);
    
echo $text."\n";
echo $cleanString;