твою регулярку понимаю так "{'не может быть ни < ни >' хоть один хоть несколько раз}или{любой текст далее <, 'но только не >' хоть один хоть несколько раз}" * тут тоже что + ? и относится к тому что в [] ?
* - от 0 до бесконечности + - от 1 до бесконечности [symbols] - 1 символ из перечисленных символов [^symbols] - 1 символ, но только не из перечисленных символов / - границы начала и конца паттерна | - или . - любой символ Читать мою регулярку нужно следующим образом: Текст без тегов это такой текст, в котором нет ни одного из символов: < или >, ИЛИ текст, в котором после символа < нет ни одного символа > На самом деле, ни твоя ни моя регулярка до конца не правильна. Т.к. следующий текст не будет правильно обработан ни твоей регуляркой ни моей: Is 5 < 3 or is 5 > 3? По моему, гораздо проще проверить: $str == strip_tags( $str) ?