I voted for tomalask's non-regex approach.
However if you HAD to do it with regex, I think you need something like this
\\([^\\/?"<>|]+?)\#([^\\/?"<>|]+?)[\r\n]*$
This will allow things like - and _ which are valid in filenames, Its 2 identical groups (each excluding invalid chars for win32 filenames) beginning with a slash, delimited by a # and at the end of the line (the $). Assuming second group is also a valid win32 filename..
I saw some ugly boxes in the matched second group, the [\r\n]* keeps them away.
e.g. F5C70F23459}#1.0#0#..\..\..\bin\App Components\Acme_Form-Engine.dll#ACME Form Engine
group#1 => Acme_Form-Engine.dll
group#2 => ACME Form Engine
In short this is arcane.. avoid if possible.