I was working on a possible solution whilst you lodged your post Brian. Apologies for the clash.
I agree with Brian, there are a number of solutions to this and it all depends on what you really want.
This is one solution I came up with and it works nice. Maybe you will like it?
1/ Decide on the maximum number of additional items you would like ranked. In my example I'm capturing a maximum of 3 additional items. I'm also assuming you have 5 fixed items.
2/ Setup 3 O/E questions and place them on the same page. Call them QV1/QV2/QV3. Make them single line, non-compulsory. Your script will say something like this - "We are about to ask you to rank the following 5 items [display 5 fixed items]. Would you like to add any additional items to this list? Please type the additional items in below."
[IF ANY ADDITIONAL ITEMS ARE APPLICABLE TO THE RESPONDENT, THEY CAN TYPE THEM IN ANY OF THE 3 O/E TEXT BOXES]
3/ You parent list (ItemList) will be setup as such ...
1 Item 1
2 Item 2
3 Item 3
4 Item 4
5 Item 5
4/ You will then need to setup a constructed list which will get Items 1-5 always and only gets the additional items if they were typed in at QV1/QV2/QV3. Here's the constructed list (ItemConList) ...
Begin Unverified Perl
4/ When you setup your ranking question, use the constructed list ItemConList as your items to rank.
So this approach sets the ranking items up before you get to the ranking question. Once you know the additional items, you build the total items list (Items 1-5 + any additional items) and then perform the ranking.
Hope that helps.