Quick & Dirty:
\#w+ \#b+ \d+(?:\.?\d+)? (.*)
Example:
<?php
$string = "France Gros Frère et Sur Hte-Cote de Nuit Blc 2008 #wwww #bbbbb 8.5 Nice yellow fruit nose, some vanilla notes, good crispness";
$regex = "/\#w+ \#b+ \d+(?:\.?\d+)? (.*)/";
preg_match ($regex, $string, $output);
echo $output[1];
?>
But if there can be a string WITHOUT any number after #bbbbb, you better use this:
\#w+ \#b+\s*(?:\d+(?:\.\d+)?)?\s*(.*)
So you don't have to put any number after #bbbbb and you can use as many spaces as you like between #bbbbb, the number (if there's any) and the string you want to extract.
Most of it is optional, so your string could look like this:
blabla #w #bb Hello World
Or like this
blabla #wwwwwwwwwwwwwwww #bbb 1337 Hello World
Or like this:
#w #bHello World
You can see the result here
EDIT:
As requested, this one should also remove URLs inside of the string:
<?php
$string = "France Gros Frère et Sur Hte-Cote de Nuit Blc 2008 #wwww #bbbbb 8.5 Nice yellow fruit nose, some vanilla notes, good crispness http://www.example.com/23232";
$regex = "/\#w+ \#b+ \d+(?:\.?\d+)? (.*)/";
preg_match ($regex, $string, $output);
if (isset($output[1])) {
$regex = "!https?:\/\/(?:[\da-z\.-]+)\.(?:[a-z\.]{2,6})(?:[\/\w \.-]*)*\/?!";
$newString = trim(preg_replace ($regex, '', $output[1]));
echo $newString;
} else {
echo $string;
}
?>
The result should be:
Nice yellow fruit nose, some vanilla notes, good crispness
#bbbbband do something. I expect erros there, so i am looking for a better solution.