выборка сегментов строки с помощью регулярки

ребят помогите с регулярками на js

есть строка right-wide-inside.png

у нее 3 сегмента неизвестной длины

right
wide
inside

гарантировано в строке есть первый и второй дефис и точка, длина сегментов и расширения неизвестны

надо 3 регулярки для функции test.replace() которые будут заменять эти 3 сегмента, например right на left, wide на long, inside на outside

Частичное решение: первые 2 варианта написал, последний не дается

  1. /^[^-]*-/
  2. /-.*-/
  3. ???

Ответы (3 шт):

Автор решения: Алексей Бронштейн
const initString = 'right-wide-inside.png';

const [_, right, wide, inside] = initString.match(/(\w+)\-(\w+)\-(\w+)\.(\w+)?/);
→ Ссылка
Автор решения: Alex

Решение задачи

  1. /^[^-]*-/
  2. /-.*-/
  3. /(.*)-(.*)-.*\.(.*)/
→ Ссылка
Автор решения: UModeL

Если три раздельных, то так:

let sSource = 'right-wide-inside.png';

console.log( sSource.replace(/^[a-z]+(.*)$/, 'left$1') );
console.log( sSource.replace(/^(.*-)[a-z]+(-.*)$/, '$1long$2') );
console.log( sSource.replace(/^(.*-)+[a-z]+(\..*)$/, '$1outside$2') );

→ Ссылка