Network C#

using System;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;
class MainClass {
    private static void Main() {
        string remoteUri = "http://www.apress.com";
        WebClient client = new WebClient();
        string str = client.DownloadString(remoteUri);
        MatchCollection matches = Regex.Matches(str, @"http\S+[^-,;:?]\.gif");
        foreach (Match match in matches) {
            foreach (Group grp in match.Groups) {
                string file = grp.Value.Substring(grp.Value.LastIndexOf('/') + 1);
                try {
                    Console.WriteLine("Downloading {0} to file {1}", grp.Value, file);
                    client.DownloadFile(new Uri(grp.Value), file);
                } catch {
                    Console.WriteLine("Failed to download {0}", grp.Value);
                }
            }
        }
    }
}