正規表現でマッチした文字列のハイライトがずれる問題(2)

http://d.hatena.ne.jp/jawagenjin/20080606/1212679738の続き。
前回の例ではJEditorPaneを使ってテキストをハイライトしていたが、JEditorPaneが使っているDefaultEditorKitのAPIドキュメントにあった下記の記述が答えのようだ。

ドキュメントがメモリー内にある間は、ドキュメントがディスク上にある場合の復帰改行がどのように定義されているかにかかわらず、改行の定義に \n 文字が使用されます。したがって、検索時には、常に "\n" を使用するようにしてください。新規ドキュメントが作成され、EndOfLineStringProperty が未定義の場合、ドキュメントの書き出しには System プロパティーが使用されます。

つまり、正規表現のMatcherがマッチした際に返すインデックスは文字列のインデックスそのままだが、Document内では、改行コードは"\n"のみとして認識されており、ポジション指定した際に、"\r"の分だけインデックスがずれていくという事らしい。

改行コードのリプレース(\r\n->\n)とかじゃなくスマートな解決方法を探す。