This works for me:
$a='^(?!2008|2011|2012).*'
$a | out-file .\filter.config
$b = gc .\filter.config
Get-ChildItem @FileParams | where {$_.Name -match $b}
(My filter is different to match the files I have on my HD, but pattern is similar).
Can you elaborate on Option 1 not working ?