silly... but it works 
Declare @myTable table (name varchar(20))Insert Into @myTableSelect 'John uppercase 1'Union Select 'john lowercase'Union Select 'JOHN uppercase all'Declare @newName varchar(10)Set @newName = 'kelly'Select Replace(name,'john',case when Ascii(left(name,1)) between 65 and 90 and Ascii(right(left(name,2),1)) between 65 and 90 then upper(@newName) when Ascii(left(name,1)) between 65 and 90 then upper(Left(@newName,1)) + lower(Right(@newName,len(@newName)-1)) else lower(@newName) end), name from @myTable
Corey