Emacsで“ある文字A”と“ある文字B”に挟まれた“ある文字C”を、確認つき(query)で削除するコマンドを教えてください。

具体例として、「2つの“x”に挟まれた空白1つだけを削除する」ことにします。これを実行するコマンドを教えてください。

ここで、バッファが以下の内容となっているとします。

x x x x y

望む結果は以下のとおりです。

xxxx y

たとえばM-% x x RET xx RETを実行した場合は、!で全部置換しても当然以下のようになり、要件を満たしません。

xx xx y

置換を2回実行するか、replace-search-functionを再定義するぐらいしか思いつかないのですが、よくあるシチュエーションで解がすでにあるのではないかと思ってお聞きします。