Isso deve funcionar em if ("error_PP3_XXX_PSI_20180109PM.err" -match "([0-9]{8})"){$matches[1]} else {""}
Assume que você não possui mais de um grupo de 8 dígitos.
Por favor, note também que $ matches permanece definido mesmo se o comando seguinte não corresponder. Então você pode querer limpá-lo manualmente usando clear-variable matches
(ou usando alias mais curtos clv matches
)