It is not clear what do you mean by "between two brackets". You might not think about it, but "(small)(999)" is another kind of match, but you probably need "(small)" or "(999)", which is called a lazy pattern.
You can find all kinds of matches using Regular Expressions. For example:
using System.Text.RegularExpressions;
string sampleInput = "soap(small)(999)";
Regex regex = new Regex(@"\(.*?\)");
MatchCollection matches = regex.Matches(sampleInput);
int count = matches.Count;
string s0 = matches[0].Result;
string s1 = matches[1].Result;
But if you use
Regex regex = new Regex(@"\(.*\)");
you will get only one match "(small)(999)".
See:
http://msdn.microsoft.com/en-us/library/hs600312.aspx[
^],
http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.aspx[
^],
http://en.wikipedia.org/wiki/Regular_expression[
^].
—SA