Take a look at the named grouping construct for .NET
Here's an example that matches your scenario.
string str1 = "Fire hose Tweet - TweetID: 436660665219305472 - ActorID: 120706813";
string str2 = "Fire hose Tweet - TweetID: 436660665219305472";
var tweetIdRegex = new Regex(@"TweetID:\s(?<TweetID>\d+)", RegexOptions.ExplicitCapture | RegexOptions.Compiled);
Console.WriteLine(tweetIdRegex.Match(str1).Value);
Console.WriteLine(tweetIdRegex.Match(str2).Value);
Output:
TweetID: 436660665219305472
TweetID: 436660665219305472
Alternatively, if you end up with a regular expression that represents the entire string, and you're using grouping constructs, you could do the following, which is why I mentioned named grouping constructs. This is a technique I've used extensively.
GroupCollection tweetInfo = tweetIdRegex.Match(str1).Groups;
Console.WriteLine(tweetInfo["TweetID"].Value);
in which case it would output:
436660665219305472