:([^:]+):[^:]*$
работает с группой 1.
[^:]
означает «соответствовать любому символу, который не :
»
$
- конец строки
Дает вам «найти конец строки, сопоставить любой предыдущий мусор до двоеточия, захватить все, кроме предыдущего двоеточия»
Более простой подход: let x = text.split( ':' ); let match = x[ x.length - 2 ];