So, based on your answer to my questions above:
private static readonly Regex ValContents = new Regex("val{([^}]+)}", RegexOptions.Compiled);
string longString = "val{1}:val{5}/val{10}";
MatchCollection matches = ValContents.Matches(longString);
List<string> values = matches.Cast<Match>().Select(m => m.Groups[1].Value).ToList();
This will return a list of all of the content of each
val{} as a string.
If you want it to ignore any
val{} content that is not simply digits, then change the Regex string to:
"val{(\d+)}"