Regex.Replaceメソッドでは、置換後の文字列も正規表現として解釈されます。 具体的には、置換文字列中の$で始まる文字列が置換の正規表現要素と解釈されます。 これを用いると、正規表現にマッチした文字列を全く別の文字列に置き換えるだけでなく、元の文字列を使った別の文字列に置き換えることができます。

置換の正規表現要素の一例として、"$0"は正規表現にマッチした文字列へと置き換えられます。 次の例では、拡張子の正規表現にマッチした箇所($0)に".bak"を追加して置換しています。

Regex.Replaceメソッドと置換の正規表現を用いてマッチした文字列へと置き換える
Imports System
Imports System.Text.RegularExpressions

Class Sample
  Shared Sub Main()
    Dim files() As String = New String() { _
      "sample.txt", _
      "sample.txt.bak", _
      "sample.cs", _
      "test.txt", _
      "test.jpeg", _
      "README" _
    }

    For Each file As String In files
      Console.Write("{0,-20} => ", file)

      ' 正規表現"\..*"で探索し、マッチした箇所に".bak"を付加して置き換える
      Dim bakFile As String = Regex.Replace(file, "\..*", "$0.bak")

      Console.WriteLine(bakFile)
    Next
  End Sub
End Class
実行結果
sample.txt           => sample.txt.bak
sample.txt.bak       => sample.txt.bak.bak
sample.cs            => sample.cs.bak
test.txt             => test.txt.bak
test.jpeg            => test.jpeg.bak
README               => README

Match.Resultメソッドを用いることでも置換の正規表現要素を使った置換をおこなうことができます。 詳しくは正規表現の構造化および処理(マッチ・グループ・キャプチャ) §.Match.Resultメソッドで解説しています。