Prosseguindo com o assunto de expressões regulares, este tópico vai tratar de âncoras, que são caracteres de regex que nos auxiliam a achar correspondência com início ou fim de texto, com início de palavras, etc.
Vou continuar usando o texto do tópico passado:
abcdefghijklmnopqurtuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
1234567890
bastter.com
blablabla blabla bla
21-12345-5678
31*12345*1234
(45)3333-6666
E o Regexpal (
Regex Tester - Javascript, PCRE, PHP)
Primeiramente vou falar do \b. O \b pesquisa correspondência em fronteiras de caracteres. Essa fronteira é definida quando o que precede ou segue o caractere não é também um caractere ou palavra. Basicamente, podemos definir essa fronteira como início de linhas ou espaços entre palavras.
Vamos pesquisar pela regex "\babc" para achar correspondência com o início do texto:

Nada de novo aqui, eu poderia simplesmente usar a regex "abc" que acharia o mesmo resultado. Entretanto, se eu mudar de "\babc" para "\bbcd" eu não vou achar correspondência mais, pois o âncora \b me impede de achar essa correspondência.

Sem match agora. Percebam que o \b só me permite casar minha regex com caracteres que estejam em início de linha ou separado por espaços. Vamos testar a regex "\bblabla":

Vejam que houve match tanto no início, por conta do início de linha, como no segundo "blabla" por conta do espaço. E de novo, se eu tirar o primeiro "b" da regex e procurar por "\blabla":

O âncora \b não achou nenhum texto "labla" logo após uma quebra de linha ou um espaço, então, nenhum match.
Assim como vimos os antagonistas \D, \W, \S, também existe o \B, que dá match com o inverso do \b:

Agora a regex casou com o "blabla" que não vem seguido de uma quebra de linha ou de um espaço.
Um caractere especial com comportamento parecido com o do \b é o circunflexo (^). Enquanto o \b é um âncora para quebras de linha ou espaços, o ^ casa com início de texto.
Vou mudar nosso texto base para o seguinte:
Compêndio de sardinhices, sardinha mais sardinha do inferno dos sardinhas
Enquanto eu posso usar o \b como âncora para "Compêndio", "de", "sardinhices", "sardinha"...

O ^ só pode ser usado como âncora para início do texto:

Então, sabendo que meu texto é a frase inteira, o ^ só casa com palavras que estejam no início do texto. Não importa quebra de linha ou espaço, o match só acontece com início de texto.
Assim como o ^ só casa com início de texto, o cifrão ($) só casa com fim de texto:

Dessa forma, se eu quiser casar com o início do texto, vou precisar da regex "^Compêndio". Com o final do texto, a regex seria "sardinhas$".
Concluindo, o \b é âncora para palavras em início de linha ou palavras que estão após um espaço. O ^ é âncora para início de texto e o $ é âncora para fim de texto.