Do zamiany pierwszego (i tylko pierwszego) znalezionego słowa preg_replace się nada. poczytaj dokładniej manuala:
http://pl2.php.net/preg_replaceZainteresuj się dodatkowym parametrem "int limit" - to chyba powinno pomóc.
Jeśli chcesz zamienić "tylko drugie" wystąpienie - to jest problem. Na szybko widzę dwa rozwiązania:
1. preg_replace zmienia oba słowa "A" na dowolny ciąg znaków "B" (musisz zapewnić unikalność), potem zamieniasz pierwszy "B" z powrotem na "A", a drugi na żądany przez Ciebie, docelowy "C"
2. Mając zdanie, rozbijamy je poprzez explode, otrzymujemy tablicę, którą obrabiamy w dowolny żądany sposób, a na koniec z powrotem złączamy przez implode - w ten sposób możemy np. zmienić tylko pierwsze trzy + ósme wystąpienia ciągu...