Нечто в кавычках - это делфовая строка. Преобразование в PChar/PAnsiChar/PWideChar по сути одно и то же - возвращает переданный функции преобразования параметр без изменений (кроме случая строки нулевой длины вроде). Потому что делфийская строка - оригинальный класс, в котором адрес класса есть адрес начала строки (массива байт), а все поля класса отсчитываются в минус от этого адреса. Там 3 поля. Длина, размер выделенного блока и количество использований (для многопоточности, чтобы не снести строку, пока ее кто-то юзает).
Если строка имеет изначальный тип WideString (в XE3 WideString = String), то при записи туда строки 'Hello, world!' она автоматически записывается как Wide. И преобразовывать к PWideChar можно. Если она Ansi, то записывается как Ansi (однобайтовые символы), и преобразовывать к Wide не так просто. Разве что сделать
Код:
var s:AnsiString;
w:WideString;
...
s := '1234';
w := s;
PWideChar(w);
потому что в данном случае, насколько я помню, вызовется преобразователь строк в момент w := s.
Почитать - дизассемблированный листинг делфийских программ.

Я не видел инфы о внутреннем устройстве делфийских строк в инете. Хотя не особо искал. Но вывод о том, что адрес строки есть адрес именно массива байт можно сделать по исходникам преобразователей в P<чего-нибудь>Char или ручками сделав
Код:
for i := 1 to length(s) do
wirite(AnsiChar(Pointer(s)^));