result = subject.gsub(/\A[\d_\W]+|[\d_\W]+\Z/, '')
удалит не буквы из начала и конца строки.
\A
и \Z
прикрепят регулярное выражение в начале / конце строки (^
/ $
также будет соответствовать после / перед новой строкой, что, вероятно, не то, что вы хотите - но это может не иметь значения в этом случае);
[\d_\W]+
соответствует одной или нескольким цифрам, подчеркиванию или чему-либо еще, чтоне буквенно-цифровой символ, оставляя только буквы.
|
является оператором чередования.