複数の箇所に 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