Matthew van Eerde's web log
I am a Software Development Engineer in Test working for the Windows Sound team. You can contact me via email: mateer at microsoft dot com
Regular expressions are a tool for matching generic text. XPath queries are a tool for matching chunks of XML. Both are search technologies.
When using search technologies it is occasionally quite useful to have a query that will never match anything - for SQL, this would be something like "SELECT 1 WHERE 1 = 0".
My candidates for minimal unsatisfiable regular expression:
/a\bc/\b is a zero-width assertion that matches a boundary at the beginning or end of a word - specifically, it is true between a word-ish character (\w) and a non-wordish character (\W). Since literal "a" and "c" are both wordish characters, this will never match.
Or, if you allow Perl extensions:
/(?!)/This is a negative lookahead for an empty string. Since the empty string always matches everywhere, this will never match.
My candidate for minimal unsatisfiable XPath query:
/parent::*This matches everything at or under the parent of the root element. Since, by definition, the root element has no parent, this will never match.