adminすごく難しい。肯定先読み以下のパターンを考える。A(?=B)C1A(?=B)C以下の文字列はマッチしない123ABC1123ABC参照:https://regex101.com/r/ii0Brz/1アルゴリズム123まではヒットしないのでスルーAがヒットBがヒットBがヒットした時点で、検索開始位置はBになる、これがCとヒットしないのでマッチしない。Lookaheadと呼ばれる。日本語だと肯定先読み。意味としてはPositiveならそのまま進めるくらいの意味だと思う。Bがヒットした時点で(?=)はパターンから消えて、パターンACが文字列BC456から検索されるといってもいい。肯定後読み同様にパターンA(?<=B)CはABC456にマッチしない。参照:https://regex101.com/r/tEyPG2/1アルゴリズムAがヒットBがヒットBがヒットした時点で、パターンのA、文字列のCから検索されてマッチしない。Aの次にBが来るもののA、の次にCが来るものよって絶対マッチしない。Aの次に、Cの前にBが来るもののCよって絶対マッチしない。