In order to capture different parts of an expression, put those parts in parentheses (note in the example below the difference between |\(|, which matches a parentheses, and plain |(|, which begins a group and token.
str = {...
'State Time: 12:00:00.123 (43200.123)'
'State Time: 12:00:01.456 (43200.456)'
'State Time: 12:00:02.789 (43200.789)'};
str = sprintf('%s\n', str{:});
tok = regexp(str, 'State Time:\s+(\d+:\d+:[\d\.]+)\s+\(([\d\.]+)\)', 'tokens');
Best Answer