Regex.Splitメソッドを用いた正規表現による文字列分割では、区切りとして指定する正規表現がグループ化されているかどうかで結果が変わります。 区切りの正規表現がグループ化されている場合、分割した結果にはグループにマッチした部分も含まれます。 一方、グループ化されていない場合は分割した結果には含まれません。

次の例では、ディレクトリ区切り文字として\または/を用いてファイルパスの分割を行っています。 区切りの正規表現"\\|/"をグループ化しているかどうかによってRegex.Splitメソッドの結果が変わります。

区切りの正規表現がグループ化されているかどうかでRegex.Splitメソッドの結果が変わる
using System;
using System.Text.RegularExpressions;

class Sample {
  static void Main()
  {
    var path = "path/to/file.txt"; // ファイルパス

    // グループ化した正規表現を区切りとして分割する
    // (分割結果には区切り文字自体も含まれる)
    Console.WriteLine("[grouping]");
    foreach (var p in Regex.Split(path, @"(\\|/)")) {
      Console.WriteLine(p);
    }

    // グループ化していない正規表現を区切りとして分割する
    // (分割結果に区切り文字は含まれない)
    Console.WriteLine("[non-grouping]");
    foreach (var p in Regex.Split(path, @"\\|/")) {
      Console.WriteLine(p);
    }
  }
}
実行結果
[grouping]
path
/
to
/
file.txt
[non-grouping]
path
to
file.txt

Regex.Splitメソッドで区切り文字自体も分割結果に含めたい場合は、この動作を利用して区切りの正規表現をグループ化すればよいことになります。