<?php
var_export(preg_split('~.{3}\K~', 'abcdefghijklm', 3));
echo "\n---\n";
var_export([preg_replace('~.{3}\K~','*', 'abcdefghijklm', 3, $count1), $count1]);
echo "\n---\n";
var_export([preg_filter('~.{3}\K~', '*', 'abcdefghijklm', 3, $count2), $count2]);
echo "\n---\n";
var_export(preg_grep('~.{3}\K~', ['abcdef', 'ghijklm']));
echo "\n---\n";
var_export(preg_match_all('~(.{3})\K~', 'abcdefghijklm', $m1) ? $m1 : null);
echo "\n---\n";
var_export(preg_match_all('~.{3}\K~', 'abcdefghijklm', $m2) ? $m2 : null);
echo "\n---\n";
var_export([preg_replace_callback('~.{3}\K~', function() { return '*'; }, 'abcdefghijklm', 3, $count3), $count3]);
preferences:
27.5 ms | 402 KiB | 5 Q