Как насчет:
([a-zA-Z]+_?[a-zA-Z]+)*
Это гарантирует, что в любое время, когда подчеркивается символ подчеркивания, он должен быть окружен по крайней мере 1 символом с каждой стороны.