Explanation * MatchCollection Represents the set of successful matches found by iteratively applying a regular expression pattern to the input string. The collection is immutable (read-only) and has no public constructor. The Regex.Matches method returns a MatchCollection object. * List<T>.Add Method Adds an object to the end of the List<T>. Incorrect: Not A: Gives groups array. Hence Tostring(0 method mentioned above won't give desird result Not D: ICollection.SyncRoot Property For collections whose underlying store is not publicly available, the expected implementation is to return the current instance. Note that the pointer to the current instance might not be sufficient for collections that wrap other collections; those should return the underlying collection's SyncRoot property. Reference: Regex.Matches Method (String,String) https://msdn.microsoft.com/en-us/library/b9712a7w(v=vs.110)