使う可能性のある略語を物量勝負で例外処理する(w
事前処理で「 vs. 」とかを「 vs%% 」とかに置換しておく。
その後に行頭とピリオド(?とか!もか)の後の小文字を
キャピタライズして、最後に「 vs%% 」を「 vs. 」に戻す。

そのほか、「 W.H.O. 」とかの略語もあるけど、こういうのは
比較的簡単にまとめて例外処理できそう。

/ ([A-Z]\.)+ /

「2.35」とかいうのは、文末を「ピリオド+スペース」と定義して
おけば無視できる。

マジメにやろうとするとシラミツブシにしなきゃいけないので、
大変ですな。

あと、制御構文がないと辛いので、ProofReaderのような単純置換
しかできないツールでは無理。

後方参照ができないと面倒なので、SEDかPerlかな。
拡張正規表現があるとラクなので、やっぱPerlか。
僕はこれらのツールはなめただけなので、ちゃんとスクリプト
組もうとするとかなり大変なので、これまで。