I'm not saying I like this but you could reuse the longest overload for the shorter ones. Here I took the one that takes three parameters.

	public static string PatternReplace(
		this string seed, 
        string pattern,
		Func<string, string> outPattern
    )
	{
		return seed.PatternReplace(pattern, (x, y, z) => outPattern(x));
	}

	public static string PatternReplace(
		this string seed, 
        string pattern,
		Func<string, string, string> outPattern
    )
	{
		return seed.PatternReplace(pattern, (x, y, z) => outPattern(x, y));
	}