in reply to Regexp experts, come to rescue!

Apart for the previous problem you should also anchor your regexps:

/^-[45][15j]$/ # note the ^ and $

otherwise you will match the regexp anywhere in the string: "toto-45tata" would match

Then your interpretation is right, otherwise it would be
if any character is '-' followed by 4 or 5 followed by 1 or 5 or j...