push @path, $self->_url_path_segment_match($_)
or $self->_blam("Couldn't parse path match segment");
}
- !$end and length and $_ .= '(?:\.\w+)?' for $path[-1];
+ if (@path && !$end) {
+ length and $_ .= '(?:\.\w+)?' for $path[-1];
+ }
my $re = '^('.join('/','',@path).')'.$end.'$';
$re = qr/$re/;
if ($end) {
/\G(?:(?=[+|\)])|$)/gc and
return '';
# word chars only -> exact path part match
- /\G(\w+)/gc and
+ /\G([\w\-]+)/gc and
return "\Q$1";
# ** -> capture unlimited path parts
/\G\*\*/gc and
return '(.*?[^/])';
# * -> capture path part
/\G\*/gc and
- return '([^/]+)';
+ return '([^/]+?)';
}
return ();
}