';
  }
  // run some tests to verify solution
  echo 'Positive tests:
';
  test($pattern, '-42');
  test($pattern, '+3.9357801');
  test($pattern, '42.');
  test($pattern, '3.2e78');
  test($pattern, '-725E-4');
  test($pattern, '.435E+9');
  test($pattern, '.435e+9');
  
  echo '
Negative tests:
';
  test($pattern, '4.2E++23', false);
  test($pattern, '4E', false);
  test($pattern, '4E5E6', false);
  test($pattern, '.', false);
  test($pattern, 'e6', false);
  test($pattern, '3.2ea', false);
?>