Regex / Preg: Brak dopasowania, jeśli znaleziono

Próbuję zrobić kilka preg PHP. Ale wydaje mi się, że nie mogę go dopasować, jeśli chcę mieć łańcuch bez czegoś.

Przykład:

Hello! My name is [b]Peter Jack[/b]

Jeśli Peter Jack zostanie znaleziony z jego nazwiskiem, NIE pasuje, ale jeśli zostanie znaleziony „[b] Peter [/ b]” będzie pasował.

Każdy, komu jestem źle w wyjaśnianiu rzeczy, komentuj, jeśli jest coś jeszcze, co musisz mi pomóc rozwiązać ten problem.

Innym sposobem, w jaki mogę to powiedzieć, jest to, że jeśli dostanę link do strony internetowej, będzie pasował i robił rzeczy w miejscu preg_replace, ale jeśli link do strony kończy się podobnie jak .png (obrazek), nie będzie pasował i nie stworzy linku.

example.com/image.png

Nie zostanie dopasowany, ponieważ zawiera .png

example.com/image

Zostanie dopasowany, ponieważ taknie zawierać .png

questionAnswers(1)

yourAnswerToTheQuestion