PowerShellの正規表現で名前付きグループを使うときは、-match 演算子では使えません。 代わりに、regexクラスのMatches(str, regex) メソッドを呼び出す必要があります。
名前付きグループとは (?<グループ名>正規表現)
でマッチした部分を取得するときに、「グループ名」で取り出すことができる仕組みです。
名前付きグループを使うことで、プログラムが読みやすくなるメリットがあります。
使い方は以下の通りです。
$result = [regex]::Matches($line, '(?<Id>[0-9]+)\t(?<Name>[a-zA-Z0-9_]+)')
if ($result -ne $null) {
$matchedId = $result[0].Groups['Id'].Value
$matchedName = $result[0].Groups['Name'].Value
}
以上です。