複数の箇所に match する場合、-match 演算子では最初の match しか $Matches に登録されません。
PS > "AB12-AB345" -match "AB[0-9]+" True PS > $Matches Name Value ---- ----- 0 AB12
複数マッチの場合は regex を素直に使うようにします。
PS > $a = [RegEx]::Matches("AB12-AB345", "AB[0-9]+") PS > $a | % {$_.Value} AB12 AB345
また、match 部分に名前を付けた場合は、.Groups プロパティ経由でアクセスします。
PS > $a = [RegEx]::Matches("AB12-AB345", "AB(?<name>[0-9]+)") PS > $a | % {$_.Groups["name"].Value} 12 345