Reading the last character of a string has been $s[strlen($s) - 1] for two decades, which computes the length to throw it away and reads badly next to the array syntax it borrows.
$sku = 'FR-100-XL';
$sku[-1]; // 'L'
$sku[-2]; // 'X'
substr($sku, -2); // 'XL'
strpos($sku, '-', -4); // negative offset now accepted here too
The change extends to strpos, substr_count and several others that previously rejected a negative offset, which is the part that removes real code rather than shortening it. Reading past the start still emits a notice and returns an empty string, so it is not a bounds check — a negative offset on a shorter string than expected fails the same quiet way a positive one does.