Полагаю, ваши группы захвата пусты для "311 - 311", потому что эта строка не соответствует вашему регулярному выражению.
Как решить? Используйте * вместо +, чтобы разрешить пустые последовательности.
Редактировать: из вашего поста, я думаю, вы хотите извлечь название альбома, то есть часть перед знаком минус.
Почему бы не сравнить с '(.*) - (.*)'
, будучи первой группой альбома, а второй - заголовком. Проблема заключается в таких строках, как «Альбом со знаком минус - Первый трек» или «Мой альбом - трек один - два - три». Но как человек, вы не знаете, где заканчивается альбом и начинается трек.