Hi Zoomicon,
MonoX uses a custom module for rewriting, but the syntax is the default syntax used for regex replacement in .NET.
Have you tested your regex, because there are a few cases that might not match as you expect it:
1. ^(.*)/(.*)/post/(.*)/(.*)/(.*)
(/(\?(.+))?)?$ - this will match a trailing slash and non-trailing slash, but you won't be able to match query parameters in case of a non-trailing slash URL
2. regex engine is greedy by default which means when your regex is used, the match indices will change depending if the URL has a trailing slash or not - means you should either update the regex to match the slugs correctly, or change the "to" portion of the rewrite rule
See for yourself on
http://regexstorm.net/tester
Enter your regex in the pattern field, url in input field and the "to" portion of rewrite URL in the replace matches with... field and then observe the regex matches on the split list tab as you add/remove the trailing slash and/or query string.
Looking at your example, regex
^(.*)/(.*)/post/([^/]*)/([^/]*)/([^/\?]*)\/?(\?(.+)?)?$
and replacement string
$1/$2.aspx?BlogSlug=$3&BlogPostId=$4&$7
could work as intended, but please test your edge cases as well.
Regards,
Vedran