I’m puzzled about this!
[^\/\&\|\?]+ will match an identifier that contains at least one character that isn’t a forward slash, ampersand, pipe or question mark.
So for instance,
:-/ uh oh? :-| would match this regex, and therefore be considered a valid identifier, despite the special characters.
I wonder if this regex should instead be:
^[^\/\&\|\?]+$ i.e. the identifier can’t contain any forward slashes, ampersands, pipes or question marks.