В соответствии с вашей спецификацией, я думаю, что это должно сработать:
(\w|_|:)(\w|\d|\.|-|_|:)*
Это без CombiningChar и Extender. В официальной спецификации вы можете найти, что именно подразумевается под CombiningChar и Extender (Ctrl + F для них на этой странице), однако вам придется переводить коды юникода.