$re = '~Option 2[\s\S]*?(€\d+)[\s\S]*?Option 3[\s\S]*?(€\d+)~m';
$str = '<b>Text : </b>
<p>
Option 2 - Withdraw a specified amount by fully cashing in policies
I wish to withdraw €6644 (insert amount and currency)
(Please note that we will cash in the appropriate number of policies to reach the closest possible figure below the amount you require.
The balance will then be taken across all the remaining policies.
Please specify your fund choices for this balance overleaf.)
Please note: If you\'ve invested in a PruFund Protected Fund, cashing in policies will erode the Guaranteed Minimum Fund.
Notes
1 For information on withdrawal limits, please see your Key Features Document.
2
At least £500, ¤750 or US$750 must remain invested in each fund you hold.
3 If you have invested in one of the PruFund Range of Funds, withdrawals may be subject to a 28-day delay.
If you also hold other funds, this could mean your withdrawal is made in two payments.
Option 3 - Withdraw a specified amount from across all policies
I wish to withdraw
€8532
(insert amount and currency) from across all the policies in my bond.
Please specify your fund choices below.
</P>';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php