How to parse a formatted string with hyphens and square braces into a flat array of components
06:00 08 Feb 2013

I have a string such as:

84 - Pampers mid (4-9кг) №180  [Procter&Gamble] - 1978.00

And I need to divide it into an array like:

[0] 84
[1] Pampers mid (4-9кг) №180
[2] Procter&Gamble
[3] 1978.00

At that moment, I am doing it step-by-step:

$pattern = '/\[(.*)\]/'; // producer
preg_match($pattern, $subject, $matches_producer);
$provider = $matches_producer[1];
...

and so on for each element.

But this is an ugly approach, isn't it? How can I make it with one pattern?

php regex split text-extraction string-parsing