You want look-ahead, and look-behind. Which match stuff followed by, or preceded by a certain character, without including that character in the match.
For look-ahead, you'd have something like .*(?=:) , which means any character, 0 or more times, followed by a colon, but don't include the colon in the match,
For look-behind, you have .*(?<=:) , which means any character 0 or more times, preceded by a colon, but don't include the colon in the match. The trick here is that the look-behind expression comes AFTER the rest, which can seem counter intuitive, because you're looking for a colon that comes before, but it's because any regex really returns a position, and you want the colon to come right before that position.