Here's a conventional string-manipulation way of doing it. I assume that the string will always contain two decimal points. (You only need the last line, I've "drawn out" how I constructed it.)
DECLARE @Foo varchar(100)
SET @Foo = 'www.topshop.com '
SET @Foo = 'www.shopbop.co.uk '
SET @Foo = 'http://www.magickingdom.net '
SET @Foo = 'http://www.asos.co.uk '
PRINT @Foo
-- Start of string to extract
PRINT charindex('.', @Foo) + 1
-- Extracted string, part 1
PRINT substring(@foo, charindex('.', @Foo) + 1, 100)
-- In extracted string, where do we want to stop
PRINT charindex('.', substring(@foo, charindex('.', @Foo) + 1, 100)) - 1
-- Extracted string
PRINT left(substring(@foo, charindex('.', @Foo) + 1, 100), charindex('.', substring(@foo, charindex('.', @Foo) + 1, 100)) - 1)
This clearly demonstrates that SQL string manipulations can get very ugly (if not downright stupid), and that @Ian Jacobs is right, you should use a language more suitable to the task.