Description
Given a space delimited list of values like £1.00 £2.00 £2.00 £1.00 £1.00
you can validate if there are duplicates by using a negative look ahead to find a back referenced value. I also added a $
and sign to the character class to allow for multiple currency types. This will return the last instance of each value which essentially makes the output unique.
Regex: (?:\s|^)((?:£|$|\xC2|\xA3)\d+\.\d{1,2})(?=\s|$)(?!.*?\s\1(?=\s|$))

Input: £1.00 £2.00 £2.00 £1.00 £1.00
link to example
$matches Array:
(
[0] => Array
(
[0] => £2.00
[1] => £1.00
)
[1] => Array
(
[0] => £2.00
[1] => £1.00
)
)
So we can carry this idea a step further to include your test expression <strong class="bigprice">(.+?)</strong>
to prevent a duplicate value of (.+?)
. Since this looks like html I'm going to replace .+?
which matches all characters with [^<]*
which will match all characters upto the next open angle bracket
Regex: (?:<strong\s(?=[^>]*class="bigprice")[^>]*>)\s*((?:£|$|\xC2|\xA3)\d+\.\d{1,2})\s*<\/strong>(?!.*?(?:<strong\s(?=[^>]*class="bigprice")[^>]*>)\s*\1\s*<\/strong>)

Input: <strong class="bigprice">£1.00</strong><strong class="bigprice">£2.00</strong><strong class="bigprice">£1.00</strong>
link to example
$matches Array:
(
[0] => Array
(
[0] => <strong class="bigprice">£2.00</strong>
[1] => <strong class="bigprice">£1.00</strong>
)
[1] => Array
(
[0] => £2.00
[1] => £1.00
)
)
Summary
In both cases the expression will fail if there are duplicate values found in the input text.