Analyzing the regex change, I would say that having a site access "area" and an article named "Area51" would cause problem:
http://example.com/area51 would match SA "area" because the "5" would match `[^\-a-z]`.
Wouldn't it be better to use (untested):
```php
if ( $matchURI !== '' && !preg_match( "@^$matchURI([/?]|$)@", $uriString ) )
```

The unit tests should be completed with a bit more edge cases IMHO.