Jag har meddelanden innehållande både Älsklingen och älsklingen.
Vid en sökning på älsklingen så hittas ingen. Men om jag söker på Älsklingen så hittas alla.
Detta är alltså med den version där alla tecken görs om till stora.
Det enklaste och bästa för att klara åäö och andra bokstäver utanför a-z både som stora och små. Och samtidigt vara någorlunda kompatibel med andra databaser än MySQL är nog att läsa in alla meddelanden som är aktuella enligt user_id och sen sköta sorteringen i php. Kanske.
Vad har du för collate på tabellen? Mysql REGEXP ska inte vara case sensitive utom för collate _cs.
Rätt lösning borde vara att konvertera till en case-insensitive collate. Om du testat phpmyadmin så är det så dom gör vid sina sökningar.
REGEXP CONVERT( _utf8 'sträng'
USING latin1 )
COLLATE latin1_swedish_ci
Varför har du valt utf8-bin? I princip alla binära textjämförelser är skiftlägesknslig. Varför inte använda en som inte är det som är mer vanligt att använda på text? Typ utf8_general_ci, utf8_swedish_ci eller utf8_unicode_ci?