Как сделать регистронезависимую замену?
В регулярках есть глобальные и локальные флаги.
$text = 'JA Ja jA ja';
$text = preg_replace('/J(?i:a)/', 'Я', $text);
$text = preg_replace('/j(?i:a)/', 'я', $text);
Задача не ясна. О каких сочетаниях речь? В примере одно, в требованиях другое. Почему бы не так:
$text = JA Ja jA ja;
$text = str_replace(['JA', 'Ja'], 'Я', $text);
$text = str_replace(['jA', 'ja'], 'я', $text);