3v4l.org

run code in 300+ PHP versions simultaneously
<?php $subject = "1st from last"; preg_match('~(?P<index>[0-9]+)(?:st|nd|rd|th)* from (?P<position>last|end|start|beginning)+~', $subject, $matches); var_dump($matches);

preferences:
37.73 ms | 402 KiB | 5 Q