Как вырезать название файла и разбить на переменные через регулярные выражения?
        Всем привет. У меня не совсем стандартная задача по регуляркам. В регулярках нуб, по этому прошу помощи. Имеются названия файлов:
Необходимо вырезать из загружаемого файла название и с помощью регулярных выражений его обрезать по следующему сценарию:
    
    
                                                                                
            02. ГудВин[Герои Комиксов] — Орут сирены(фристайл)
12. Стильный Билли feat. aka Ахмед — Чисто ё (Стильный Билли prod.)
04.Nuttkase feat. Птаха — Если Друг (Хасол-Версия) (Phunk Masta Seven prod.)
02.Dr.MokRolog,Old Primus,JustSmile,Vine Bi — Электрограч (Pro100 Beatz prod.)
Необходимо вырезать из загружаемого файла название и с помощью регулярных выражений его обрезать по следующему сценарию:
Тоесть на выходе должны иметь
- Если название начинается на «01.» (цифры и точка, вырезаем их)
 - Берём содержимое до пробела и до дефиса " -", это сохраняем в поле artist
 
- Берём содержимое после дефиса и пробела "- ", сохраняем это в поле name
 - После названия в большинстве случаев идут либо скобки "( )", либо квадратные скобки "[ ]", а иногда скобки повторяются. Возможно ли в таком варианте первые закрывающиеся скобки добавлять к имени файла, а последние брать и вставлять в поле beatmaker?!
 
$artist = 'Стильный Билли';
$feat = 'aka Ахмед';
$name = 'Чисто ё';
$beatmaker = 'Стильный Билли';вот так$artist = 'Nuttkase';
$feat = 'Птаха';
$name = 'Если Друг (Хасол-Версия)';
$beatmaker = 'Phunk Masta Seven';и вот так$artist = 'Dr.MokRolog';
$feat = 'Old Primus,JustSmile,Vine Bi';
$name = 'Электрограч';
$beatmaker = 'Pro100 Beatz';UPD: Обновил регулярку regex101.com/r/AD860D/2 сейчас то что надо, только не вырезается prod.    Комментарии: 4
                Начало положено. Такой регуляркой можно вырезать цифры с точкой от начала:
                    ^\K\d{2,}.Потом, видимо, использовать PHP функцию типа trim, удаляющую пробел справа в начале и можем работать дальше с такими записями:ГудВин[Герои Комиксов] — Орут сирены(фристайл)
Стильный Билли feat. aka Ахмед — Чисто ё (Стильный Билли prod.)
Nuttkase feat. Птаха — Если Друг (Хасол-Версия) (Phunk Masta Seven prod.)
Dr.MokRolog,Old Primus,JustSmile,Vine Bi — Электрограч (Pro100 Beatz prod.)
                Осталось разобраться как теперь из этого вырезать нужное.            
                    
                Вроде бы так должно работать.
                    function parseTrack($str) {
    [$first_part, $second_part] = explode(' - ', $str); 
    $first_part = preg_replace('~^\d+\. ?~', '', $first_part); 
    [$artist, $feat] = explode(' feat. ', $first_part);
    $feat = !empty($feat) ? explode(',', $feat) : null; 
    preg_match('~^(.*?)(?: \(([^(]+) prod.\))?$~', $second_part, $match);
    return [
        'artist' => $artist, 
        'feat' => $feat, 
        'name' => $match[1],
        'beatmaker' => isset($match[2]) ? $match[2] : null
    ];
}            
                Проверил работу функции вроде бы хорошо подставляются данные в поля Артист и Участники, но вот в поле beatmaker ничего не подставляется, а в поле Название добавляется битмейкер со скобками:
Можно это как-то пофиксить?
                    43 (Павел Underground prod)Нужно чтобы в поле name битмейкер в скобках не подставлялся. А в поле beatmaker должен добавляться только битмейкер без скобок.
Можно это как-то пофиксить?
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.