Используйте токен |
для создания альтернативы (сопоставьте это или , что).
^(?:[A-Za-z0-9\s-_]|<>)*[A-Za-z0-9](?:[A-Za-z0-9\s-_]|<>)*$
Я изменил [A-Za-z0-9\s-_]+
в начале и в конце на (?:[A-Za-z0-9\s-_]|<>)*
, что означает «соответствовать 0 или более раз [A-Za-z0-9\s-_]
или <>
».
[A-Za-z0-9_]
можно упростить до \w
, поэтому более короткая версия приведенного выше будет:
^(?:[\w\s-]|<>)*[A-Za-z0-9](?:[\w\s-]|<>)*$