I think I'm right:
expect -re "(Titan.*)\r" set val $expect_out(0,string)
expect_out(0,string)
will contain the whole match, not just the bit in parentheses.
Try:
set val $expect_out(1,string)
to only select what matched the pattern in (the first set of) parentheses.