`[a-zA-Z][\w_-]*` is my way of saying "a word that starts with a letter". If I replace it with `{word}` for clarity you get `{word}(\/{word})*` meaning a word and then any number of words with slashes before them. I feel like it should be changed to `({word}:)?{word}(\/{word})*`, because that's tighter. (I.e. it would disallow something like `a/b:c/d:e`, since a slash before a colon isn't allowed and multiple colons isn't allowed.