The below will give you the desired effect on an "Instagram" level where you may not begin a tag with a number, nor can you begin or end it with any special characters (hyphen included). IE: this-tag works but -this-tag- doesn't, 2019-doesnt, year-2019 does.
^(?!^\W)^(?!^\d)(?!.[I][\W]$)[a-z0-9-][/I]$
Facebook allows numbers in the beginning, and if you're looking at software, this might be best as some software might be named 1-virus-removal (example) which wouldn't work with the above as it excludes the first character being a digit. If you want that, and like 2019-windows-update to work, use below:
^(?!^\W)(?!.*[\W]$)[a-z0-9-]*$
Stick your preference in ACP -> Setup -> Options -> Content tagging -> "Tag match regular expression:"