[eluser]fesweb[/eluser]
No worries - it's already solved.
The patterns were...
for directory listings:
/people/textonly/
/people/textonly/more-text-or-whatever
for individual details:
/people/1234-some-text
/people/1234-some-text/more-text-or-whatever
So, I had to separate the two types based on whether there were numbers in segment(2), or just text.
It was easiest to check that only letters were in the second segment. So, once I got the basic [a-zA-Z]+ bit working. It was fine.
Code:
// this finds the listings
$route['people/([a-zA-Z]+)'] = "profiles/$1";
$route['people/([a-zA-Z]+)/(.*)'] = "profiles/$1/$2";
// this takes care of the details
$route['people/(.*)'] = "profile/$1";
Anyway, it works perfectly.