Problema com expressão regular, a mesma funciona em c# mas em java não

fiz a ER e em qualquer outra ferramenta ela roda, no java não está rodando, fiz um código c# para verificar e não deu problema.

da erro no compile

Código C#

string erSrc = "((?<html>(href|src)\\s*=\\s*\")|(?<css>url\\())(?<url>.*js?)(?(html)\"|\\))";

Regex regCss = new Regex(erCss, RegexOptions.Compiled);
StringBuilder strBuilderSrc = new StringBuilder();

            for (Match m = regCss.Match(head); m.Success; m = m.NextMatch())
            {
                strBuilderSrc.Append(regQuoted.Match(m1.Value));
                strBuilderSrc.AppendLine();
                strBuilderSrc.AppendLine();
            }

Código JAVA

private final String ER_CSS_KEY = "((?<html>(href|src)\\s*=\\s*\")|(?<css>url\\())(?<url>.*css?)(?(html)\"|\\))";

Pattern pattern = Pattern.compile(ER_CSS_KEY);

Matcher matcher = pattern.matcher(head);

Set<String> lstCss = new HashSet<String>(matcher.groupCount());

			while (matcher.find()) {
				lstCss.add(matcher.group());
			}

Erro
java.util.regex.PatternSyntaxException: Unknown look-behind group near index 26
((?(href|src)\s*=\s*")|(?url())(?.*css?)(?(html)"|))

http://download.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

Expressões regulares com “named-capturing groups” (?), que apareceram no C#. não estão ainda disponíveis no Java 6; estarão presentes só no Java 7.

Encontrei a solução.

http://codesaway.info/RegExPlus


import info.codesaway.util.regex.Matcher;
import info.codesaway.util.regex.Pattern;

private final String ER_JS_KEY = "((?<html>(href|src)\\s*=\\s*\")|(?<css>url\\())(?<url>.*js?)(?(html)\"|\\))";

Pattern pattern = Pattern.compile(ER_JS_KEY, Pattern.DOTNET_NUMBERING);

Matcher matcher = pattern.matcher(htmlHead);

StringBuilder builder = new StringBuilder();

while (matcher.find()) {
    builder.append(matcher.group());
}

Setando Pattern.DOTNET_NUMBERING ele identifica expressões regulares com “named-capturing groups”