質問: オブジェクト指向がよくわからないのですが、インスタンスの値の書き換えはどうやるのですか?
回答: クラスによって、インスタンスの内容の書き換えができるものとできないものがあります。できないものはたんにそのクラスの設計者が「どうせ作っても誰も使わないだろう」と思ってそういう set 用のプロパティーや setter メソッドを付けなかったにすぎません。 Regex クラスも、そのようにたまたま設計者が書き換え機能を提供しなかっただけでしょう。 したがってインスタンスの内容を書き換えたければ、そのインスタンスは捨ててしまい、別のインスタンスを new すれば良いです。クラスの設計者もどうせ、正規表現パターン("hoge")を "piyo" にされても、正規表現パターンのコンパイルのし直しになるので new とほとんど同じなので、書き換え用の機能を提供しなかっただけなので、使う人も毎回 new してもいっこうに構いません。 なお、提示されたコードを見る限り、たとえ Regex クラスが書き換え機能を提供していたとしても、それを使わずに2つのインスタンスを使うほうが自然だと思います。ひとつのインスタンスを異なる用途に兼用するのは複雑になるだけです。