Попробуйте это:
(?<!(?:inc|co|corp)\.\s)apple(?:\s(?:inc|co|corp)\.)?
Используется отрицательный вид сзади (?<! )
для предотвращения префиксов, а также группы без захвата (?: )
для удаления ненужных обратных ссылок.
.
переведен в \.
, так как в противном случае он является символом регулярного выражения, означающим «любой символ».
$
, который вы использовали, означает конец строки - поэтому, если вы не хотите, чтобы это совпадало только в конце вашей строки, вы не хотите этого.
Однако, если вы ищете специально для всей строки, являющейся "apple inc." (и т. д.), затем вы можете оставить $ и заменить отрицательный вид сзади на ^
, чтобы упростить выражение до:
^apple(?:\s(?:inc|co|corp)\.)?$