str = fileread('temp2.txt');
spl = regexp(str,'[\n\r]+','split');
spl = regexp(spl,'\s*\.\s*','split');
spl = vertcat(spl{:});
tmp = regexp(spl(:,1),'^(\D+?)\s+(\d+m)\s+(.+)','tokens','once');
tmp = [vertcat(tmp{:}),spl(:,2:3)].';
fmt = ['%s',repmat(' | %s',1,4),'\n'];
fid = fopen('temp3.csv','wt');
fprintf(fid,fmt,tmp{:});
fclose(fid);
Which prints this in the output file:
Prologue Groove | 15m | Severe * | Alan Hill, Michael Barnard | 3 Sep 2016
Variation: Chrome Nun Finish | 22m | E2 5b ** | Michael Barnard, Alan Hill | 10 Sep 2016
The test files are also attached (I added the "22m", which seems to be missing from your example).
