<?php
$string = "Lot99. Is it 1+3 or 5 or 6.53";
$regex = '~
(?:\d+\.\d+) # looks for digits with a point (float)
(*SKIP)(*FAIL) # all of the left alternatives should fail
| # OR
([.\s+]+) # a point, whitespace or plus sign
# this should match and be captured
# for PREG_SPLIT_DELIM_CAPTURE
~x'; # verbose modifier
$parts = preg_split($regex, $string, 0, PREG_SPLIT_DELIM_CAPTURE
); ?>
PD9waHAKCiRzdHJpbmcgPSAiTG90OTkuIElzIGl0IDErMyBvciA1IG9yIDYuNTMiOwokcmVnZXggPSAnfgogICAgICAgICAgICAoPzpcZCtcLlxkKykgICAgIyBsb29rcyBmb3IgZGlnaXRzIHdpdGggYSBwb2ludCAoZmxvYXQpCiAgICAgICAgICAgICgqU0tJUCkoKkZBSUwpICAjIGFsbCBvZiB0aGUgbGVmdCBhbHRlcm5hdGl2ZXMgc2hvdWxkIGZhaWwKICAgICAgICAgICAgfCAgICAgICAgICAgICAgICMgT1IKICAgICAgICAgICAgKFsuXHMrXSspICAgICAgICMgYSBwb2ludCwgd2hpdGVzcGFjZSBvciBwbHVzIHNpZ24gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRoaXMgc2hvdWxkIG1hdGNoIGFuZCBiZSBjYXB0dXJlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmb3IgUFJFR19TUExJVF9ERUxJTV9DQVBUVVJFCiAgICAgICAgICB+eCc7ICAgICAgICAgICAgICAjIHZlcmJvc2UgbW9kaWZpZXIKJHBhcnRzID0gcHJlZ19zcGxpdCgkcmVnZXgsICRzdHJpbmcsIDAsIFBSRUdfU1BMSVRfREVMSU1fQ0FQVFVSRSk7CnByaW50X3IoJHBhcnRzKTsKPz4=