Tried with [^-][^0-9]$, but this also excludes d9 or -a. I would like this to only work with -1, -2, -3 etc.
>Solution :
You can use an NFA regex with lookbehind support like
$(?<!-[0-9])
It matches an end of string that is not immediately preceded with a - + a digit.
A variation of this is
^(?!.*-[0-9]$)
^(?!.*-[0-9]$).*
If you deal with a POSIX (ERE here) regex engine, you can use
^(.*([^-].|.[^0-9])|.)$
See this regex demo. Details:
^– start of string(– start of a group:.*– any zero or more chars([^-].|.[^0-9])– either a char other than a-and then any one char, or any single char and then any char other than a digit
|– or.– any one char
)– end of the group$– end of string.
