3v4l.org

run code in 300+ PHP versions simultaneously
<?php $names = ['viktor', 'kate']; $message = 'I had :apple::apple::apple::apple: :apple:<@Viktor><@Kate>took:apple::apple: and later <@viktor> took again:apple:but not <@kate>'; $res = []; foreach ($names as $name) { preg_match_all("/(?:<@$name>(?:<@)?+|\G(?<!^))(?:(?!<@).)*?:apple:/i", $message, $matches); $res[$name] = count($matches[0]); } print_r($res);

preferences:
25.69 ms | 405 KiB | 5 Q