Update: I wrote up what I did, with source code and things to watch for, at - Adding XPath 2.0 functionality and variables to .NET XPath (my blog).
Is there a way to pass a regular expression to matches() for an XPath statement in .NET?
Example: do an xpath of
"/windward-studios/Employees/Employee[matches(string(LastName), '.*A?B[12]C.*')]"