
In questo post vediamo rapidamente il significato dei simboli $ e ^ esternamente alla definizione di una classe regex, quindi in modalità standard.
Il carattere apice (^) deve essere il primo carattere del pattern se è necessario esprimere un numero di alternative (OR), avendo l’accortezza di riportarlo all’inizio di ognuna di esse. Ovvero se tutte le possibili alternative iniziano con ^ il pattern deve corrispondere soltanto all’inizio (prefisso).
Il carattere dollaro ($) definisce un’asserzione secondo cui la corrispondenza deve avvenire necessariamente a fine stringa, oppure subito dopo un carattere di fine riga ovvero l’ultimo carattere della stringa per default.
Esempio mediante l’utilizzo della funzione preg_replace:
<?php
$hostname
= 'www.php.net';
// remove www subdomain from a hostname
echo preg_replace( '/^www[.]/i', '', $hostname ) . PHP_EOL; // output: php.net
// remove tld from a hostname
echo preg_replace( '/[.].{2,4}$/i', '', $hostname ) . PHP_EOL; // output: www.php
?>L’esempio del link (fonte) ricalca esattamente i concetti espressi in precedenza, ovvero la corrispondenza che deve necessariamente essere ad inizio e a fine stringa.

