search and replace in expression?



Let's say we have a list like the following:

(%i1) d:[d1,d2,d3,d4,d5,d6,d7,d8];
(%o1)                     [d1, d2, d3, d4, d5, d6, d7, d8]

Let's suppose that I changed my mind and, instead of a list with variables 
named d[0-8], I wish to have a list with variables named x[0-8] and two other 
lists with variables named y[0-8] and z[0-8].

It would be great if instead of being forced to hand-write three new list 
declarations it was possible to simply search for a pattern in a input command 
(in this case it would be %i1), replace the search results with a new string 
and execute the newly generated input strings.

So, does Maxima support that?


Thanks in advance,
Rui Maciel