at the beginning of the filename comes the libraryname.
it may contain any characters with the exception of square brackets
(`[]`) and parentheses (`()`).
the version string may contain any characters with the exception of
square brackets (`[]`) and parentheses (`()`).
each arch specifier may contain any character with the exception of
square brackets (`[]`) and parentheses (`()`), and the dash (`-`) is
reserved as delimiter (so it must not be used in the components)