public static void SetLinkedText(this BetterRichTextbox richTextBox, string htmlFragment)
    {
        var regEx = new Regex(
            @"\<a\s(href\=""|[^\>]+?\shref\="")(?<link>[^""]+)"".*?\>(?<text>.*?)(\<\/a\>|$)",
            RegexOptions.IgnoreCase | RegexOptions.Multiline);

        richTextBox.Blocks.Clear();

        int nextOffset = 0;

        foreach (Match match in regEx.Matches(htmlFragment))
        {
            if (match.Index > nextOffset)
            {
                string url = match.Groups["link"].Value.TrimStart('/');
                if (!url.Contains("http://"))
                {
                    url = "http://" + url;
                }
                richTextBox.AppendText(htmlFragment.Substring(nextOffset, match.Index - nextOffset));
                nextOffset = match.Index + match.Length;
                richTextBox.AppendLink(match.Groups["text"].Value, new Uri(url));
            }

            Debug.WriteLine(match.Groups["text"] + ":" + match.Groups["link"]);
        }

        if (nextOffset < htmlFragment.Length)
        {
            richTextBox.AppendText(htmlFragment.Substring(nextOffset));
        }
    }
    public static void AppendText(this BetterRichTextbox richTextBox, string text)
    {
        Paragraph paragraph;

        if (richTextBox.Blocks.Count == 0 ||
            (paragraph = richTextBox.Blocks[richTextBox.Blocks.Count - 1] as Paragraph) == null)
        {
            paragraph = new Paragraph();
            richTextBox.Blocks.Add(paragraph);
        }

        paragraph.Inlines.Add(new Run {
            Text = text
        });
    }
    public static void AppendLink(this BetterRichTextbox richTextBox, string text, Uri uri)
    {
        Paragraph paragraph;

        if (richTextBox.Blocks.Count == 0 ||
            (paragraph = richTextBox.Blocks[richTextBox.Blocks.Count - 1] as Paragraph) == null)
        {
            paragraph = new Paragraph();
            richTextBox.Blocks.Add(paragraph);
        }

        var run = new Run {
            Text = text
        };
        var link = new Hyperlink {
            NavigateUri = uri, TargetName = "_blank", Foreground = Application.Current.Resources["OrangeBrush"] as Brush
        };

        link.Inlines.Add(run);
        paragraph.Inlines.Add(link);
    }