Шаблон /([^\n][\w,]+) - (\d+) Points/g
кажется достаточным для вашего варианта использования. Это помещает разделенный запятыми список имен пользователей в первой группе и точек во второй группе.
Обратите внимание, что предполагается, что точки предварительно сгруппированы и между ними не будет столкновений, в противном случае ключ будет перезаписан. Также предполагается, что каждой группе имен пользователей предшествует новая строка или начало строки.
Браузер JS:
const s = "Phantom_FR - 5 Points\n\nmineblox17,Dominus_Loading - 0 Points\n\ndavidroks528,beeks567,JohnDoe54631 - 4 Points\n\n\n\n **PLEASE ARCHIVE THIS CARD WHEN YOU ARE FINISHED WITH IT**";
const pattern = /([^\n][\w,]+) - (\d+) Points/g;
const usersByPoints = Object.fromEntries([...s.matchAll(pattern)]
.map(([, users, points]) => [points, users.split(",")]));
console.log(usersByPoints);
NodeJS:
const s = "Phantom_FR - 5 Points\n\nmineblox17,Dominus_Loading - 0 Points\n\ndavidroks528,beeks567,JohnDoe54631 - 4 Points\n\n\n\n **PLEASE ARCHIVE THIS CARD WHEN YOU ARE FINISHED WITH IT**";
const pattern = /([^\n][\w,]+) - (\d+) Points/g;
const usersByPoints = {};
for (let m; m = pattern.exec(s); usersByPoints[m[2]] = m[1].split(","));
console.log(usersByPoints);