Regex with named capture groups and inline mode-setting (should be compatible with Python, PHP, .NET/C#, and the PCRE library):
(?m)(?:^|\s)#fic_rating\s+(?P<rating>\d(?:\.\d)?)(?:\s*(?:/|of)\s*(?P<possible>\d))?\.?\s+(?P<description>.*)\s+?(?P<url>https?://\S*)(?:\s|$)
Regex without named capture groups but with inline mode-setting (should work in Java):
(?m)(?:^|\s)#fic_rating\s+(\d(?:\.\d)?)(?:\s*(?:/|of)\s*(\d))?\.?\s+(.*)\s+?(https?://\S*)(?:\s|$)
Regex with neither named capture groups nor inline mode-setting (should work in Perl 5.8 and Javascript):
(?:^|\s)#fic_rating\s+(\d(?:\.\d)?)(?:\s*(?:/|of)\s*(\d))?\.?\s+(.*)\s+?(https?://\S*)(?:\s|$)
Note: In Perl and Javascript, you'll want to use the "m" flag that, for other languages, I specified within the regex. Otherwise, it will miss every second line in certain forms of "one notice/tweet per line" data.
-
I'm using the first edition of O'Reilly's Regular Expression Pocket Reference, so it's possible that, since it was written, your favourite language gained support for named capture groups.
-
I only had time to test these regexes in the Kodos regex debugger for Python and RegexPal for JavaScript.
-
Make sure you handle malformed entries properly if you're automatically parsing a tag feed from a site like Identi.ca. The announcement of this reference itself contains #fic_rating but doesn't follow the format described by these regexes.